source: spip-zone/_plugins_/gis/trunk/modeles/carte_gis_preview.html @ 119762

Last change on this file since 119762 was 119762, checked in by root, 9 months ago

Pouvoir passer en parametre : width (largeur) et height (hauteur) du fond de carte

  • Property svn:executable set to *
File size: 4.3 KB
Line 
1[(#REM)
2
3Modele carte_gis
4----------------
5
6Parametres possibles :
7- id_gis (optionnel)
8- id_objet (optionnel)
9- objet (optionnel)
10- width|largeur = 100%             largeur de la carte, 100% par defaut
11- height|hauteur = 400px           hauteur de la carte, 400px par defaut
12]
13
14[(#SET{width,#ENV{width,#ENV{largeur,100%}}})]
15[(#SET{height,#ENV{height,#ENV{hauteur,150px}}})]
16
17<BOUCLE_gis(GIS){objet ?}{id_objet ?}{id_gis ?}{0,1}>
18<div id="map_preview" class="carte_gis" style="[width: (#GET{width});] [height: (#GET{height});]"></div>
19#SET{autocenter,''}
20<script type="text/javascript">
21/*<![CDATA[*/
22var jQgisloader;
23(function (){
24        if (typeof jQuery.ajax == "undefined"){ jQuery(init_gis); } else { init_gis(); }
25        function init_gis(){
26                // Charger le javascript de GIS une seule fois si plusieurs carte
27                if (typeof jQgisloader=="undefined"){
28                        jQgisloader = jQuery.ajax({url: '[(#PRODUIRE{fond=javascript/gis.js})]', dataType: 'script', cache: true});
29                }
30                // et initialiser la carte (des que js GIS charge et des que DOM ready)
31                jQgisloader.done(function(){
32                        jQuery(function(){
33                                var map_preview;
34                                var map_preview_container = 'map_preview';
35                                var marker;
36
37                                map_preview = new L.Map(map_preview_container);
38
39                                map_preview.attributionControl.setPrefix('');
40
41                                var base_layer = [(#ENV{layer_defaut}|=={none}|?{"'none'",[new (#EVAL{$GLOBALS\['gis_layers'\]}|table_valeur{[(#ENV{layer_defaut,[(#REM|gis_layer_defaut)]})]/layer})]})];
42                                if(base_layer != 'none'){
43                                        map_preview.addLayer(base_layer);
44                                }
45
46                                map_preview.setView(new L.LatLng([(#LAT)],[(#LON)]),[(#ZOOM|sinon{#CONFIG{gis/zoom,0}})]);
47
48                                [(#REM) On ajoute les points ou le point unique suivant les params ]
49                                <B_points>
50                                var data = {
51                                        "type": "FeatureCollection",
52                                        "features": [
53                                <BOUCLE_points(GIS){id_objet}{objet}{","}>
54                                                {"type": "Feature",
55                                                        "geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
56                                                        "id":"#ID_GIS",
57                                                        "properties": {
58                                                                "title":[(#TITRE|supprimer_numero|json_encode)],
59                                                                "description":[(#DESCRIPTIF|json_encode)][
60                                                                (#LOGO_GIS|gis_icon_properties)]
61                                                        }
62                                                }
63                                </BOUCLE_points>
64                                        ]
65                                };
66                                [(#TOTAL_BOUCLE|>{1}|oui) #SET{autocenter,oui} ]
67                                </B_points>
68                                <BOUCLE_point(GIS){id_gis}>
69                                var data = {
70                                        "type": "FeatureCollection",
71                                        "features": [
72                                                {"type": "Feature",
73                                                        "geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
74                                                        "id":"#ID_GIS",
75                                                        "properties": {
76                                                                "title":[(#TITRE|supprimer_numero|json_encode)],
77                                                                "description":[(#DESCRIPTIF|json_encode)][
78                                                                (#LOGO_GIS|gis_icon_properties)]
79                                                        }
80                                                }]
81                                };
82                                </BOUCLE_point>
83                                <//B_points>
84                                if (data) {
85                                        var geojson = new L.geoJson('', {
86                                                onEachFeature: function (feature, layer) {
87                                                        if (feature.properties && feature.properties.icon){
88                                                                layer.setIcon(new L.Icon({
89                                                                        iconUrl: feature.properties.icon,
90                                                                        iconSize: new L.Point( feature.properties.icon_size\[0\], feature.properties.icon_size\[1\] ),
91                                                                        iconAnchor: new L.Point( feature.properties.icon_anchor\[0\], feature.properties.icon_anchor\[1\] ),
92                                                                        popupAnchor: new L.Point( feature.properties.popup_anchor\[0\], feature.properties.popup_anchor\[1\] )
93                                                                }));
94                                                        }
95                                                        if (feature.properties && feature.properties.title){
96                                                                var popupContent = '<strong>' + feature.properties.title + '</strong>';
97                                                                if (feature.properties.description)
98                                                                        popupContent = popupContent + feature.properties.description;
99                                                                layer.bindPopup(popupContent);
100                                                        }
101                                                }
102                                        }).addTo(map_preview);
103                                        geojson.addData(data);
104                                        [(#GET{autocenter}|oui)
105                                        if(data.features.length > 1)
106                                                map_preview.fitBounds(geojson.getBounds());]
107                                }
108                                [(#REM) On ajoute les KML attachés à l'objet ]
109                                <BOUCLE_kml(DOCUMENTS){tous}{objet}{id_objet}{extension=kml}>
110                                map_preview.addLayer(new L.KML('[(#URL_DOCUMENT|url_absolue)]', {async: true}));
111                                </BOUCLE_kml>
112                                [(#REM) On ajoute les GPX attachés à l'objet ]
113                                <BOUCLE_gpx(DOCUMENTS){tous}{objet}{id_objet}{extension=gpx}>
114                                map_preview.addLayer(new L.GPX('[(#URL_DOCUMENT|url_absolue)]', {async: true}));
115                                </BOUCLE_gpx>
116                        });
117                });
118        }
119})()
120/*]]>*/
121</script>
122</BOUCLE_gis>
Note: See TracBrowser for help on using the repository browser.