source: spip-zone/_plugins_/acs/models/cat/composants/carte/map_json.html @ 48965

Last change on this file since 48965 was 48965, checked in by webmaster@…, 10 years ago

ACS:

  • liste des widgets en partie privée : classement des composants en deux blocs: cadres et éléments.
  • suppression de exec/acs_page_source.php (devenu inutile).
  • formulaire administration enrichi d'un accès direct à l'édition de la page et du bouton inclusions.
  • choix du positionnement du formulaire administration de SPIP.
  • passage en ajax du bloc de configuration d'ACS (Onglet Administration).
  • nouvelle option de configuration : Désactiver le cache de SPIP.
  • nouvelle aide contextuelle
  • restauration du fonctionnement de controleurs/var.php suite au passage des controleurs en objets.


Cat :

  • évolution de l'usage de la balise #ACS_CHEMIN (dans tous les fichiers où elle est utilisée)
  • Carte: correction bug sur affichage des sous-rubriques géoreferencées. Correction d'un bug sur les popups ombrées introduit par le changement de comportement de la balise #ACS_CHEMIN.
  • Fond/entete: filtre textebrut sur le titre des pages.
  • Keys: nouvelles variables arrondi de bordure et ombre.
File size: 8.4 KB
Line 
1[(#CACHE{0})][(#REM)
2             ACS
3         (Plugin Spip)
4         Squelette Cat
5    http://acs.geomaticien.org
6
7Copyright Daniel FAIVRE, 2007-2011
8Copyleft: licence GPL - Cf. LICENCES.txt in acs plugin dir
9
10Insere une carte interactive utilisant JSON. Requiert les plugins gis_escoitar et openlayers.
11
12Note: les fonds de plan Google ne sont disponibles QUE si la librairie Google Map API a été chargée par le plugin éponyme
13
14Centrage et zoom de la carte selon les paramètres (latit, lonxit, zoom) reçus,
15sinon sur celles du mot-clé id_mot passé en parametre,
16sinon sur celles de l'article id_article,
17sinon sur celles de la rubrique id_rubrique,
18sinon sur les coordonnées et le zoom par défaut du composant (variables ACS),
19ou à défaut sur celles par défaut du plugin GIS Escoitar.
20
21Paramètres:
22- id_carte_gis: id de l'élément div de la carte (pour Openlayers)
23- lat, lon, zoom: latitude, longitude, et zoom initiaux.
24- maxmots: nb max de pictos de mots-clés géoréférencés.
25- maxrubs: nb max de pictos de rubriques géoréférencés.
26- maxarts: nb max de pictos d'articles géoréférencés.
27
28][(#SET{id_carte_gis,#ENV{id_carte_gis,1}})]<BOUCLE_centrer_article(GIS){id_rubrique=0}{id_article}{0,1}>[(#ENV{lat}|non)#SET{latitude,#LAT}][(#ENV{lon}|non)#SET{lonxitude,#LONX}][(#ENV{zoom}|non)#SET{zoommapa,#ZOOM}]</BOUCLE_centrer_article>
29<BOUCLE_centrer_rubrique(GIS){id_rubrique}{id_article=0}{0,1}>[(#ENV{lat}|non)#SET{latitude,#LAT}][(#ENV{lon}|non)#SET{lonxitude,#LONX}][(#ENV{zoom}|non)#SET{zoommapa,#ZOOM}]</BOUCLE_centrer_rubrique>
30<BOUCLE_centrer_mot(gis_mots){id_mot}{0,1}>[(#ENV{lat}|non)#SET{latitude,#LAT}][(#ENV{lon}|non)#SET{lonxitude,#LONX}][(#ENV{zoom}|non)#SET{zoommapa,#ZOOM}]</BOUCLE_centrer_mot>
31[(#REM)
32 
33  Sinon centrer sur les coordonnes passees en parametre ou sur celles par defaut
34 
35  ][(#GET{latitude}|non)#SET{latitude,#ENV{lat,#VAR{#EVAL{'acsCarte'.'#NIC'.'Lat'},#CONFIG**{geomap/latitude,0}}}}]
36  [(#GET{lonxitude}|non)#SET{lonxitude,#ENV{lon,#VAR{#EVAL{'acsCarte'.'#NIC'.'Lon'},#CONFIG**{geomap/longitude,0}}}}]
37  [(#GET{zoommapa}|non)#SET{zoommapa, #ENV{zoom,#VAR{#EVAL{'acsCarte'.'#NIC'.'Zoom'},#CONFIG**{geomap/zoom,0}}}]
38 
39  <script type="text/javascript">
40  if (document.namespaces) { // only needed in IE
41    document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
42  }
43  //<![CDATA[
44  defPicto = "[(#ACS_CHEMIN{pictos/#VAR{#EVAL{'acsCarte'.'#NIC'.'Picto'},interrogation.png}}|url_absolue)]";
45  defPictoWidth = "[(#ACS_CHEMIN{pictos/#VAR{#EVAL{'acsCarte'.'#NIC'.'Picto'},interrogation.png}}|largeur)]";
46  defPictoHeight = "[(#ACS_CHEMIN{pictos/#VAR{#EVAL{'acsCarte'.'#NIC'.'Picto'},interrogation.png}}|hauteur)]";
47  defPictoHover = "[(#ACS_CHEMIN{pictos/#VAR{#EVAL{'acsCarte'.'#NIC'.'PictoHover'},interrogation_hover.png}}|url_absolue)]";
48  defPictoHoverWidth = "[(#ACS_CHEMIN{pictos/#VAR{#EVAL{'acsCarte'.'#NIC'.'PictoHover'},interrogation_hover.png}}|largeur)]";
49  defPictoHoverHeight = "[(#ACS_CHEMIN{pictos/#VAR{#EVAL{'acsCarte'.'#NIC'.'PictoHover'},interrogation_hover.png}}|hauteur)]";
50  defAttente = "[(#CHEMIN{img_pack/attente.gif}|url_absolue)]";
51 
52  var map[(#GET{id_carte_gis})];
53  var markerManager[(#GET{id_carte_gis})];
54
55  OpenLayers.ImgPath = '[(#ACS_CHEMIN{mapui,dir}|url_absolue)/]';
56
57  function getPictos[(#GET{id_carte_gis})]() {
58    loadPictos(map[(#GET{id_carte_gis})], '[(#URL_PAGE{c})&type=text/javascript&c=carte[&nic=(#NIC)]&p=symbols_json&cache=3600,cache-client][&recherche=(#RECHERCHE)][&id_rubrique=(#ID_RUBRIQUE)][&id_groupe=(#ID_GROUPE)][&id_mot=(#ID_MOT)][&id_auteur=(#ID_AUTEUR)][&limit=(#ENV{limit,50})][&maxmots=(#ENV{maxmots,[(#VAR{#EVAL{'acsCarte'.'#NIC'.'Mots'}}|=={non}|?{0})]})][&maxrubs=(#ENV{maxrubs,[(#VAR{#EVAL{'acsCarte'.'#NIC'.'Rubriques'}}|=={non}|?{0})]})][&maxarts=(#ENV{maxarts,[(#VAR{#EVAL{'acsCarte'.'#NIC'.'Articles'}}|=={non}|?{0})]})]', '[(#GET{id_carte_gis})]', '<:gis:loading_msg:>', [(#VAR{acsCartePictosPins}|=={oui}|?{true,false})]);
59  }
60
61  function loadCarte[(#GET{id_carte_gis})]() {
62        jQuery("[#(#GET{id_carte_gis})]").css("overflow", "hidden");
63    map[(#GET{id_carte_gis})] = new OpenLayers.Map("map[(#GET{id_carte_gis})]",{
64      maxExtent: new OpenLayers.Bounds(-180,-90,180,90),
65      numZoomLevels: 19,
66      maxResolution: 156543.0399,
67      units: 'm',
68      projection: new OpenLayers.Projection("EPSG:900913"),
69      displayProjection: new OpenLayers.Projection("EPSG:4326"),
70      eventListeners: {
71        "zoomend": function() {
72        if (map[(#GET{id_carte_gis})].initialized)
73                getPictos[(#GET{id_carte_gis})]();
74        }
75      },
76      theme: null,
77      pictos: new Array
78    });
79    map[(#GET{id_carte_gis})].initialized = false;
80    if (jQuery("#acsCarte[(#NIC)]Lat").length && jQuery("#acsCarte[(#NIC)]Lon").length && jQuery("#acsCarte[(#NIC)]Zoom").length) {
81      map[(#GET{id_carte_gis})].events.register("mousemove", map[(#GET{id_carte_gis})], function(e) { 
82        var position = map[(#GET{id_carte_gis})].getCenter();
83        position = position.transform(map[(#GET{id_carte_gis})].projection,map[(#GET{id_carte_gis})].displayProjection);
84        jQuery("#acsCarte[(#NIC)]Lat").attr('value', position.lat);
85        jQuery("#acsCarte[(#NIC)]Lon").attr('value', position.lon);
86        jQuery("#acsCarte[(#NIC)]Zoom").attr('value', map[(#GET{id_carte_gis})].getZoom());
87      });
88    }     
89    [(#VAR{#EVAL{'acsCarte'.'#NIC'.'ShowLayerSwitcher'}}|!={non}|?{" "})map[(#GET{id_carte_gis})].addControl(new OpenLayers.Control.LayerSwitcher());]
90    markers[(#GET{id_carte_gis})] = new OpenLayers.Layer.Markers("Markers");
91    var lon = #GET{lonxitude};
92    var lat = #GET{latitude};
93    var zoom = #GET{zoommapa};
94    var lonlat = new OpenLayers.LonLat(lon, lat);
95    var lyrs = new Array;
96    [(#VAR{#EVAL{'acsCarte'.'#NIC'.'OpenStreetmap'}}|!={non}|?{" "})lyrs.push(new OpenLayers.Layer.OSM());]
97    [(#VAR{#EVAL{'acsCarte'.'#NIC'.'Osmarender'}}|!={non}|?{" "})lyrs.push(new OpenLayers.Layer.OSM.Osmarender("Osmarender"));]
98    if (typeof G_PHYSICAL_MAP != "undefined") {
99      [(#VAR{#EVAL{'acsCarte'.'#NIC'.'gPhy'}}|!={non}|?{" "})lyrs.push(new OpenLayers.Layer.Google("<:acs:carte_rues_google:>",{type: G_PHYSICAL_MAP}));]
100      [(#VAR{#EVAL{'acsCarte'.'#NIC'.'gMap'}}|!={non}|?{" "})lyrs.push(new OpenLayers.Layer.Google("<:acs:carte_google:>"));]
101      [(#VAR{#EVAL{'acsCarte'.'#NIC'.'gHyb'}}|!={non}|?{" "})lyrs.push(new OpenLayers.Layer.Google("<:acs:carte_sat_rues_google:>",{type: G_HYBRID_MAP}));]
102      [(#VAR{#EVAL{'acsCarte'.'#NIC'.'gSat'}}|!={non}|?{" "})lyrs.push(new OpenLayers.Layer.Google("<:acs:carte_sat_google:>",{type: G_SATELLITE_MAP}));]
103    }   
104    [(#VAR{#EVAL{'acsCarte'.'#NIC'.'WMS'}}|!={non}|?{" "})lyrs.push(new OpenLayers.Layer.WMS(
105      "#CONFIG{openlayer/nom_serveur_openlayer,OpenLayers WMS}",
106      "#CONFIG{openlayer/url_script_openlayer,http://labs.metacarta.com/wms/vmap0}",
107      {layers: 'basic'}
108    ));]
109    map[(#GET{id_carte_gis})].addLayers(lyrs);
110    map[(#GET{id_carte_gis})].addLayer(markers[(#GET{id_carte_gis})]);
111    map[(#GET{id_carte_gis})].zoomTo(zoom);
112    map[(#GET{id_carte_gis})].setCenter(lonlat.fromDataToDisplay());
113
114    // Chargement KML article
115    <BOUCLE_kml_art(documents){id_article}{0,1}{extension=kml}>[
116      (#ENV{id_article}|=={''}|non)
117      var kml = new OpenLayers.Layer.GML("KML", "[(#URL_DOCUMENT|url_absolue)]", {
118      format: OpenLayers.Format.KML
119    });
120      map[(#GET{id_carte_gis})].addLayer(kml);
121    ]</BOUCLE_kml_art>
122   
123    // Chargement KML rubrique
124    <BOUCLE_kml_rub(documents){id_rubrique}{0,1}{extension=kml}>
125    [(#ENV{id_rubrique}|=={''}|non)
126    var kml = new OpenLayers.Layer.GML("KML", "[(#URL_DOCUMENT|url_absolue)]", {
127      format: OpenLayers.Format.KML
128    });
129    map[(#GET{id_carte_gis})].addLayer(kml);
130    ]
131    </BOUCLE_kml_rub>
132    <//B_kml_art>
133    getPictos[(#GET{id_carte_gis})]();
134    map[(#GET{id_carte_gis})].initialized = true;
135  }
136  [(#ENV{load_map}|!={'non'}|oui)
137  jQuery(document).ready(function(){
138        loadCarte[(#GET{id_carte_gis})]();
139    [(#ENV{attente}|=={1}|oui) jQuery("#map[(#GET{id_carte_gis})]").append('<div id="attente[(#GET{id_carte_gis})]" style="position: absolute; z-index: 1000; top: 0; left: 0; background-color: #FFFFFF; filter:alpha(opacity=70); -moz-opacity: 0.7; opacity: 0.7;[ width: (#ENV{largeur,100%});][ height: (#ENV{hauteur,100%});]"><span style="display: block; width: 100%; height: 100%; background: transparent url([(#CHEMIN{img_pack/attente.gif})]) center center no-repeat;"></span></div>'); ]
140  });
141  /*
142  jQuery(window).resize(function() {
143    alert("resize");
144  });*/]
145 
146  //]]>
147  </script>
Note: See TracBrowser for help on using the repository browser.