Lien automatique sous la carte vers la carte plus grande
[lhc/web/spip_carte_de_sites.git] / contenu / page-carte_de_sites.html
index 7406c32..17176fc 100755 (executable)
@@ -3,21 +3,32 @@
     
     Parametres :
 
-    - legende = non : ne pas afficher la legende
+    - legende = oui : ne pas afficher la legende
     - coord    = 46.8,2.52   : pour un centrage optimal sur la carte de France
     - zoom    = 5   : pour un centrage optimal sur la carte de France
+    - larg  = 540   : largeur
+    - haut  = 400   : hauteur
+    - style = 14189 : style de carte. Voir http://maps.cloudmade.com/editor
+    - boite = oui   : affiche la boite avec calques et types
+    - popup = oui   : autoriser les popups
+    - images = oui  : afficher les images
+    - groupe = XXXX : Groupe de mot-clé dont il faut générer la carte
+    - lien  = oui   : Lien automatique vers la grande carte
 ]
 
+
 <!-- Carte -->
-<div id="map" style="width: 540px; height: 400px">
-<script src="[(#CHEMIN{lib/CloudMade-Leaflet-edb7d25/dist/leaflet.js}|url_absolue)]"></script>
+
+<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>
-<BOUCLE_ateliers_types(MOTS){type = Ateliers}{par num titre}>
+<BOUCLE_mots_types(MOTS){type = (#ENV{groupe})}{par num titre}>
                var group_#ID_MOT = new L.LayerGroup();
                <BOUCLE_sites(SITES){id_mot}>
                                <BOUCLE_coord(GIS){id_syndic}>
-                                               var WorkshopIcon = L.Icon.extend({
+                                               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),
                                                    iconAnchor: new L.Point(13, 17),
                                                    popupAnchor: new L.Point(0, -33)
                                                });
-                                               siteIcon = new WorkshopIcon()
-                                               var markerAtelier = new L.Marker(new L.LatLng(#LAT, #LON), {icon: siteIcon});
-                                               markerAtelier.bindPopup("\
-                                                       <span style='float: left; width: 45px;'><img src='[(#LOGO_SYNDIC||extraire_attribut{src}|url_absolue)]' alt='' style='width: 45px;' width='45'></span>\
-                                                       <a href='[(#ID_SYNDIC|generer_url_entite{site})]'>#TITRE</a><br/>#DESCRIPTIF\
-                                                       <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'>#NOM_SITE - #URL_SITE</a><br/><br/>\
-                                                       <em>Statut: [(#_ateliers_types:TITRE|supprimer_numero)]</em>\
-                                               ");
-                                               group_#ID_MOT.addLayer(markerAtelier)
+                                               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'>#NOM_SITE - #URL_SITE</a><br/><br/><em>Statut: [(#_mots_types:TITRE|supprimer_numero)]</em>");
+                                               ]
+                                               group_#ID_MOT.addLayer(markerGis)
                                </BOUCLE_coord>
                </BOUCLE_sites>
-</BOUCLE_ateliers_types>
+</BOUCLE_mots_types>
 
        var cloudmadeAttribution = 'Map data &copy; 2011 OpenStreetMap contributors, Imagery &copy; 2011 CloudMade',
                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}),
-               minimal = new L.TileLayer(cloudmadeUrl, cloudmadeOptions, {styleId: 14189});
+               minimal = new L.TileLayer(cloudmadeUrl, cloudmadeOptions, {styleId: [(#ENV{style}|sinon{'14189'})]});
                
 
     <B_map>
@@ -59,8 +65,8 @@
                        };
 
 <B_groups>
-       var overlayMaps = {     
-               <BOUCLE_groups(MOTS){type = Ateliers}{par num titre}>
+       var overlayMaps = {
+               <BOUCLE_groups(MOTS){type = (#ENV{groupe})}{par num titre}>
                        "[(#TITRE|supprimer_numero)]": group_#ID_MOT,</BOUCLE_groups>
        };
 </B_groups>
 
        layersControl = new L.Control.Layers(baseMaps, overlayMaps);
         
-       map.addControl(layersControl);
+       [(#ENV{boite}|!={non}|oui)
+        map.addControl(layersControl);
+    ]
 
        map.on('click', onMapClick);
        
        var popup = new L.Popup();
 
        function onMapClick(e) {
-               var latlngStr = '(' + e.latlng.lat.toFixed(5) + ', ' + e.latlng.lng.toFixed(5) + ')';
+               var latlngStr = '(' + e.latlng.lat.toFixed(5) + ',' + e.latlng.lng.toFixed(5) + ')';
                popup.setLatLng(e.latlng);
                popup.setContent("Coordonnees de votre clic (Latitude, Longitude)" + latlngStr);
                map.openPopup(popup);
 </script>
 </div>
 
-<!-- Legende -->
+[(#ENV{lien}|!={non}|oui)
+<p><i>(<a class="ajax" href="#URL_SITE_SPIP/?page=carte_de_sites_plein&lien=non&groupe=#ENV{groupe}&boite=oui&larg=900&haut=900[&coord=(#ENV{coord})][&zoom=(#ENV{zoom})][&legende=(#ENV{legende})]" class='spip_out' rel='external'>Voir la carte ci-dessous en plus grand</a>)</i></p>
+]
 
 <B_legende>
+<!-- Legende -->
     [(#ENV{legende}|!={non}|oui)
         <h2 class='h2 spip'>Legende</h2>
     ]
-<BOUCLE_legende(MOTS){type = Ateliers}{par num titre}>
+<BOUCLE_legende(MOTS){type = (#ENV{groupe})}{par num titre}>
     [(#ENV{legende}|!={non}|oui)
            <p>#LOGO_MOT_NORMAL [(#TITRE|supprimer_numero)]</p>
        ]