-<div id="map" style="width: 540px; height: 400px"></div>
+[(#REM)
+ 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
+ - 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
+ - champ_lat : Prend l'identifiant d'une balise html en argument. Change la valeur (value) de cette balise par la latitude cliquee
+ - champ_lon : Prend l'identifiant d'une balise html en argument. Change la valeur (value) de cette balise par la longitude cliquee
+]
+<!-- Carte -->
-<strong>Legende</strong><br/>
- <BOUCLE_legende(MOTS){type = Ateliers}{par num titre}>
- <p>#LOGO_MOT [(#TITRE|supprimer_numero)]</p>
- </BOUCLE_legende>
+<div id="map" style="[(#ENV{larg}|oui) width: [(#ENV{larg}|sinon{'540'})px;]] height: [(#ENV{haut}|sinon{'400'})]px">
+
+<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="#CONFIG{adresse_site}/lib/CloudMade-Leaflet-404b097/dist/leaflet.js"></script>
<script>
- var map = new L.Map('map');
-
- var cloudmadeUrl = 'http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{z}/{x}/{y}.png',
- cloudmadeAttribution = 'Map data © 2011 OpenStreetMap contributors, Imagery © 2011 CloudMade',
- cloudmade = new L.TileLayer(cloudmadeUrl, {maxZoom: 18, attribution: cloudmadeAttribution});
-
- map.setView(new L.LatLng(46.8, 2.52), 5).addLayer(cloudmade);
-
- var WorkshopIcon = L.Icon.extend({
- iconUrl: '#CONFIG{adresse_site}/plugins/carte-de-sites/images/grey.png',
- shadowUrl: '#CONFIG{adresse_site}/lib/CloudMade-Leaflet-404b097/dist/images/marker-shadow.png',
- iconSize: new L.Point(25, 41),
- shadowSize: new L.Point(41, 41),
- iconAnchor: new L.Point(13, 41),
- popupAnchor: new L.Point(0, -33)
- });
-
- var greyIcon = new WorkshopIcon()
- redIcon = new WorkshopIcon('#CONFIG{adresse_site}/plugins/carte-de-sites/images/red.png'),
- yellowIcon = new WorkshopIcon('#CONFIG{adresse_site}/plugins/carte-de-sites/images/yellow.png'),
- blueIcon = new WorkshopIcon('#CONFIG{adresse_site}/plugins/carte-de-sites/images/blue.png'),
- greenIcon = new WorkshopIcon('#CONFIG{adresse_site}/plugins/carte-de-sites/images/green.png');
-
-
- <BOUCLE_ateliers_types(MOTS){type = Ateliers}{par num titre}>
- <BOUCLE_sites(SITES){id_mot}>
- <BOUCLE_coord(GIS){id_syndic}>
- siteIcon = new WorkshopIcon('#CONFIG{adresse_site}/IMG/[(#LOGO_MOT|fichier)]')
- var markerGrenoble = new L.Marker(new L.LatLng(#LAT, #LON), {icon: siteIcon});
- map.addLayer(markerGrenoble);
- markerGrenoble.bindPopup("<a href='#URL_SITE'>#NOM_SITE</a><br/>#_sites:DESCRIPTIF<br/>#ADRESSE<br/> #CODE_POSTAL #VILLE<br/><br/><em>Statut: [(#_ateliers_types:TITRE|supprimer_numero)]</em>");
- </BOUCLE_coord>
- </BOUCLE_sites>
- </BOUCLE_ateliers_types>
-
-
- map.on('click', onMapClick);
-
- var popup = new L.Popup();
-
- function onMapClick(e) {
- var latlngStr = '(' + e.latlng.lat.toFixed(3) + ', ' + e.latlng.lng.toFixed(3) + ')';
-
- popup.setLatLng(e.latlng);
- popup.setContent("You clicked the map at " + latlngStr);
- map.openPopup(popup);
- }
-
+ <BOUCLE_mots_types(MOTS){type = (#ENV{groupe})}>
+ var group_#ID_MOT = new L.LayerGroup();
+ 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 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='' width='100%' height='100%'></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='' 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)
+ </BOUCLE_coord>
+ </BOUCLE_sites>
+ </BOUCLE_mots_types>
+
+ var cloudmadeAttribution = 'Map data © 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}>
+]
+
+<B_legende>
+<!-- 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>
+</B_legende>