rodolpheg

Untitled

Mar 27th, 2020
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.25 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta name="viewport" content="width=device-width, initial-scale=1">
  5. <title>Ma page</title>
  6. <meta charset="UTF-8">
  7. <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" />
  8. <script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
  9. <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
  10. <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha256-pasqAKBDmFT4eHoN2ndd6lN370kFiGUFyTiUHWhU7k8=" crossorigin="anonymous"></script>
  11. <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
  12. <script src="plugins/leaflet.ajax.min.js"></script>
  13. <style>
  14. html, body {height: 100%; margin: 0;}
  15. #carte { width: 100%; height: 100%; }
  16. .navbar-nav > li{
  17. padding-left:5px;
  18. padding-right:5px;
  19. padding-top:2px;
  20. padding-bottom:2px;
  21. }
  22. </style>
  23. </head>
  24. <body>
  25. <nav class="navbar navbar-expand-lg navbar-light bg-light fixed-top">
  26. <a class="navbar-brand" href="#">
  27. <img src="logo.png" width="30" height="30" alt="">
  28. </a>
  29. <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
  30. <span class="navbar-toggler-icon"></span>
  31. </button>
  32.  
  33. <div class="collapse navbar-collapse" id="navbarSupportedContent">
  34. <ul class="navbar-nav mr-auto">
  35. <li class="nav-item active">
  36. <a class="nav-link" href="index.html">Carte <span class="sr-only">(current)</span></a>
  37. </li>
  38. <li class="nav-item">
  39. <a class="nav-link" href="formulaire.html">Formulaire</a>
  40. </li>
  41.  
  42. <li class="nav-item">
  43. <select class="custom-select">
  44. <option value="0">Light</option>
  45. <option selected value="1">Streets</option>
  46. <option value="2">Satellite</option>
  47. </select>
  48. </li>
  49.  
  50. <li class="nav-item">
  51. <select class="custom-select">
  52. <option selected>Sélectionnez des données à afficher</option>
  53. <option value="Montreal_AD_v0743.geojson">Montréal</option>
  54. <option value="Canada_CSD_v0743.geojson">Canada</option>
  55. </select>
  56. </li>
  57. </ul>
  58. </div>
  59. </nav>
  60. <div class="container-fluid" id='carte'></div>
  61.  
  62. <script>
  63. var poly;
  64.  
  65. // Initialisation d'une carte avec plusieurs fonds de carte
  66. mapboxUrl = 'https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=VOTRE_CLEF';
  67. mapboxAttribution = 'Fond de carte &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' + '<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' + 'via © <a href="https://www.mapbox.com/">Mapbox</a>'
  68.  
  69. var light = L.tileLayer(mapboxUrl, {id: 'mapbox/light-v10', attribution: mapboxAttribution}),
  70. streets = L.tileLayer(mapboxUrl, {id: 'mapbox/streets-v11', attribution: mapboxAttribution}),
  71. sat = L.tileLayer(mapboxUrl, {id: 'mapbox/satellite-v9', attribution: mapboxAttribution});
  72.  
  73. var map = L.map('carte', {
  74. center: [45.52,-73.63],
  75. zoom: 5,
  76. layers: streets,
  77. zoomControl: false
  78. });
  79.  
  80. couches = [light,streets,sat]
  81.  
  82. let base = document.querySelectorAll('select')[0];
  83. if (base) base.addEventListener('change', function(event) {
  84. map.removeLayer(light)
  85. map.removeLayer(streets)
  86. map.removeLayer(sat)
  87. map.addLayer(couches[event.target.value]);
  88. });
  89.  
  90. let data = document.querySelectorAll('select')[1];
  91. if (data) data.addEventListener('change', function(event) {
  92. if (map.hasLayer(poly) == true) {
  93. map.removeLayer(poly);
  94. }
  95.  
  96. poly = new L.GeoJSON.AJAX('data/' + event.target.value);
  97. poly.addTo(map);
  98.  
  99. poly.on('data:loaded', function() {
  100. map.fitBounds(poly.getBounds());
  101. })
  102.  
  103. map.attributionControl.addAttribution('Données &copy; <a href="http://statisticscanada.ca/">Statistiques Canada</a>');
  104.  
  105. });
  106.  
  107. </script>
  108. </body>
  109. </html>
Advertisement
Add Comment
Please, Sign In to add comment