Modif pour test
[lhc/web/spip_carte_de_sites.git] / contenu / page-carte_de_sites.html
1 [(#REM)
2 Modele carte_de_site
3
4 Parametres :
5
6 - legende = oui : ne pas afficher la legende
7 - lat = 46.8 : pour un centrage optimal sur la carte de France
8 - lon = 2.52 : pour un centrage optimal sur la carte de France
9 - zoom = 5 : pour un centrage optimal sur la carte de France
10 - larg = 540 : largeur
11 - haut = 400 : hauteur
12 - style = 14189 : style de carte. Voir http://maps.cloudmade.com/editor
13 - boite = oui : affiche la boite avec calques et types
14 - popup = oui : autoriser les popups
15 - images = oui : afficher les images
16 - groupe = XXXX : Groupe de mot-clé dont il faut générer la carte
17 - lien = oui : Lien automatique vers la grande carte
18 - iframe = oui : Affichage du code iframe par défaut
19 - loc = non : Affichage du popup de localisation
20 ]
21
22 <!-- Carte -->
23
24 <div id="map" style="[(#ENV{larg}|oui) width: [(#ENV{larg}|sinon{'540'})px;]] height: [(#ENV{haut}|sinon{'400'})]px">
25
26 <script src="[(#CHEMIN{lib/CloudMade-Leaflet-538dfb4/dist/leaflet.js}|url_absolue)]"></script>
27
28 <script>
29 <BOUCLE_mots_types(MOTS){type = (#ENV{groupe})}>
30 var group_#ID_MOT = new L.LayerGroup();
31 <BOUCLE_sites(SITES){id_mot}>
32 <BOUCLE_coord(GIS){id_syndic}>
33 var templateIcon = L.Icon.extend({
34 iconUrl: '[(#LOGO_MOT||extraire_attribut{src}|url_absolue)]',
35 shadowUrl: '[(#LOGO_MOT_SURVOL||extraire_attribut{src}|url_absolue)]',
36 iconSize: new L.Point(17, 28),
37 shadowSize: new L.Point(17, 17),
38 iconAnchor: new L.Point(13, 17),
39 popupAnchor: new L.Point(0, -33)
40 });
41 gisIcon = new templateIcon()
42 var markerGis = new L.Marker(new L.LatLng(#LAT, #LON), {icon: gisIcon});
43 [(#ENV{popup}|!={non}|oui)
44 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>");
45 ]
46 group_#ID_MOT.addLayer(markerGis)
47 </BOUCLE_coord>
48 </BOUCLE_sites>
49 </BOUCLE_mots_types>
50
51 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>)]',
52 cloudmadeOptions = {maxZoom: 18, attribution: cloudmadeAttribution},
53 cloudmadeUrl = 'http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/{styleId}/256/{z}/{x}/{y}.png';
54
55 var midnightCommander = new L.TileLayer(cloudmadeUrl, cloudmadeOptions, {styleId: 999}),
56 minimal = new L.TileLayer(cloudmadeUrl, cloudmadeOptions, {styleId: [(#ENV{style}|sinon{'14189'})]});
57
58 //Construction de la carte
59 var map = new L.Map('map');
60 map.setView(new L.LatLng([(#ENV{lat}|sinon{'46.8'})],[(#ENV{lon}|sinon{'2.52'})]),[(#ENV{zoom}|sinon{5})]).addLayer(minimal);
61
62 //Ajout des marqueurs
63 <BOUCLE_map(MOTS){type = (#ENV{groupe})}{!par num titre}>
64 map.addLayer(group_#ID_MOT);
65 </BOUCLE_map>
66
67 [(#ENV{boite}|!={non}|oui)
68 <INCLURE{fond=inclure/boite}{env}>
69 ]
70
71 [(#ENV{loc}|!={oui}|non)
72 map.on('click', onMapClick);
73
74
75 var popup = new L.Popup();
76
77 function onMapClick(e) {
78 var latlngStr = '(' + e.latlng.lat.toFixed(5) + ',' + e.latlng.lng.toFixed(5) + ')';
79 popup.setLatLng(e.latlng);
80 popup.setContent("Coordonnees de votre clic (Latitude, Longitude)" + latlngStr);
81 map.openPopup(popup);
82 }
83 ]
84
85 </script>
86 </div>
87
88 [(#ENV{iframe}|!={non}|oui)
89 <INCLURE{fond=inclure/iframe_carte}{ajax}{env}>
90 ]
91
92 <B_legende>
93 <!-- Legende -->
94 [(#ENV{legende}|!={non}|oui)
95 <h2 class='h2 spip'>Legende</h2>
96 ]
97 <BOUCLE_legende(MOTS){type = (#ENV{groupe})}{par num titre}>
98 [(#ENV{legende}|!={non}|oui)
99 <p>#LOGO_MOT_NORMAL [(#TITRE|supprimer_numero)]</p>
100 ]
101 </BOUCLE_legende>
102 </B_legende>