[CARTE] ~cluster
[lhc/web/spip_carte_de_sites.git] / contenu / page-carte_de_sites.html
index 4811690..c33955c 100755 (executable)
@@ -2,6 +2,7 @@
     Modele carte_de_site
     
     Parametres :
+    - fullscreen = non  : afficher ou ne pas afficher le contrôle fullscreen 
     - legende = oui : afficher ou ne pas afficher la légende
     - lat    = 46.8 : latitude du centre de la carte
     - lon    = 2.52 : longitude du centre de la carte
 
 <div id="map" style="[(#ENV{larg}|oui) width: [(#ENV{larg}|sinon{'540'})px;]] height: [(#ENV{haut}|sinon{'400'})]px">
 
-<script src="[(#CHEMIN{lib/CloudMade-Leaflet-538dfb4/dist/leaflet.js}|url_absolue)]"></script>
+<script src="[(#CHEMIN{lib/leaflet/dist/leaflet.js}|url_absolue)]" type="text/javascript"></script>
+<script src="[(#CHEMIN{lib/leaflet/plugins/Control.FullScreen.js}|url_absolue)]" type="text/javascript"></script>
+<script src="[(#CHEMIN{lib/leaflet/plugins/leaflet.markercluster-src.js}|url_absolue)]" type="text/javascript"></script>
+
 
 <script>
-   <BOUCLE_mots_types(MOTS){type = (#ENV{groupe})}>
-         var group_#ID_MOT = new L.LayerGroup();
+    <BOUCLE_mots_types(MOTS){type = (#ENV{groupe})}>
+         var group_#ID_MOT = new L.markerClusterGroup();
+            var templateIcon = L.Icon.extend({
+               options: {
+                    iconUrl: '[(#LOGO_MOT||extraire_attribut{src}|url_absolue)]',
+                    shadowUrl: '[(#LOGO_MOT_SURVOL||extraire_attribut{src}|url_absolue)]',
+                    iconSize: new L.Point(17, 28),
+                    shadowSize: new L.Point(17, 17),
+                    iconAnchor: new L.Point(13, 17),
+                    popupAnchor: new L.Point(0, -33)
+                }
+             });
+                     gisIcon = new templateIcon()
          <BOUCLE_sites(SITES){id_mot}>
                <BOUCLE_coord(GIS){id_syndic}>
-                     var templateIcon = L.Icon.extend({
-                         iconUrl: '[(#LOGO_MOT||extraire_attribut{src}|url_absolue)]',
-                         shadowUrl: '[(#LOGO_MOT_SURVOL||extraire_attribut{src}|url_absolue)]',
-                         iconSize: new L.Point(17, 28),
-                         shadowSize: new L.Point(17, 17),
-                         iconAnchor: new L.Point(13, 17),
-                         popupAnchor: new L.Point(0, -33)
-                     });
-                     gisIcon = new templateIcon()
                      var markerGis = new L.Marker(new L.LatLng(#LAT, #LON), {icon: gisIcon});
                            [(#ENV{popup}|!={non}|oui)
-                         markerGis.bindPopup("[(#ENV{images}|!={non}|oui)<span style='float: left; width: 45px;'><img src='[(#LOGO_SYNDIC||extraire_attribut{src}|url_absolue)]' alt='' style='width: 45px;' width='45'></span>]<h4>#TITRE</h4>#DESCRIPTIF[(#ENV{images}|!={non}|oui)<span class='spip_documents spip_documents_right' style='float: right; width: 100px;'>\<img src='[(#LOGO_SYNDIC_SURVOL||extraire_attribut{src}|url_absolue)]' alt='' style='width: 100px;' width='100'></span>]#ADRESSE<br/> #CODE_POSTAL #VILLE<br/><a href='#URL_SITE' target='_blank'>#NOM_SITE - #URL_SITE</a><br/><br/><em>Statut: [(#_mots_types:TITRE|supprimer_numero)]</em>");
+                         markerGis.bindPopup("[(#ENV{images}|!={non}|oui)<span style='float: left; width: 45px;'><img src='[(#LOGO_SYNDIC||extraire_attribut{src}|url_absolue)]' alt='' width='100%' height='100%'></span>]<h4>#TITRE</h4>[<p>(#DESCRIPTIF|attribut_html)</p>][(#ENV{images}|!={non}|oui)<span class='spip_documents spip_documents_right' style='float: right; width: 100px;'>\<img src='[(#LOGO_SYNDIC_SURVOL||extraire_attribut{src}|url_absolue)]' alt=''  width='100px' height='100%'></span>]#ADRESSE<br/> #CODE_POSTAL #VILLE<br/><a href='#URL_SITE' target='_blank'>#NOM_SITE - #URL_SITE</a><br/><br/><em>Statut: [(#_mots_types:TITRE|supprimer_numero)]</em>");
                      ]
-                     group_#ID_MOT.addLayer(markerGis)
+                     group_#_mots_types:ID_MOT.addLayer(markerGis)
                </BOUCLE_coord>
          </BOUCLE_sites>
-   </BOUCLE_mots_types>
-
-   var cloudmadeAttribution = 'Map data &copy; OpenStreetMap contributors<br/>[(#ENV{lien}|!={non}|oui)(<a href="#URL_SITE_SPIP/?page=carte_de_sites_plein&lien=non&groupe=#ENV{groupe}&boite=oui&haut=400[&lat=(#ENV{lat})][&lon=(#ENV{lon})][&zoom=(#ENV{zoom})][&legende=(#ENV{legende})]" rel="external" target="_blank"><:carte_de_sites:grande_carte:></a>)]',
-      cloudmadeOptions = {maxZoom: 18, attribution: cloudmadeAttribution},     
-      cloudmadeUrl = 'http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/{styleId}/256/{z}/{x}/{y}.png';
-               
-   var midnightCommander = new L.TileLayer(cloudmadeUrl, cloudmadeOptions, {styleId: 999}),
-   thunderforest = new L.TileLayer('http://{s}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png', cloudmadeOptions),
-      minimal = new L.TileLayer(cloudmadeUrl, cloudmadeOptions, {styleId: [(#ENV{style}|sinon{'14189'})]});
-               
-       //Construction de la carte
-   var map = new L.Map('map');
-   map.setView(new L.LatLng([(#ENV{lat}|sinon{'46.8'})],[(#ENV{lon}|sinon{'2.52'})]),[(#ENV{zoom}|sinon{5})]).addLayer(thunderforest);
-       
-       //Ajout des marqueurs   
-   <BOUCLE_map(MOTS){type = (#ENV{groupe})}{!par num titre}>
-      map.addLayer(group_#ID_MOT);
-   </BOUCLE_map>
-
-       [(#ENV{boite}|!={non}|oui)
-          <INCLURE{fond=inclure/boite}{env}>
-       ]
-
-   [(#ENV{loc}|!={oui}|non)
-   map.on('click', onMapClick);
-       
-
-   var popup = new L.Popup();
-
-   function onMapClick(e) {
-       document.getElementById("#ENV{champ_lat}").value=e.latlng.lat.toFixed(18);
-       document.getElementById("#ENV{champ_lon}").value=e.latlng.lng.toFixed(18);
-       popup.setLatLng(e.latlng);
-       popup.setContent("<:carte_de_sites:coordonnees_clic:>");
-       map.openPopup(popup);
-   }
-   ]
+    </BOUCLE_mots_types>
+
+    var cloudmadeAttribution = 'Map data &copy; OpenStreetMap contributors<br/>[(#ENV{lien}|!={non}|oui)(<a href="#URL_SITE_SPIP/?page=carte_de_sites_plein&lien=non&groupe=#ENV{groupe}&boite=oui&haut=400[&lat=(#ENV{lat})][&lon=(#ENV{lon})][&zoom=(#ENV{zoom})][&legende=(#ENV{legende})]" rel="external" target="_blank"><:carte_de_sites:grande_carte:></a>)]',
+        cloudmadeUrl = 'http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/{styleId}/256/{z}/{x}/{y}.png';
+
+    var osmfr = new L.TileLayer('https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', {attribution: cloudmadeAttribution});
+
+    //Construction de la carte
+    var map = new L.Map('map');
+    map.setView(new L.LatLng([(#ENV{lat}|sinon{'46.8'})],[(#ENV{lon}|sinon{'2.52'})]),[(#ENV{zoom}|sinon{5})]).addLayer(osmfr);
+    [(#ENV{fullscreen}|oui)
+        map.addControl(new L.Control.FullScreen());
+    ]
+
+    //Ajout des marqueurs      
+    <BOUCLE_map(MOTS){type = (#ENV{groupe})}{!par num titre}>
+        map.addLayer(group_#ID_MOT);
+    </BOUCLE_map>
+
+    [(#ENV{boite}|!={non}|oui)
+        <INCLURE{fond=inclure/boite}{env}>
+    ]
+
+    [(#ENV{loc}|!={oui}|non)
+        map.on('click', onMapClick);
+
+        var popup = new L.Popup();
+
+        function onMapClick(e) {
+            document.getElementById("#ENV{champ_lat}").value=e.latlng.lat.toFixed(18);
+            document.getElementById("#ENV{champ_lon}").value=e.latlng.lng.toFixed(18);
+            popup.setLatLng(e.latlng);
+            popup.setContent("<:carte_de_sites:coordonnees_clic:>");
+            map.openPopup(popup);
+        }
+    ]
 
 </script>
 </div>
 
 [(#ENV{iframe}|!={non}|oui)
-<INCLURE{fond=inclure/iframe_carte}{ajax}{env}>
+    <INCLURE{fond=inclure/iframe_carte}{ajax}{env}>
 ]
 
 <B_legende>
     [(#ENV{legende}|!={non}|oui)
         <h2 class='h2 spip'><:carte_de_sites:legende:></h2>
     ]
-<BOUCLE_legende(MOTS){type = (#ENV{groupe})}{par num titre}>
-    [(#ENV{legende}|!={non}|oui)
-       <p>#LOGO_MOT_NORMAL [(#TITRE|supprimer_numero)]</p>
-   ]   
-</BOUCLE_legende>
+    <BOUCLE_legende(MOTS){type = (#ENV{groupe})}{par num titre}>
+        [(#ENV{legende}|!={non}|oui)
+            <p>#LOGO_MOT_NORMAL [(#TITRE|supprimer_numero)]</p>
+        ]
+    </BOUCLE_legende>
 </B_legende>