source: spip-zone/_plugins_/gis/branches/v2/modeles/carte_gis.html @ 64176

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

Pouvoir passer le critère 'media' (pour les documents)

File size: 6.8 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        - width|largeur = 100%                                                  largeur de la carte, 100% par defaut
12        - height|hauteur = 400px                                                hauteur de la carte, 400px par defaut
13        - style = non                                                                   ne pas styler la carte
14        - zoom_molette|zoom_wheel = non                                 désactiver le zoom avec la molette de la souris, actif par defaut
15        - type = carte                                                                  type de la carte : carte, satellite, relief ou hybride
16        - control_zoom|controle_zoom = large                    type de controles pour le zoom : large, small
17        - control_pan|controle_pan = non                                ne pas afficher les controles de déplacement dans la carte
18        - control_type|controle_type = non                              ne pas afficher les controles de changement de type
19        - no_control|aucun_controle = oui                               ne pas afficher les controles de la carte
20        - overview = oui                                                                afficher un mini carte de situation
21        - scale = oui                                                                   afficher l'échelle de la carte
22        - limit|limite = 500                                                    nombre max de marqueurs à afficher, 500 par defaut
23        - objets = gis                                                                  type d'objets à afficher (fichier json/gis_xx qui génère la source de donnees)
24        - autocenterandzoom|centrer_auto = oui                  centrer et zoomer la carte automatiquement pour afficher tous les marqueurs
25        - autofocus_marker = oui                                                permet de forcer l'affichage d'une seule infobulle à la fois
26        - kml = 12                                                                              kml à superposer à la carte (id_document ou url)
27        - localize_visitor|localiser_visiteur = oui             centrer la carte sur la position du visiteur (API geolocation HTML5)
28        - point = non                                                                   si elle vaut "non" cette option n'affichera pas de points du tout (utile pour n'afficher qu'un kml par exemple)
29        - ajaxload = non                                                                si elle vaut "non" cette option désactive l'init de la carte sur l'event ajaxload
30        - media = non                                                                   permet de passer le critère 'media' (pour les documents)
31
32]
33
34[(#SET{width,#ENV{width,#ENV{largeur,100%}}})]
35[(#SET{height,#ENV{height,#ENV{hauteur,400px}}})]
36[(#SET{id,#ENV{id_carte_gis,#ENV{id_map,#ENV{id,1}}}})]
37[(#REM) -- compat gis v1 -- ]
38[(#SET{lat,#ENV{lat,#ENV{latit,#ENV{latitude,#CONFIG{gis/lat,0}}}}})]
39[(#SET{lon,#ENV{lon,#ENV{lonxit,#ENV{longitude,#CONFIG{gis/lon,0}}}}})]
40
41[(#REM) 
42        // todo
43        {recursive=#ENV{recursive}}
44        {attente=#ENV{attente}}
45        {ombre=#ENV{ombre}}
46        {load_map=#ENV{load_map}}
47        {id_a_ouvrir=#ENV{id_a_ouvrir}}
48        {swfobject=#CONFIG{gis/swfobject,oui}}
49       
50        // pas documentes
51        {control_move=#ENV{control_move}}
52        {control_zoom=#ENV{control_zoom}}
53       
54        // done
55       
56        {latit}{lonxit}{zoom}{hauteur=#GET{height}}{largeur=#GET{width}}{id_carte_gis}{zoom_molette=#ENV{zoom_molette}}
57        {control}{control_type=#ENV{control_type}}{type}{limit=#ENV{limit}}
58        {id_rubrique=#GET{id_rubrique}}{id_secteur}{id_mot}{id_article}{id_auteur}{recherche}{id_groupe}
59]
60
61<div id="map[(#GET{id})]" class="carte_gis"[(#ENV{style}|!={'non'}|?{' '})style="[width:(#GET{width});][ height:(#GET{height});]"]></div>
62
63<script type="text/javascript">/*<!#EVAL{chr(91)}CDATA#EVAL{chr(91)}*/
64[(#CONFIG{gis/api}|=={cloudmade}|oui)
65var cloudmade_key = '#CONFIG{gis/api_key_cloudmade}';]
66
67var map[(#GET{id})];
68
69(function($){
70       
71        var init_map[(#GET{id})] = function() {
72                var map_container = 'map[(#GET{id})]';
73                $('#map[(#GET{id})]').empty();
74                map[(#GET{id})] = new mxn.Mapstraction(map_container,'[(#REM|gis_api_utilisee)]');
75               
76                [(#ENV{zoom_molette,#ENV{zoom_wheel}}|!={non}|oui)
77                map[(#GET{id})].enableScrollWheelZoom();]
78               
79                map[(#GET{id})].setCenterAndZoom(new mxn.LatLonPoint(#GET{lat},#GET{lon}),#ENV{zoom,#CONFIG{gis/zoom,0}});
80
81                [(#SET{maptype, #REM|gis_maptype_utilise})]
82                [(#ENV{type}|oui)
83                [(#ENV{type}|=={'carte'}|oui) #SET{maptype,ROAD} ]
84                [(#ENV{type}|=={'satellite'}|oui) #SET{maptype,SATELLITE} ]
85                [(#ENV{type}|=={'hybride'}|oui) #SET{maptype,HYBRID} ]
86                [(#ENV{type}|=={'relief'}|oui) #SET{maptype,PHYSICAL} ]
87                ]
88                // Pour l'API Openlayers, la methode n'existe pas
89                try {
90                        map[(#GET{id})].setMapType([mxn.Mapstraction.(#GET{maptype})]);
91                }
92                catch(err) {
93                        ;
94                }
95               
96                #SET{map_controls,#ARRAY}
97               
98                [(#ENV{no_control,#ENV{aucun_controle}}|!={oui}|oui)
99                        [(#SET{map_controls,#GET{map_controls}|array_merge{#ARRAY{zoom,#ENV{control_zoom,large}}}})]
100                ]
101                [(#ENV{overview}|oui)
102                        [(#SET{map_controls,#GET{map_controls}|array_merge{#ARRAY{overview,true}}})]
103                ]
104                [(#ENV{scale}|oui)
105                        [(#SET{map_controls,#GET{map_controls}|array_merge{#ARRAY{scale,true}}})]
106                ]
107                        [(#ENV{control_type,#ENV{controle_type}}|!={non}|oui)
108                [(#SET{map_controls,#GET{map_controls}|array_merge{#ARRAY{map_type,true}}})]
109                ]
110                [(#ENV{control_pan,#ENV{contole_pan}}|!={non}|oui)
111                        [(#SET{map_controls,#GET{map_controls}|array_merge{#ARRAY{pan,true}}})]
112                ]
113               
114                map[(#GET{id})].addControls([(#GET{map_controls}|json_encode)]);
115
116                [(#ENV{point}|!={non}|oui)
117                jQuery.getJSON("[(#URL_PAGE{gis_json}|url_absolue)]",
118                        {[
119                                objets : "(#ENV{objets}|trim)",][
120                                id_rubrique : (#ENV{id_rubrique}|trim),][
121                                id_secteur : (#ENV{id_secteur}|trim),][
122                                id_parent : (#ENV{id_parent}|trim),][
123                                id_article : (#ENV{id_article}|trim),][
124                                id_breve : (#ENV{id_breve}|trim),][
125                                id_document : (#ENV{id_document}|trim),][
126                                media : "(#ENV{media}|trim)",][
127                                id_mot : (#ENV{id_mot}|trim),][
128                                id_groupe : (#ENV{id_groupe}|trim),][
129                                id_auteur : (#ENV{id_auteur}|trim),][
130                                id_syndic : (#ENV{id_syndic}|trim),][
131                                id_forum : (#ENV{id_forum}|trim),][
132                                id_evenement : (#ENV{id_evenement}|trim),][
133                                id_gis : (#ENV{id_gis}|trim),][
134                                recherche : "(#ENV{recherche})",][
135                                mots : (#ENV{mots}|?{[(#ENV{mots}|trim|json_encode)],''}),][
136                                limit : (#ENV{limit,#ENV{limite,500}}|trim)]
137                        },
138                        function(data) {
139                                if (data){
140                                        map[(#GET{id})].addJSON(data);
141                                        [(#ENV{autocenterandzoom,#ENV{centrer_auto}}|oui)
142                                        var markers = map[(#GET{id})].markers;
143                                        if (markers.length == 1){
144                                                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}});
145                                        } else {
146                                                map[(#GET{id})].autoCenterAndZoom();
147                                        }]
148                                        [(#ENV{autofocus_marker}|oui)
149                                        gis_autofocus_marker('[(#GET{id})]');]
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                [(#ENV{ajaxload}|!={non}|oui)onAjaxLoad(init_map[(#GET{id})]);]
169        });
170
171})(jQuery);
172/*#EVAL{chr(93)}[(#EVAL{chr(93)})]>*/
173</script>
Note: See TracBrowser for help on using the repository browser.