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

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

Autre manière de zoomer sur une zone: avec les deux points sud-ouest et nord-est.
Normalement, le code ajouté ne modifie le comportement que si:

  • ni "lat" ni "lon" ne sont donnés en option
  • et les quatre parametres "sw_lat", "sw_lon", "ne_lat", "ne_lon" sont spécifiés
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                map[(#GET{id})] = new mxn.Mapstraction(map_container,'[(#REM|gis_api_utilisee)]');
85               
86                [(#ENV{zoom_molette,#ENV{zoom_wheel}}|!={non}|oui)
87                map[(#GET{id})].enableScrollWheelZoom();]
88               
89                [(#GET{utiliser_bb}|non)
90                map[(#GET{id})].setCenterAndZoom(new mxn.LatLonPoint([(#GET{lat})],[(#GET{lon})]),[(#ENV{zoom,#CONFIG{gis/zoom,0}})]);
91                ]
92               
93                [(#GET{utiliser_bb}|oui)
94                map[(#GET{id})].setBounds(new mxn.BoundingBox([(#GET{sw_lat})],[(#GET{sw_lon})],[(#GET{ne_lat})],[(#GET{ne_lon})]));
95                ]
96
97                [(#ENV{type}|oui)
98                #SET{type,ROAD}
99                [(#ENV{type}|=={'carte'}|oui) #SET{type,ROAD} ]
100                [(#ENV{type}|=={'satellite'}|oui) #SET{type,SATELLITE} ]
101                [(#ENV{type}|=={'hybride'}|oui) #SET{type,HYBRID} ]
102                [(#ENV{type}|=={'relief'}|oui) #SET{type,PHYSICAL} ]
103                map[(#GET{id})].setMapType([mxn.Mapstraction.(#GET{type})]);
104                ]
105
106                [(#ENV{no_control,#ENV{aucun_controle}}|!={oui}|oui)
107                map[(#GET{id})].addControls({zoom: '[(#ENV{control_zoom,large})]'});]
108       
109                [(#ENV{overview}|oui)
110                map[(#GET{id})].addControls({overview: true});]
111       
112                [(#ENV{scale}|oui)
113                map[(#GET{id})].addControls({scale: true});]
114       
115                [(#ENV{control_type,#ENV{controle_type}}|!={non}|oui)
116                map[(#GET{id})].addControls({map_type: true});]
117               
118                [(#ENV{control_pan,#ENV{contole_pan}}|!={non}|oui)
119                map[(#GET{id})].addControls({pan: true});]
120
121                [(#ENV{point}|!={non}|oui)
122                jQuery.getJSON("[(#URL_PAGE{gis_json}|url_absolue)]",
123                        {[
124                                objets : "(#ENV{objets})",][
125                                id_rubrique : (#ENV{id_rubrique}),][
126                                id_secteur : (#ENV{id_secteur}),][
127                                id_parent : (#ENV{id_parent}),][
128                                id_article : (#ENV{id_article}),][
129                                id_breve : (#ENV{id_breve}),][
130                                id_document : (#ENV{id_document}),][
131                                id_mot : (#ENV{id_mot}),][
132                                id_groupe : (#ENV{id_groupe}),][
133                                id_auteur : (#ENV{id_auteur}),][
134                                id_syndic : (#ENV{id_syndic}),][
135                                id_forum : (#ENV{id_forum}),][
136                                id_gis : (#ENV{id_gis}),][
137                                recherche : "(#ENV{recherche})",][
138                                limit : (#ENV{limit,#ENV{limite,500}})]
139                        },
140                        function(data) {
141                                if (data){
142                                        map[(#GET{id})].addJSON(data);
143                                        [(#ENV{autocenterandzoom,#ENV{centrer_auto}}|oui)
144                                        var markers = map[(#GET{id})].markers;
145                                        if (markers.length == 1){
146                                                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}});
147                                        } else {
148                                                map[(#GET{id})].autoCenterAndZoom();
149                                        }]
150                                }
151                        }
152                );]
153               
154                [(#ENV{kml}|oui)
155                [(#ENV{kml}|intval|oui)
156                map[(#GET{id})].addOverlay(['(#ENV{kml}|generer_url_entite{document}|url_absolue)']);]
157                [(#ENV{kml}|intval|non)
158                map[(#GET{id})].addOverlay(['(#ENV{kml})']);]
159                ]
160               
161                [(#ENV{localize_visitor,#ENV{localiser_visiteur}}|oui)
162                gis_get_navigator_location(map[(#GET{id})],#ENV{zoom,#CONFIG{gis/zoom,0}});]
163               
164        }
165
166        $(function(){
167                init_map[(#GET{id})]();
168                onAjaxLoad(init_map[(#GET{id})]);
169        });
170
171})(jQuery);
172-->
173</script>
Note: See TracBrowser for help on using the repository browser.