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

Last change on this file since 58780 was 58780, checked in by xdjuj@…, 9 years ago

Report de la rev 58348 de b_b

Log:
version 2.2.2 : maj de la lib Mapstraction + ajout d'un paramètre autofocus_marker au modèle de la carte pour permettre de limiter l'affichage à une seule infobulle

File size: 7.4 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    - autofocus_marker = oui                                                permet de forcer l'affichage d'une seule infobulle à la fois
30        - kml = 12                                              kml à superposer à la carte (id_document ou url)
31        - localize_visitor|localiser_visiteur = oui             centrer la carte sur la position du visiteur (API geolocation HTML5)
32        - point = non                                   si elle vaut "non" cette option n'affichera pas de points du tout (utile pour n'afficher qu'un kml par exemple)
33
34]
35
36[(#SET{width,#ENV{width,#ENV{largeur,100%}}})]
37[(#SET{height,#ENV{height,#ENV{hauteur,400px}}})]
38[(#SET{id,#ENV{id_carte_gis,#ENV{id_map,#ENV{id,1}}}})]
39[(#REM) -- compat gis v1 -- ]
40[(#SET{lat,#ENV{lat,#ENV{latit,#ENV{latitude,#CONFIG{gis/lat,0}}}}})]
41[(#SET{lon,#ENV{lon,#ENV{lonxit,#ENV{longitude,#CONFIG{gis/lon,0}}}}})]
42[(#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
43    les valeurs par defaut sont "centre +/- 10°", ce qui est naze, mais c'est un cas normalement impossible
44]
45[(#ENV{lat}|ou{#ENV{lon}}|non|et{#ENV{sw_lat}}|et{#ENV{sw_lon}}|et{#ENV{ne_lat}}|et{#ENV{ne_lon}})
46        #SET{utiliser_bb, oui}
47        #SET{sw_lat,#ENV{sw_lat,#GET{lat}|moins{10}}}
48        #SET{sw_lon,#ENV{sw_lon,#GET{lon}|moins{10}}}
49        #SET{ne_lat,#ENV{ne_lat,#GET{lat}|plus{10}}}
50        #SET{ne_lon,#ENV{ne_lon,#GET{lon}|plus{10}}}
51]
52[(#REM) 
53        // todo
54        {recursive=#ENV{recursive}}
55        {attente=#ENV{attente}}
56        {ombre=#ENV{ombre}}
57        {load_map=#ENV{load_map}}
58        {id_a_ouvrir=#ENV{id_a_ouvrir}}
59        {swfobject=#CONFIG{gis/swfobject,oui}}
60       
61        // pas documentes
62        {control_move=#ENV{control_move}}
63        {control_zoom=#ENV{control_zoom}}
64       
65        // done
66       
67        {latit}{lonxit}{zoom}{hauteur=#GET{height}}{largeur=#GET{width}}{id_carte_gis}{zoom_molette=#ENV{zoom_molette}}
68        {control}{control_type=#ENV{control_type}}{type}{limit=#ENV{limit}}
69        {id_rubrique=#GET{id_rubrique}}{id_secteur}{id_mot}{id_article}{id_auteur}{recherche}{id_groupe}
70]
71
72<div id="map[(#GET{id})]" class="carte_gis"[(#ENV{style}|!={'non'}|?{' '})style="[width:(#GET{width});][ height:(#GET{height});]"]></div>
73
74<script type="text/javascript">
75<!--
76[(#CONFIG{gis/api}|=={cloudmade}|oui)
77var cloudmade_key = '#CONFIG{gis/api_key_cloudmade}';]
78
79var map[(#GET{id})];
80
81(function($){
82       
83        var init_map[(#GET{id})] = function() {
84                var map_container = 'map[(#GET{id})]';
85
86                $('#map[(#GET{id})]').empty();
87                map[(#GET{id})] = new mxn.Mapstraction(map_container,'[(#REM|gis_api_utilisee)]');
88               
89                [(#ENV{zoom_molette,#ENV{zoom_wheel}}|!={non}|oui)
90                map[(#GET{id})].enableScrollWheelZoom();]
91               
92                [(#GET{utiliser_bb}|non)
93                map[(#GET{id})].setCenterAndZoom(new mxn.LatLonPoint([(#GET{lat})],[(#GET{lon})]),[(#ENV{zoom,#CONFIG{gis/zoom,0}})]);
94                ]
95               
96                [(#GET{utiliser_bb}|oui)
97                map[(#GET{id})].setBounds(new mxn.BoundingBox([(#GET{sw_lat})],[(#GET{sw_lon})],[(#GET{ne_lat})],[(#GET{ne_lon})]));
98                ]
99
100                [(#SET{maptype, #REM|gis_maptype_utilise})]
101                [(#ENV{type}|oui)
102                [(#ENV{type}|=={'carte'}|oui) #SET{maptype,ROAD} ]
103                [(#ENV{type}|=={'satellite'}|oui) #SET{maptype,SATELLITE} ]
104                [(#ENV{type}|=={'hybride'}|oui) #SET{maptype,HYBRID} ]
105                [(#ENV{type}|=={'relief'}|oui) #SET{maptype,PHYSICAL} ]
106                ]
107        // Pour l'API Openlayers, la methode n'existe pas
108        try {
109                        map[(#GET{id})].setMapType([mxn.Mapstraction.(#GET{maptype})]);
110        }
111        catch(err) {
112                        ;
113        }
114
115                [(#ENV{no_control,#ENV{aucun_controle}}|!={oui}|oui)
116                map[(#GET{id})].addControls({zoom: '[(#ENV{control_zoom,large})]'});]
117       
118                [(#ENV{overview}|oui)
119                map[(#GET{id})].addControls({overview: true});]
120       
121                [(#ENV{scale}|oui)
122                map[(#GET{id})].addControls({scale: true});]
123       
124                [(#ENV{control_type,#ENV{controle_type}}|!={non}|oui)
125                map[(#GET{id})].addControls({map_type: true});]
126               
127                [(#ENV{control_pan,#ENV{controle_pan}}|!={non}|oui)
128                map[(#GET{id})].addControls({pan: true});]
129
130                [(#ENV{point}|!={non}|oui)
131                jQuery.getJSON("[(#URL_PAGE{gis_json}|url_absolue)]",
132                        {[
133                                objets : "(#ENV{objets,#ENV{class}})",][
134                                id_rubrique : (#ENV{id_rubrique}),][
135                                id_secteur : (#ENV{id_secteur}),][
136                                id_parent : (#ENV{id_parent}),][
137                                id_article : (#ENV{id_article}),][
138                                id_breve : (#ENV{id_breve}),][
139                                id_document : (#ENV{id_document}),][
140                                id_mot : (#ENV{id_mot}),][
141                                id_groupe : (#ENV{id_groupe}),][
142                                id_auteur : (#ENV{id_auteur}),][
143                                id_syndic : (#ENV{id_syndic}),][
144                                id_forum : (#ENV{id_forum}),][
145                                id_gis : (#ENV{id_gis}),][
146                                recherche : "(#ENV{recherche})",][
147                                limit : (#ENV{limit,#ENV{limite,500}})]
148                        },
149                        function(data) {
150                                if (data){
151                                        map[(#GET{id})].addJSON(data);
152                                        [(#ENV{autocenterandzoom,#ENV{centrer_auto}}|oui)
153                                        var markers = map[(#GET{id})].markers;
154                                        if (markers.length == 1){
155                                                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}});
156                                        } else {
157                                                map[(#GET{id})].autoCenterAndZoom();
158                                        }]
159                                        [(#ENV{autofocus_marker}|oui) 
160                                                gis_autofocus_marker('[(#GET{id})]');
161                                        ]
162                                }
163                        }
164                );]
165               
166                <BOUCLE_test_kml(CONDITION){si (#ENV{kml}|oui)}>
167                        #SET{kml, #ENV{kml}}
168                        [(#GET{kml}|is_array|non) #SET{kml, #ARRAY{0,#GET{kml}}} ]
169                       
170                        <BOUCLE_kml(POUR){tableau #GET{kml}}>
171                                [(#VALEUR|intval|oui)
172                                        map[(#GET{id})].addOverlay(['(#VALEUR|generer_url_entite{document}|url_absolue)']);
173                                ]
174                                [(#VALEUR|intval|non)
175                                        map[(#GET{id})].addOverlay(['(#VALEUR)']);
176                                ]
177                        </BOUCLE_kml>
178                </BOUCLE_test_kml>
179               
180                [(#ENV{localize_visitor,#ENV{localiser_visiteur}}|oui)
181                gis_get_navigator_location(map[(#GET{id})],#ENV{zoom,#CONFIG{gis/zoom,0}});]
182               
183        }
184
185        $(function(){
186                init_map[(#GET{id})]();
187                onAjaxLoad(init_map[(#GET{id})]);
188        });
189
190})(jQuery);
191-->
192</script>
Note: See TracBrowser for help on using the repository browser.