index.html 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  6. <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
  7. <script src='https://api.mapbox.com/mapbox-gl-js/v1.8.0/mapbox-gl.js'></script>
  8. <link href='https://api.mapbox.com/mapbox-gl-js/v1.8.0/mapbox-gl.css' rel='stylesheet' />
  9. <title>Accent dialect map</title>
  10. </head>
  11. <body class="bg-light">
  12. <script src="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-draw/v1.0.9/mapbox-gl-draw.js"></script>
  13. <link
  14. rel="stylesheet"
  15. href="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-draw/v1.0.9/mapbox-gl-draw.css"
  16. type="text/css"
  17. />
  18. <div class="container">
  19. <div class="py-5 text-center">
  20. <h2>Accent and dialect form</h2>
  21. <p class="lead">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Suscipit voluptatum corporis minima, eius officiis magnam quae vero praesentium odio facilis minus illo ut atque accusamus esse deserunt. Fuga, autem molestiae!</p>
  22. </div>
  23. <div>
  24. <h4>Personal Information</h4>
  25. <form>
  26. <div class="row">
  27. <div class="col-md-6 mb-3">
  28. <label for="age">Age</label>
  29. <input type="number" class="form-control" id="age" placeholder="" value="" min="10" max="110" required>
  30. <div class="invalid-feedback">
  31. Age is required
  32. </div>
  33. </div>
  34. <div class="col-md-6">
  35. <label for="gender">Gender</label>
  36. <select class="form-control">
  37. <option>Male</option>
  38. <option>Female</option>
  39. <option>idk lmao</option>
  40. </select>
  41. </div>
  42. </div>
  43. <div class="row">
  44. <div class="col-md-12 mb-3">
  45. <label for="postal-code">Postal code</label>
  46. <input type="text" class="form-control" id="postal-code"/>
  47. </div>
  48. </div>
  49. <div class="row">
  50. <div class="col-md-12">
  51. <label>Map time</label>
  52. <div id='map' style='width: 100%; height: 80vh;'></div>
  53. </div>
  54. </div>
  55. <hr class="mb-4">
  56. <button class="btn btn-primary btn-lg btn-block" type="submit">Submit</button>
  57. </form>
  58. </div>
  59. </div>
  60. <footer class="my-5 pt-5 text-muted text-center text-small">
  61. <p class="mb-1">&copy; Legal stuff if needed</p>
  62. <ul class="list-inline">
  63. <li class="list-inline-item"><a href="#">Privacy</a></li>
  64. <li class="list-inline-item"><a href="#">Terms</a></li>
  65. </ul>
  66. </footer>
  67. </div>
  68. <script>
  69. mapboxgl.accessToken = 'pk.eyJ1IjoidGluYW1hIiwiYSI6ImNpbWV2dDJudjAxM2Z0c2traGthOTJyZjYifQ.s_lP9rp2Iro7Urb4IZAzTQ';
  70. var bounds = [
  71. [-2.460270, 53.370427],
  72. [-2.062598, 53.552900]
  73. ]
  74. var map = new mapboxgl.Map({
  75. container: 'map',
  76. style: 'mapbox://styles/tinama/ck799vnw63ib11ipk5yxib52f',
  77. center: [-2.242678, 53.482125],
  78. zoom: 13,
  79. maxBounds: bounds
  80. });
  81. var Draw = new MapboxDraw({
  82. displayControlsDefault: false,
  83. controls: {
  84. polygon: true,
  85. trash: true
  86. }
  87. });
  88. map.addControl(Draw, 'top-right');
  89. map.on('load', function() {
  90. var drawnData = {};
  91. map.on('draw.create', createArea);
  92. map.on('draw.delete', deleteArea);
  93. map.on('draw.update', updateArea);
  94. function createArea(polygon) {
  95. drawnData = {
  96. ...drawnData,
  97. [polygon.features[0].id]: polygon.features[0].geometry
  98. };
  99. console.log("data", drawnData)
  100. }
  101. function deleteArea(polygon) {
  102. console.log('delete', polygon);
  103. }
  104. function updateArea(polygon) {
  105. console.log('update', polygon)
  106. }
  107. });
  108. </script>
  109. </body>
  110. </html>