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

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

ACS : surcharge de la balise #CACHE de la dist pour pouvoir lui passer des variables.

Cat :

  • page c: accepte désormais que la gestion du cache SPIP soit passée en paramètre (très utile pour le retour de composants en Ajax ou JSON).
  • Articles / boucle-mot : lorsqu'aucun article ne possède le mot-clé passé en paramètre, on affiche le plan des rubriques ayant ce mot-clé, SAUF si le texte du mot-clé COMMENCE par le modèle <composant> (exemple : <composant|c=truc/machin/chose|parametre=bidule>).
  • Carte : nouveaux paramètres maxmots, maxrubs, et maxarts.


Améliorations dans l'exploitation du cache SPIP.

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 eponyme
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  <script type="text/javascript">
39  if (document.namespaces) { // only needed in IE
40    document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
41  }
42  //<![CDATA[
43  defPicto = "[(#ACS_CHEMIN{pictos/#VAR{#EVAL{'acsCarte'.'#NIC'.'Picto'},interrogation.png}}|url_absolue)]";
44  defPictoWidth = "[(#ACS_CHEMIN{pictos/#VAR{#EVAL{'acsCarte'.'#NIC'.'Picto'},interrogation.png}}|largeur)]";
45  defPictoHeight = "[(#ACS_CHEMIN{pictos/#VAR{#EVAL{'acsCarte'.'#NIC'.'Picto'},interrogation.png}}|hauteur)]";
46  defPictoHover = "[(#ACS_CHEMIN{pictos/#VAR{#EVAL{'acsCarte'.'#NIC'.'PictoHover'},interrogation_hover.png}}|url_absolue)]";
47  defPictoHoverWidth = "[(#ACS_CHEMIN{pictos/#VAR{#EVAL{'acsCarte'.'#NIC'.'PictoHover'},interrogation_hover.png}}|largeur)]";
48  defPictoHoverHeight = "[(#ACS_CHEMIN{pictos/#VAR{#EVAL{'acsCarte'.'#NIC'.'PictoHover'},interrogation_hover.png}}|hauteur)]";
49  defAttente = "[(#CHEMIN{img_pack/attente.gif}|url_absolue)]";
50 
51  var map[(#GET{id_carte_gis})];
52  var markerManager[(#GET{id_carte_gis})];
53
54  function getPictos[(#GET{id_carte_gis})]() {
55    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})]);
56  }
57
58  function loadCarte[(#GET{id_carte_gis})]() {
59        jQuery("[#(#GET{id_carte_gis})]").css("overflow", "hidden");
60        OpenLayers.ImgPath = '[(#ACS_CHEMIN{mapui}|url_absolue)/]';
61    map[(#GET{id_carte_gis})] = new OpenLayers.Map("map[(#GET{id_carte_gis})]",{
62      maxExtent: new OpenLayers.Bounds(-180,-90,180,90),
63      numZoomLevels: 19,
64      maxResolution: 156543.0399,
65      units: 'm',
66      projection: new OpenLayers.Projection("EPSG:900913"),
67      displayProjection: new OpenLayers.Projection("EPSG:4326"),
68      eventListeners: {
69        "zoomend": function() {
70        if (map[(#GET{id_carte_gis})].initialized)
71                getPictos[(#GET{id_carte_gis})]();
72        }
73      },
74      theme: null,
75      pictos: new Array
76    });
77    map[(#GET{id_carte_gis})].initialized = false;
78    if (jQuery("#acsCarte[(#NIC)]Lat").length && jQuery("#acsCarte[(#NIC)]Lon").length && jQuery("#acsCarte[(#NIC)]Zoom").length) {
79      map[(#GET{id_carte_gis})].events.register("mousemove", map[(#GET{id_carte_gis})], function(e) { 
80        var position = map[(#GET{id_carte_gis})].getCenter();
81        position = position.transform(map[(#GET{id_carte_gis})].projection,map[(#GET{id_carte_gis})].displayProjection);
82        jQuery("#acsCarte[(#NIC)]Lat").attr('value', position.lat);
83        jQuery("#acsCarte[(#NIC)]Lon").attr('value', position.lon);
84        jQuery("#acsCarte[(#NIC)]Zoom").attr('value', map[(#GET{id_carte_gis})].getZoom());
85      });
86    }     
87    [(#VAR{#EVAL{'acsCarte'.'#NIC'.'ShowLayerSwitcher'}}|!={non}|?{" "})map[(#GET{id_carte_gis})].addControl(new OpenLayers.Control.LayerSwitcher());]
88    markers[(#GET{id_carte_gis})] = new OpenLayers.Layer.Markers("Markers");
89    var lon = #GET{lonxitude};
90    var lat = #GET{latitude};
91    var zoom = #GET{zoommapa};
92    var lonlat = new OpenLayers.LonLat(lon, lat);
93    var lyrs = new Array;
94    [(#VAR{#EVAL{'acsCarte'.'#NIC'.'OpenStreetmap'}}|!={non}|?{" "})lyrs.push(new OpenLayers.Layer.OSM());]
95    [(#VAR{#EVAL{'acsCarte'.'#NIC'.'Osmarender'}}|!={non}|?{" "})lyrs.push(new OpenLayers.Layer.OSM.Osmarender("Osmarender"));]
96    if (typeof G_PHYSICAL_MAP != "undefined") {
97      [(#VAR{#EVAL{'acsCarte'.'#NIC'.'gPhy'}}|!={non}|?{" "})lyrs.push(new OpenLayers.Layer.Google("<:acs:carte_rues_google:>",{type: G_PHYSICAL_MAP}));]
98      [(#VAR{#EVAL{'acsCarte'.'#NIC'.'gMap'}}|!={non}|?{" "})lyrs.push(new OpenLayers.Layer.Google("<:acs:carte_google:>"));]
99      [(#VAR{#EVAL{'acsCarte'.'#NIC'.'gHyb'}}|!={non}|?{" "})lyrs.push(new OpenLayers.Layer.Google("<:acs:carte_sat_rues_google:>",{type: G_HYBRID_MAP}));]
100      [(#VAR{#EVAL{'acsCarte'.'#NIC'.'gSat'}}|!={non}|?{" "})lyrs.push(new OpenLayers.Layer.Google("<:acs:carte_sat_google:>",{type: G_SATELLITE_MAP}));]
101    }   
102    [(#VAR{#EVAL{'acsCarte'.'#NIC'.'WMS'}}|!={non}|?{" "})lyrs.push(new OpenLayers.Layer.WMS(
103      "#CONFIG{openlayer/nom_serveur_openlayer,OpenLayers WMS}",
104      "#CONFIG{openlayer/url_script_openlayer,http://labs.metacarta.com/wms/vmap0}",
105      {layers: 'basic'}
106    ));]
107    map[(#GET{id_carte_gis})].addLayers(lyrs);
108    map[(#GET{id_carte_gis})].addLayer(markers[(#GET{id_carte_gis})]);
109    map[(#GET{id_carte_gis})].zoomTo(zoom);
110    map[(#GET{id_carte_gis})].setCenter(lonlat.fromDataToDisplay());
111
112    // Chargement KML article
113    <BOUCLE_kml_art(documents){id_article}{0,1}{extension=kml}>[
114      (#ENV{id_article}|=={''}|non)
115      var kml = new OpenLayers.Layer.GML("KML", "[(#URL_DOCUMENT|url_absolue)]", {
116      format: OpenLayers.Format.KML
117    });
118      map[(#GET{id_carte_gis})].addLayer(kml);
119    ]</BOUCLE_kml_art>
120   
121    // Chargement KML rubrique
122    <BOUCLE_kml_rub(documents){id_rubrique}{0,1}{extension=kml}>
123    [(#ENV{id_rubrique}|=={''}|non)
124    var kml = new OpenLayers.Layer.GML("KML", "[(#URL_DOCUMENT|url_absolue)]", {
125      format: OpenLayers.Format.KML
126    });
127    map[(#GET{id_carte_gis})].addLayer(kml);
128    ]
129    </BOUCLE_kml_rub>
130    <//B_kml_art>
131    getPictos[(#GET{id_carte_gis})]();
132    map[(#GET{id_carte_gis})].initialized = true;
133  }
134  [(#ENV{load_map}|!={'non'}|oui)
135  jQuery(document).ready(function(){
136        loadCarte[(#GET{id_carte_gis})]();
137    [(#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>'); ]   
138  });
139  /*
140  jQuery(window).resize(function() {
141    alert("resize");
142  });*/]
143 
144  //]]>
145  </script>
Note: See TracBrowser for help on using the repository browser.