source: spip-zone/_plugins_/gis/trunk/modeles/carte_gis.html @ 53774

Last change on this file since 53774 was 53774, checked in by lesage.sylvain@…, 9 years ago

On vide le div#mapID, qui de toute maniere doit etre vide a ce moment la, pour eviter de se retrouver avec une nouvelle carte a chaque appel ajax.

File size: 6.7 KB
Line 
1[(#REM)
2
3        Modele carte_gis
4
5        Parametres :
6
7        - id_map|id_carte_gis = 1               id de la carte
8        - lat|latit|latitude = 48.3             latitude du centre de la carte
9        - lon|lonxit|longitude = -4.7   longitude du centre de la carte
10        - zoom = 5                                              zoom de la carte
11        - sw_lat = lat - 10°                    latitude du sud-ouest de la bounding box
12        - sw_lon = lon - 10°                    longitude du sud-ouest de la bounding box
13        - ne_lat = lat + 10°                    latitude du nord-est de la bounding box
14        - ne_lon = lon + 10°                    longitude du nord-est de la bounding box
15        - width|largeur = 100%                  largeur de la carte, 100% par defaut
16        - height|hauteur = 400px                hauteur de la carte, 400px par defaut
17        - style = non                                   ne pas styler la carte
18        - zoom_molette|zoom_wheel = non désactiver le zoom avec la molette de la souris, actif par defaut
19        - type = carte                                  type de la carte : carte, satellite, relief ou hybride
20        - control_zoom|controle_zoom = large    type de controles pour le zoom : large, small
21        - control_pan|controle_pan = non                                ne pas afficher les controles de déplacement dans la carte
22        - control_type|controle_type = non                      ne pas afficher les controles de changement de type
23        - no_control|aucun_controle = oui                               ne pas afficher les controles de la carte
24        - overview = oui                                afficher un mini carte de situation
25        - scale = oui                                   afficher l'échelle de la carte
26        - limit|limite = 500                                    nombre max de marqueurs à afficher, 500 par defaut
27        - objets = gis                                  type d'objets à afficher (fichier json/gis_xx qui génère la source de donnees)
28        - autocenterandzoom|centrer_auto = oui          centrer et zoomer la carte automatiquement pour afficher tous les marqueurs
29        - kml = 12                                              kml à superposer à la carte (id_document ou url)
30        - localize_visitor|localiser_visiteur = oui             centrer la carte sur la position du visiteur (API geolocation HTML5)
31        - point = non                                   si elle vaut "non" cette option n'affichera pas de points du tout (utile pour n'afficher qu'un kml par exemple)
32
33]
34
35[(#SET{width,#ENV{width,#ENV{largeur,100%}}})]
36[(#SET{height,#ENV{height,#ENV{hauteur,400px}}})]
37[(#SET{id,#ENV{id_carte_gis,#ENV{id_map,#ENV{id,1}}}})]
38[(#REM) -- compat gis v1 -- ]
39[(#SET{lat,#ENV{lat,#ENV{latit,#ENV{latitude,#CONFIG{gis/lat,0}}}}})]
40[(#SET{lon,#ENV{lon,#ENV{lonxit,#ENV{longitude,#CONFIG{gis/lon,0}}}}})]
41[(#REM) On utilise la bounding box seulement si le centre n'a pas été donné et si les quatre valeurs de la bounding box sont renseignées
42    les valeurs par defaut sont "centre +/- 10°", ce qui est naze, mais c'est un cas normalement impossible
43]
44[(#ENV{lat}|ou{#ENV{lon}}|non|et{#ENV{sw_lat}}|et{#ENV{sw_lon}}|et{#ENV{ne_lat}}|et{#ENV{ne_lon}})
45        #SET{utiliser_bb, oui}
46        #SET{sw_lat,#ENV{sw_lat,#GET{lat}|moins{10}}}
47        #SET{sw_lon,#ENV{sw_lon,#GET{lon}|moins{10}}}
48        #SET{ne_lat,#ENV{ne_lat,#GET{lat}|plus{10}}}
49        #SET{ne_lon,#ENV{ne_lon,#GET{lon}|plus{10}}}
50]
51[(#REM) 
52        // todo
53        {recursive=#ENV{recursive}}
54        {attente=#ENV{attente}}
55        {ombre=#ENV{ombre}}
56        {load_map=#ENV{load_map}}
57        {id_a_ouvrir=#ENV{id_a_ouvrir}}
58        {swfobject=#CONFIG{gis/swfobject,oui}}
59       
60        // pas documentes
61        {control_move=#ENV{control_move}}
62        {control_zoom=#ENV{control_zoom}}
63       
64        // done
65       
66        {latit}{lonxit}{zoom}{hauteur=#GET{height}}{largeur=#GET{width}}{id_carte_gis}{zoom_molette=#ENV{zoom_molette}}
67        {control}{control_type=#ENV{control_type}}{type}{limit=#ENV{limit}}
68        {id_rubrique=#GET{id_rubrique}}{id_secteur}{id_mot}{id_article}{id_auteur}{recherche}{id_groupe}
69]
70
71<div id="map[(#GET{id})]" class="carte_gis"[(#ENV{style}|!={'non'}|?{' '})style="[width:(#GET{width});][ height:(#GET{height});]"]></div>
72
73<script type="text/javascript">
74<!--
75[(#CONFIG{gis/api}|=={cloudmade}|oui)
76var cloudmade_key = '#CONFIG{gis/api_key_cloudmade}';]
77
78var map[(#GET{id})];
79
80(function($){
81       
82        var init_map[(#GET{id})] = function() {
83                var map_container = 'map[(#GET{id})]';
84
85                $('#map[(#GET{id})]').empty();
86                map[(#GET{id})] = new mxn.Mapstraction(map_container,'[(#REM|gis_api_utilisee)]');
87               
88                [(#ENV{zoom_molette,#ENV{zoom_wheel}}|!={non}|oui)
89                map[(#GET{id})].enableScrollWheelZoom();]
90               
91                [(#GET{utiliser_bb}|non)
92                map[(#GET{id})].setCenterAndZoom(new mxn.LatLonPoint([(#GET{lat})],[(#GET{lon})]),[(#ENV{zoom,#CONFIG{gis/zoom,0}})]);
93                ]
94               
95                [(#GET{utiliser_bb}|oui)
96                map[(#GET{id})].setBounds(new mxn.BoundingBox([(#GET{sw_lat})],[(#GET{sw_lon})],[(#GET{ne_lat})],[(#GET{ne_lon})]));
97                ]
98
99                [(#ENV{type}|oui)
100                #SET{type,ROAD}
101                [(#ENV{type}|=={'carte'}|oui) #SET{type,ROAD} ]
102                [(#ENV{type}|=={'satellite'}|oui) #SET{type,SATELLITE} ]
103                [(#ENV{type}|=={'hybride'}|oui) #SET{type,HYBRID} ]
104                [(#ENV{type}|=={'relief'}|oui) #SET{type,PHYSICAL} ]
105                map[(#GET{id})].setMapType([mxn.Mapstraction.(#GET{type})]);
106                ]
107
108                [(#ENV{no_control,#ENV{aucun_controle}}|!={oui}|oui)
109                map[(#GET{id})].addControls({zoom: '[(#ENV{control_zoom,large})]'});]
110       
111                [(#ENV{overview}|oui)
112                map[(#GET{id})].addControls({overview: true});]
113       
114                [(#ENV{scale}|oui)
115                map[(#GET{id})].addControls({scale: true});]
116       
117                [(#ENV{control_type,#ENV{controle_type}}|!={non}|oui)
118                map[(#GET{id})].addControls({map_type: true});]
119               
120                [(#ENV{control_pan,#ENV{contole_pan}}|!={non}|oui)
121                map[(#GET{id})].addControls({pan: true});]
122
123                [(#ENV{point}|!={non}|oui)
124                jQuery.getJSON("[(#URL_PAGE{gis_json}|url_absolue)]",
125                        {[
126                                objets : "(#ENV{objets})",][
127                                id_rubrique : (#ENV{id_rubrique}),][
128                                id_secteur : (#ENV{id_secteur}),][
129                                id_parent : (#ENV{id_parent}),][
130                                id_article : (#ENV{id_article}),][
131                                id_breve : (#ENV{id_breve}),][
132                                id_document : (#ENV{id_document}),][
133                                id_mot : (#ENV{id_mot}),][
134                                id_groupe : (#ENV{id_groupe}),][
135                                id_auteur : (#ENV{id_auteur}),][
136                                id_syndic : (#ENV{id_syndic}),][
137                                id_forum : (#ENV{id_forum}),][
138                                id_gis : (#ENV{id_gis}),][
139                                recherche : "(#ENV{recherche})",][
140                                limit : (#ENV{limit,#ENV{limite,500}})]
141                        },
142                        function(data) {
143                                if (data){
144                                        map[(#GET{id})].addJSON(data);
145                                        [(#ENV{autocenterandzoom,#ENV{centrer_auto}}|oui)
146                                        var markers = map[(#GET{id})].markers;
147                                        if (markers.length == 1){
148                                                map[(#GET{id})].setCenterAndZoom(new mxn.LatLonPoint(markers[(#VAL{91}|chr)]0[(#VAL{93}|chr)].location.lat,markers[(#VAL{91}|chr)]0[(#VAL{93}|chr)].location.lon),#ENV{zoom,#CONFIG{gis/zoom,0}});
149                                        } else {
150                                                map[(#GET{id})].autoCenterAndZoom();
151                                        }]
152                                }
153                        }
154                );]
155               
156                [(#ENV{kml}|oui)
157                [(#ENV{kml}|intval|oui)
158                map[(#GET{id})].addOverlay(['(#ENV{kml}|generer_url_entite{document}|url_absolue)']);]
159                [(#ENV{kml}|intval|non)
160                map[(#GET{id})].addOverlay(['(#ENV{kml})']);]
161                ]
162               
163                [(#ENV{localize_visitor,#ENV{localiser_visiteur}}|oui)
164                gis_get_navigator_location(map[(#GET{id})],#ENV{zoom,#CONFIG{gis/zoom,0}});]
165               
166        }
167
168        $(function(){
169                init_map[(#GET{id})]();
170                onAjaxLoad(init_map[(#GET{id})]);
171        });
172
173})(jQuery);
174-->
175</script>
Note: See TracBrowser for help on using the repository browser.