Affinage coordonnes geo dans le popup
[lhc/web/spip_carte_de_sites.git] / contenu / page-carte_de_sites.html
index 80a6c0b..8221417 100755 (executable)
     Modele carte_de_site
     
     Parametres :
-
-    - 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
+    - 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
+    - zoom    = 5   : niveau de zoom (pour repère: 1 = la carte du monde; 15 = quartier)
+    - larg  = 100%  : largeur de la carte en pixel ou en pourcentage
+    - haut  = 400   : hauteur de la carte en pixel ou en pourcentage
+    - style = 14189 : style de carte. Voir http://maps.cloudmade.com/editor . Si vous mettez en place une super carte pour les cyclistes, on est preneur.
+    - boite = oui   : afficher ou pas la boite avec calques et types
+    - popup = oui   : afficher ou pas les popups de description des ateliers
+    - images = oui  : afficher ou pas les images (logo, photo de l'atelier)
+    - lien  = oui   : Lien automatique vers la grande carte
+    - iframe = oui  : Afficher ou non le lien vers le code iframe
+    - loc = non     : Afficher ou non le popup de localisation
 ]
 
 <!-- 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-edb7d25/dist/leaflet.js}|url_absolue)]"></script>
+<script src="[(#CHEMIN{lib/CloudMade-Leaflet-538dfb4/dist/leaflet.js}|url_absolue)]"></script>
 
 <script>
-<BOUCLE_ateliers_types(MOTS){type = Ateliers}{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({
-                                                   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)
-                                               });
-                                               siteIcon = new WorkshopIcon()
-                                               var markerAtelier = new L.Marker(new L.LatLng(#LAT, #LON), {icon: siteIcon});
-                        [(#ENV{popup}|!={non}|oui)
-                                               markerAtelier.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>]<a href='[(#ID_SYNDIC|generer_url_entite{site})]'>#TITRE</a><br/>#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: [(#_ateliers_types:TITRE|supprimer_numero)]</em>");
-                                               ]
-                                               group_#ID_MOT.addLayer(markerAtelier)
-                               </BOUCLE_coord>
-               </BOUCLE_sites>
-</BOUCLE_ateliers_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';
+   <BOUCLE_mots_types(MOTS){type = (#ENV{groupe})}>
+         var group_#ID_MOT = new L.LayerGroup();
+         <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>");
+                     ]
+                     group_#ID_MOT.addLayer(markerGis)
+               </BOUCLE_coord>
+         </BOUCLE_sites>
+   </BOUCLE_mots_types>
+
+   var cloudmadeAttribution = 'Map data &copy; 2011 OpenStreetMap contributors, Imagery &copy; 2011 CloudMade<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">Voir la carte en plus grand</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}),
-               minimal = new L.TileLayer(cloudmadeUrl, cloudmadeOptions, {styleId: [(#ENV{style}|sinon{'14189'})]});
+   var midnightCommander = new L.TileLayer(cloudmadeUrl, cloudmadeOptions, {styleId: 999}),
+      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(minimal);
+       
+       //Ajout des marqueurs   
+   <BOUCLE_map(MOTS){type = (#ENV{groupe})}{!par num titre}>
+      map.addLayer(group_#ID_MOT);
+   </BOUCLE_map>
 
-    <B_map>
-           var map = new L.Map('map', {center: new L.LatLng([(#ENV{coord}|sinon{'46.8,2.52'})]), zoom: [(#ENV{zoom}|sinon{5})], layers: [<BOUCLE_map(MOTS){type = Ateliers}>   group_#ID_MOT,</BOUCLE_map>     midnightCommander, minimal]});
-    </B_map>
-
-
-       var baseMaps = {
-                               "Vue de nuit ;-)": midnightCommander,                           
-                               "Vue de jour": minimal
-                       };
-
-<B_groups>
-       var overlayMaps = {
-               <BOUCLE_groups(MOTS){type = Ateliers}{par num titre}>
-                       "[(#TITRE|supprimer_numero)]": group_#ID_MOT,</BOUCLE_groups>
-       };
-</B_groups>
-
-
-       layersControl = new L.Control.Layers(baseMaps, overlayMaps);
-        
        [(#ENV{boite}|!={non}|oui)
-        map.addControl(layersControl);
-    ]
+          <INCLURE{fond=inclure/boite}{env}>
+       ]
 
-       map.on('click', onMapClick);
+   [(#ENV{loc}|!={oui}|non)
+   map.on('click', onMapClick);
        
-       var popup = new L.Popup();
 
-       function onMapClick(e) {
-               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);
-       }
+   var popup = new L.Popup();
+
+   function onMapClick(e) {
+      var latlngStr = '(' + e.latlng.lat.toFixed(18) + ',' + e.latlng.lng.toFixed(18) + ')';
+      popup.setLatLng(e.latlng);
+      popup.setContent("Coordonnees de votre clic (Latitude, Longitude)" + latlngStr);
+      map.openPopup(popup);
+   }
+   ]
 
 </script>
 </div>
 
-<!-- Legende -->
+[(#ENV{iframe}|!={non}|oui)
+<INCLURE{fond=inclure/iframe_carte}{ajax}{env}>
+]
 
 <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>
-       ]       
+       <p>#LOGO_MOT_NORMAL [(#TITRE|supprimer_numero)]</p>
+   ]   
 </BOUCLE_legende>
 </B_legende>