37ae6d0a81a1ad0881ed09dc3fea96da36066738
[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 = non : ne pas afficher la legende
7 - coord = 46.8,2.52 : pour un centrage optimal sur la carte de France
8 - zoom = 5 : pour un centrage optimal sur la carte de France
9 - larg = 540 : largeur
10 - haut = 400 : hauteur
11 - style = 14189 : style de carte. Voir http://maps.cloudmade.com/editor
12 ]
13
14 <!-- Carte -->
15 <div id="map" style="width: [(#ENV{larg}|sinon{'540'})]px; height: [(#ENV{haut}|sinon{'400'})]px">
16 <script src="[(#CHEMIN{lib/CloudMade-Leaflet-edb7d25/dist/leaflet.js}|url_absolue)]"></script>
17
18 <script>
19 <BOUCLE_ateliers_types(MOTS){type = Ateliers}{par num titre}>
20 var group_#ID_MOT = new L.LayerGroup();
21 <BOUCLE_sites(SITES){id_mot}>
22 <BOUCLE_coord(GIS){id_syndic}>
23 var WorkshopIcon = L.Icon.extend({
24 iconUrl: '[(#LOGO_MOT||extraire_attribut{src}|url_absolue)]',
25 shadowUrl: '[(#LOGO_MOT_SURVOL||extraire_attribut{src}|url_absolue)]',
26 iconSize: new L.Point(17, 28),
27 shadowSize: new L.Point(17, 17),
28 iconAnchor: new L.Point(13, 17),
29 popupAnchor: new L.Point(0, -33)
30 });
31 siteIcon = new WorkshopIcon()
32 var markerAtelier = new L.Marker(new L.LatLng(#LAT, #LON), {icon: siteIcon});
33 markerAtelier.bindPopup("\
34 <span style='float: left; width: 45px;'><img src='[(#LOGO_SYNDIC||extraire_attribut{src}|url_absolue)]' alt='' style='width: 45px;' width='45'></span>\
35 <a href='[(#ID_SYNDIC|generer_url_entite{site})]'>#TITRE</a><br/>#DESCRIPTIF\
36 <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>\
37 #ADRESSE<br/> #CODE_POSTAL #VILLE<br/>\
38 <a href='#URL_SITE'>#NOM_SITE - #URL_SITE</a><br/><br/>\
39 <em>Statut: [(#_ateliers_types:TITRE|supprimer_numero)]</em>\
40 ");
41 group_#ID_MOT.addLayer(markerAtelier)
42 </BOUCLE_coord>
43 </BOUCLE_sites>
44 </BOUCLE_ateliers_types>
45
46 var cloudmadeAttribution = 'Map data &copy; 2011 OpenStreetMap contributors, Imagery &copy; 2011 CloudMade',
47 cloudmadeOptions = {maxZoom: 18, attribution: cloudmadeAttribution},
48 cloudmadeUrl = 'http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/{styleId}/256/{z}/{x}/{y}.png';
49
50 var midnightCommander = new L.TileLayer(cloudmadeUrl, cloudmadeOptions, {styleId: 999}),
51 minimal = new L.TileLayer(cloudmadeUrl, cloudmadeOptions, {styleId: [(#ENV{style}|sinon{'14189'})]});
52
53
54 <B_map>
55 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]});
56 </B_map>
57
58
59 var baseMaps = {
60 "Vue de nuit ;-)": midnightCommander,
61 "Vue de jour": minimal
62 };
63
64 <B_groups>
65 var overlayMaps = {
66 <BOUCLE_groups(MOTS){type = Ateliers}{par num titre}>
67 "[(#TITRE|supprimer_numero)]": group_#ID_MOT,</BOUCLE_groups>
68 };
69 </B_groups>
70
71
72 layersControl = new L.Control.Layers(baseMaps, overlayMaps);
73
74 map.addControl(layersControl);
75
76 map.on('click', onMapClick);
77
78 var popup = new L.Popup();
79
80 function onMapClick(e) {
81 var latlngStr = '(' + e.latlng.lat.toFixed(5) + ', ' + e.latlng.lng.toFixed(5) + ')';
82 popup.setLatLng(e.latlng);
83 popup.setContent("Coordonnees de votre clic (Latitude, Longitude)" + latlngStr);
84 map.openPopup(popup);
85 }
86
87 </script>
88 </div>
89
90 <!-- Legende -->
91
92 <B_legende>
93 [(#ENV{legende}|!={non}|oui)
94 <h2 class='h2 spip'>Legende</h2>
95 ]
96 <BOUCLE_legende(MOTS){type = Ateliers}{par num titre}>
97 [(#ENV{legende}|!={non}|oui)
98 <p>#LOGO_MOT_NORMAL [(#TITRE|supprimer_numero)]</p>
99 ]
100 </BOUCLE_legende>
101 </B_legende>