source: spip-zone/_plugins_/gis/branches/v3/modeles/carte_gis.html @ 64179

Last change on this file since 64179 was 64179, checked in by real3t@…, 8 years ago

Report de [64176] : Pouvoir passer le critère 'media' (pour les documents)

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