PageSourceSearch

https://geotrek.fr/assets/js/leaflet/carte.js

js geotrek.fr collected 2026-10-01 13:07:26 UTC 13,032 bytes, 403 lines download raw bytes

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> &mdash; Map data &copy; <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: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> &copy; <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.