1$(document).ready(function() { 2 var user; /* Variable globales des user*/ 3 var popup; 4 /* Création de carte avec coordonnées géographique EPSG4326 latitude, longitude et niveau de zoom centré sur la france métropolitaine */ 5 map = L.map("map").setView([47.0, 2.83832], 5); 6 map.addControl(new L.Control.Fullscreen()); 7 /* Ajout d'un controle des couches*/ 8 // lControl = L.control.layers().addTo(map); 9 10 var basemaps = [ 11 // L.tileLayer( 12 // "https://stamen-tiles-{s}.a.ssl.fastly.net/terrain-background/{z}/{x}/{y}.{ext}", 13 // { 14 // attribution: 15 // 'Map tiles by <a href="https://stamen.com">Stamen Design</a>, <a href="https://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> — Map data © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>', 16 // subdomains: "abcd", 17 // minZoom: 0, 18 // maxZoom: 18, 19 // ext: "png" 20 // } 21 // ), 22 L.tileLayer('https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png?key=cb1_2fco_1_e4c0cf1036ecfc82158ddaf5', { 23 attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> © <a href="http://cartodb.com/attributions">CartoDB</a>', 24 subdomains: 'abcd', 25 maxZoom: 19, 26 opacity: 1 27 }), 28 ]; 29 30 map.addControl( 31 L.control.basemaps({ 32 basemaps: basemaps, 33 tileX: 0, // tile X coordinate 34 tileY: 0, // tile Y coordinate 35 tileZ: 1 // tile zoom level 36 }) 37 ); 38 39 // var tiles = L.tileLayer('http://localhost:8080/{z}/{x}/{-y}.png', { 40 // // continuousWorld: true, // very important 41 // tileSize: 256, 42 // tms: true, 43 // subdomains: "mno", 44 // attribution: "", 45 // errorTileUrl: "assets/images/empty.png", 46 // opacity: 0.8 47 // }).addTo(map); 48 49 /* STRM90 RGB*/ 50 // var tiles = L.tileLayer('http://{s}-tiles-online-dc5a-1.makina-corpus.net/srtm90_rgb/{z}/{x}/{y}.png', { 51 // continuousWorld: true, // very important 52 // maxZoom: 20, 53 // subdomains: "abcdefgh", 54 // attribution: "", 55 // errorTileUrl: "assets/images/empty.png", 56 // }).addTo(map); 57 58 let id_setTimeout = null; 59 60 /* couche de polygone: Parc naturel - National*/ 61 $.getJSON( 62 /* Appel Ajax vers le fichier geojson*/ 63 "https://utilisateurs.geotrek.fr/clients_map.geojson" /* Fchier cible*/, 64 function(data) { 65 /* Fonction propre à la geojson variable*/ 66 user = L.geoJSON(data, { 67 style: style /* Appel du fichier de style initial*/, 68 onEachFeature: function(f, layer) { 69 /* sur chaque fonctionnalité on réalise les actions suivantes: */ 70 layer.on({ 71 mouseover: function(e) { 72 map.closePopup(); 73 displayPopup(e, f) 74 }, 75 mousemove: function(e) { 76 if (id_setTimeout !== null) { 77 clearTimeout(id_setTimeout); 78 } else { 79 displayPopup(e, f) 80 } 81 id_setTimeout = setTimeout(function() { 82 map.closePopup(); 83 id_setTimeout = null; 84 }, 3000) 85 }, 86 click: function(e) { 87 if (id_setTimeout !== null) { 88 clearTimeout(id_setTimeout); 89 } 90 displayPopup(e, f); 91 }, 92 // mouseout: function() { 93 // map.closePopup(popup); 94 // }, 95 }), 96 layer.on({ 97 /* Evenement spécifiques sur la couche user*/ 98 mouseover: highlightFeature, 99 mouseout: resetHighlight 100 }); 101 }, 102 pointToLayer: function(feature, latlng) { 103 if (feature.properties.type === "LPO") 104 return L.marker(latlng, { 105 icon: new L.Icon({ 106 iconUrl: "./assets/img/leaflet/LPO.svg", 107 iconSize: [70, 70], 108 iconAnchor: [35, 35] 109 }) 110 }); 111 if (feature.properties.type === "CDRP") 112 return L.marker(latlng, { 113 icon: new L.Icon({ 114 iconUrl: "./assets/img/leaflet/RANDO.svg", 115 iconSize: [70, 70], 116 iconAnchor: [35, 35] 117 }) 118 }); 119 } 120 }); 121 user.addTo(map); 122 // lControl.addOverlay(user,"user") 123 /* Parcours du Geojson user afin de mettre les parcs en avant*/ 124 user.eachLayer(function(layer) { 125 /* sur chaque couche on réalise les actions suivantes: */ 126 var type = layer.feature.properties.type; 127 if ( 128 type === "Parc national" || 129 type === "Parc naturel régional" || 130 type === "Parc national Français" 131 ) { 132 layer.bringToFront(); 133 } 134 if (layer.feature.properties.type === "Région" || layer.feature.properties.type === "Fédérations sportives") { 135 map.removeLayer(layer) 136 } 137 }); 138 } 139 ); 140 141 function displayPopup(e, feature) { 142 /* Evenement au clic pour l'affichage des popup*/ 143 cont_user = 144 "<div class='popup-text'>" + 145 "<center>" + 146 "<strong>" + 147 feature.properties.name + 148 "</strong>" + 149 "</center>" + 150 "<br>"; 151 cont_user += "<b>Organisme: </b>"; 152 cont_user += 153 feature.properties.type === "AOP" 154 ? "Autres" + "<br>" 155 : feature.properties.type + "<br>"; 156 if (feature.properties.website.startsWith("http")) { 157 cont_user += 158 "<b>Site web: </b> <a href=" + 159 feature.properties.website + 160 " target='_blank'> " + 161 feature.properties.website + 162 "</a>"; // Type de site web 163 "</div>"; 164 } 165 popup = L.popup({ closeOnClick: false }) 166 popup.setLatLng(e.latlng) 167 .setContent(cont_user) 168 .openOn(map); 169 } 170 171 /* Fonction de style des polygone user de base*/ 172 function style(feature) { 173 return { 174 fillColor: getColor(feature.properties.type), 175 weight: 1, 176 opacity: 1, 177 color: "white", 178 fillOpacity: 0.6 179 }; 180 } 181 182 /* Fonction de catégorisation des polygone*/ 183 function getColor(a) { 184 return a == "Parc naturel régional" 185 ? "#A9BF04" 186 : a == "Parc national Français" 187 ? "#50af55" 188 : a == "Parc national" 189 ? "#50af55" 190 : a == "Conseil départemental" 191 ? "#561FA8" 192 : a == "Région" 193 ? "#0b56c2" 194 : a == "Communauté de communes" 195 ? "#FF7505" 196 : a == "Fédérations sportives" 197 ? "#070359ff" 198 : a == "Autre" 199 ? "#FA2C2C" 200 : "#FA2C2C"; 201 } 202 203 /* Fonction d'intéraction liées à la souris'*/ 204 /* Mise en évidence des polygones au survol*/
205 function highlightFeature(e) { 206 var layer = e.target; 207 208 layer.setStyle({ 209 weight: 2, 210 fillOpacity: 1 211 }); 212 if (!L.Browser.ie && !L.Browser.opera && !L.Browser.edge) { 213 layer.bringToFront(); 214 } 215 } 216 217 /* Remise à l'état d'origine aprés l'évenements mouseover*/ 218 function resetHighlight(e) { 219 user.resetStyle(e.target); 220 } 221 222 /* clickécouteur va effectuer un zoom sur l'état */ 223 function zoomToFeature(e) { 224 map.fitBounds(e.target.getBounds()); 225 } 226 227 // /*légende */ 228 // var legend = L.control({position: 'topright'}); 229 // legend.onAdd = function (map) { 230 231 // var div = L.DomUtil.create('div', 'info legend'), 232 // grades = ['PNR', 'PN','CD','AOP'], 233 // labels = ['Parc naturel régionaux', 'Parc naturels', 'Conseil départementaux', 'Autres organismes publiques']; 234 235 // // loop through our density intervals and generate a label with a colored square for each interval 236 // for (var i = 0; i < grades.length; i++) { 237 // div.innerHTML += 238 // '<i style="background:' + getColor(grades[i]) + '"></i> ' + 239 // labels[i] + (labels[i + 1] ? '<br>' : ''); 240 // } 241 242 // return div; 243 // }; 244 // legend.addTo(map); 245 246 /* Permet d'avoir tout les user à l'affichage*/ 247 // Indispensable ???????? 248 // var filterall = document.getElementById('filterall'); 249 // var filter1 = document.getElementById('filter1'); 250 // var filter2 = document.getElementById('filter2'); 251 252 filterall.onclick = function(i) { 253 /* Permet d'avoir tout les user à l'affichage*/ 254 filterall.className = "active"; 255 filter1.className = ""; 256 filter2.className = ""; 257 filter3.className = ""; 258 filter4.className = ""; 259 filter5.className = ""; 260 filter6.className = ""; 261 filter7.className = ""; 262 user.setFilter(function(f) { 263 return ( 264 // All layers without region and fédérations sportives 265 f.properties.type === "Parc national" || 266 f.properties.type === "Parc national Français" || 267 f.properties.type === "Parc naturel régional" || 268 f.properties.type === "Conseil départemental" || 269 f.properties.type === "Autre" || 270 f.properties.type === "LPO" || 271 f.properties.type === "CDRP"|| 272 f.properties.type === "Communauté de communes" 273 ); 274 }); 275 }; 276 filter1.onclick = function(i) { 277 /* Rend actif que les PN*/ 278 filterall.className = ""; 279 filter1.className = "active"; 280 filter2.className = ""; 281 filter3.className = ""; 282 filter4.className = ""; 283 filter5.className = ""; 284 filter6.className = ""; 285 filter7.className = ""; 286 user.setFilter(function(f) { 287 return ( 288 f.properties.type === "Parc national" || 289 f.properties.type === "Parc national Français" 290 ); 291 }); 292 }; 293 filter2.onclick = function(i) { 294 /* Rend actif que les PNR */ 295 filterall.className = ""; 296 filter1.className = ""; 297 filter2.className = "active"; 298 filter3.className = ""; 299 filter4.className = ""; 300 filter5.className = ""; 301 filter6.className = ""; 302 filter7.className = ""; 303 user.setFilter(function(f) { 304 return f.properties.type === "Parc naturel régional"; 305 }); 306 }; 307 filter3.onclick = function(i) { 308 /* Rend actif que les conseils départemetaux*/ 309 filterall.className = ""; 310 filter1.className = ""; 311 filter2.className = ""; 312 filter3.className = "active"; 313 filter4.className = ""; 314 filter5.className = ""; 315 filter6.className = ""; 316 filter7.className = ""; 317 user.setFilter(function(f) { 318 return f.properties.type === "Conseil départemental"; 319 }); 320 }; 321 filter4.onclick = function(i) { 322 /* Rend actif les autres organismes publics */ 323 filterall.className = ""; 324 filter1.className = ""; 325 filter2.className = ""; 326 filter3.className = ""; 327 filter4.className = "active"; 328 filter5.className = ""; 329 filter6.className = ""; 330 filter7.className = ""; 331 user.setFilter(function(f) { 332 return ( 333 f.properties.type === "Autre" || 334 f.properties.type === "LPO" || 335 f.properties.type === "CDRP" 336 ); 337 });
338 }; 339 340 filter5.onclick = function(i) { 341 /* Rend actif les régions */ 342 filterall.className = ""; 343 filter1.className = ""; 344 filter2.className = ""; 345 filter3.className = ""; 346 filter4.className = ""; 347 filter5.className = "active"; 348 filter6.className = ""; 349 filter7.className = ""; 350 user.setFilter(function(f) { 351 return ( 352 f.properties.type === "Région" 353 ); 354 }); 355 }; 356 357 filter6.onclick = function(i) { 358 /* Rend actif les communautés de communes */ 359 filterall.className = ""; 360 filter1.className = ""; 361 filter2.className = ""; 362 filter3.className = ""; 363 filter4.className = ""; 364 filter5.className = ""; 365 filter6.className = "active"; 366 filter7.className = ""; 367 user.setFilter(function(f) { 368 return ( 369 f.properties.type === "Communauté de communes" 370 ); 371 }); 372 }; 373 374 filter7.onclick = function(i) { 375 /* Rend actif les fédérations sportives */ 376 filterall.className = ""; 377 filter1.className = ""; 378 filter2.className = ""; 379 filter3.className = ""; 380 filter4.className = ""; 381 filter5.className = ""; 382 filter6.className = ""; 383 filter7.className = "active"; 384 user.setFilter(function(f) { 385 return ( 386 f.properties.type === "Fédérations sportives" 387 ); 388 }); 389 }; 390 391 // Géosignet Guadeloupe 392 document.getElementById("fly1").addEventListener("click", function() { 393 map.flyTo([16.1330939, -61.6883489], 9.5); 394 }); 395 // Géosignet Réunion 396 document.getElementById("fly2").addEventListener("click", function() { 397 map.flyTo([-21.1956612, 55.4892434], 9); 398 }); 399 // Géosignet Métropole 400 document.getElementById("fly3").addEventListener("click", function() { 401 map.flyTo([47.0, 2.83832], 6); 402 }); 403}); /* Fin carte */
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.