GIS 2 / GIS 3

Présentation et nouveautés

GIS2 est une mise à jour majeure du plugin GIS Escoitar. Le plugin permet d’attacher des points géolocalisés aux objets de SPIP afin de les afficher sur des cartes dans les pages de votre site.

GIS2 utilise une librairie javascript qui permet de jouer avec les cartes de plusieurs APIs et de basculer d’un fournisseur à un autre sans avoir à modifier le code des cartes. Cette librairie d’abstraction s’appelle Mapstraction. Elle est distribuée sous licence BSD sur github.

Grâce à Mapstraction, GIS2 permet d’afficher les cartes de Google Maps API v2 et v3, Openlayers, Yahoo Maps, Microsoft Bing, etc.

Un autre avantage de Mapstraction est qu’elle permet aussi aux développeurs de coder leurs cartes persos avec le code natif de chaque API quand c’est nécessaire (pour jouer avec un système de cluster de marqueurs par exemple).

Le plugin a été totalement recodé, voici quelques unes des modifications les plus importantes :

  • les points sont maintenant des objets autonomes qui peuvent être liés à n’importe quel type d’objet SPIP (article, rubrique, auteur, etc) ;
  • chaque point dispose d’un titre, d’un descriptif et d’un logo personnalisé ;
  • un point peut être lié à plusieurs objets et un objet peut être lié à plusieurs points ;
  • la balise #LONX a été renommée en #LON ;
  • les cartes utilisent du JSON pour charger les marqueurs ;
  • le plugin prend en charge la migration des données depuis GIS v1 ;
  • un nouveau critère distance permet de filtrer les points d’une boucle (voir plus bas).

Certaines APIs permettent d’utiliser des fonctions de géocodage et de gécodage inversé. Le géocodage (ou geocoding) consiste à récupérer les coordonnées géographiques d’une adresse. Le géocodage inverse (ou reverse geocoding) consiste à récupérer l’adresse de coordonnées géographiques.

Fonctions disponibles dans les différentes APIs

Les APIs marquées par une * nécessitent une clé pour être utilisées.

API Cartes et marqueurs Logo des marqueurs KML Geocoder
Cloudmade * oui oui non non
Google Maps V2 * oui oui oui oui
Google Maps V3 oui oui oui oui
OpenLayers oui oui oui oui
Ovi Nokia oui oui non non
Yandex * oui oui non oui

Installation et configuration

Ce plugin nécessite la librairie externe Mapstraction. Lors de son activation, SPIP vous proposera de récupérer la librairie automatiquement dans le dossier /lib situé à la racine de votre site (pensez à créer ce dossier s’il n’existe pas sur votre installation).

Ce plugin nécessite aussi les plugins suivants :

  • Saisies
  • Spip Bonux
  • Afficher Objets
  • CFG

GIS2 n’est pas compatible avec le plugin Google Maps API. Il faut donc désactiver ce dernier avant d’activer GIS2.

Une fois installé, le plugin est configurable depuis la page ecrire/?exec=cfg&cfg=gis :

Cette page permet de définir les options suivantes :

  • Coordonnées et zoom par défaut à utiliser dans les cartes ;
  • API de cartographie à utiliser ;
  • Utiliser les fonctions du geocoder ;
  • Afficher les champs d’adresse dans les formulaires d’édition des points ;
  • Centrer la carte sur l’emplacement de l’utilisateur lors de la création d’un point (API de géolocalisation HTML5).

Utilisation dans l’espace privé

Le plugin ajoute un bloc sur les pages des éléments de SPIP dans l’espace privé. Ce bloc se déplie au survol de la souris. Les liens situés en tête du bloc déplié permettent de basculer d’un panneau à une autre :

  • Points liés affiche la liste des points liés à l’objet en cours avec la possibilité de détacher ou supprimer chaque point ;
  • Rechercher un point affiche un formulaire pour rechercher un point existant et le lier à l’objet en cours ;
  • Lier un nouveau point affiche le formulaire d’édition de point pour en créer un nouveau et l’attacher à l’objet en cours .

Une page de gestion des points du site est accessible depuis le menu Édition > Points géolocalisés.

Depuis cette page, vous pouvez accéder à la fiche d’édition de chaque point afin d’en modifier les coordonnées, les champs d’adresse ou le logo.

Utilisation du modèle pour insérer des cartes dans vos pages

Pour insérer une carte dans un squelette, utilisez le modèle fourni par le plugin en insérant le code suivant à l’endroit où vous souhaitez afficher la carte :

[(#MODELE{carte_gis, zoom=X, type=xxx, control_zoom=xxx})]

Vous pouvez aussi utiliser le modèle fourni par le plugin pour afficher une carte depuis le contenu d’un article. Pour cela, il suffit d’ajouter ce code dans le texte de votre article :

<carte_gis1|zoom=X|type=xxx|control_zoom=XXX>

Lire la documentation à propos des modèles sur spip.net.

Paramètres du modèle

paramètre valeurs
id_carte_gis id unique de la carte (à définir si plusieurs cartes sont affichées sur une même page)
lat = 48.3 latitude du centre de la carte
lon = -4.7 longitude du centre de la carte
zoom = 5 zoom de la carte
width = 100% largeur de la carte, 100% par défaut
height = 400px hauteur de la carte, 400px par défaut
style = non ne pas styler la carte
zoom_molette = non désactiver le zoom avec la molette de la souris, actif par defaut
type = carte type de la carte : carte, satellite, relief ou hybride
control_zoom = large type des contrôles pour le zoom : large, small
control_pan = non ne pas afficher les contrôles de déplacement dans la carte
control_type = non ne pas afficher les contrôles de changement de type
no_control = oui ne pas afficher les contrôles de la carte
overview = oui afficher une mini carte de situation
scale = oui afficher l’échelle de la carte
limit = 500 nombre max de marqueurs à afficher, 500 par défaut
objets = gis type d’objets à afficher (fichier json/gis_xx qui génère la source de données)
autocenterandzoom = oui centrer et zoomer la carte automatiquement pour afficher tous les marqueurs
autofocus_marker = oui permet de forcer l’affichage d’une seule infobulle à la fois
id_a_ouvrir id_gis de l’infobulle à afficher au chargement (marqueur uniquement)
kml = 12 kml à superposer à la carte (id_document ou url)
localiser_visiteur = oui centrer la carte sur la position du visiteur (API géolocalisation HTML5)
point = non si elle vaut « non » cette option n’affichera pas de points du tout (utile pour n’afficher qu’un kml par exemple)

Le paramètre objets

Ce paramètre vous permet de spécifier quel type d’objet vous souhaitez afficher sur la carte. Il peut prendre les valeurs suivantes : gis (valeur par défaut), articles, auteurs, mots.

Si le paramètre « objets » vaut « articles », vous pouvez utiliser en paramètre du modèle tous les critères utilisables sur une boucle ARTICLES.

D’un point de vue technique, le paramètre objets permet de définir quel fond sera utilisé pour générer les données JSON qui alimenteront la carte. Lorsque le paramètre « objets » vaut « auteurs », c’est le squelette plugins/gis/json/auteurs.html qui est utilisé.

Quelques exemples de cartes

Afficher les articles de la rubrique n°2 et superposer le KML correspondant au document n°2 :

[(#INCLURE{fond=modeles/carte_gis,
	objets=articles,
	id_rubrique=2,
	zoom=7,
	lat=48.214378965824345,
	lon=-4.543704986572266,
	kml=2})]

Afficher le ou les points liés à l’article n°2 et centrer la carte automatiquement pour afficher tous les points :

[(#INCLURE{fond=modeles/carte_gis,
	autocenterandzoom=oui,
	id_article=2})]

Afficher les points liés aux articles de l’auteur n°1 :

[(#INCLURE{fond=modeles/carte_gis,
	objets=articles,
	id_auteur=1,
	zoom=5})]

Afficher les auteurs du site :

[(#INCLURE{fond=modeles/carte_gis,
	objets=auteurs,
	zoom=5})]

Boucles et balises

Voici la liste des balises disponibles dans une boucle GIS : #ID_GIS, #TITRE, #DESCRIPTIF, #LAT, #LON, #ZOOM.

Et si vous avez activé le geocoder ou que vous avez rempli les champs d’adresse à la main : #ADRESSE, #PAYS, #CODE_PAYS, #REGION, #VILLE, #CODE_POSTAL.

Critère gis

Depuis la version 2.2.0, le critère {gis} permet de forcer une jointure sur la table GIS dans les boucles des autres objets. Ainsi, une boucle ARTICLES qui comporte le critère {gis}, affichera uniquement les articles attachés à un point.

Les informations de ce point pourront être affichées avec les balises suivantes : #TITRE_GIS et #DESCRIPTIF_GIS, #ADRESSE_GIS, #PAYS_GIS, #CODE_PAYS_GIS, #REGION_GIS, #VILLE_GIS, #CODE_POSTAL_GIS.

Remarque : les balises sont suffixées afin d’éviter tout problème de champ homonyme avec un autre plugin.

<BOUCLE_gis(ARTICLES){gis}{id_rubrique ?}>
#ID_GIS - #LAT - #LON - #ZOOM <br/>
Titre de l'article : #TITRE <br />
Descriptif de l'article : #DESCRIPTIF <br />
Titre du point : #TITRE_GIS <br />
Descriptif du point : #DESCRIPTIF_GIS <br />
</BOUCLE_gis>

Critère distance

Le critère {gis distance<XX} permet de filtrer les résultats d’une boucle GIS en fonction de la distance (en kilomètres) par rapport au point présent dans l’environnement.

Par exemple, pour lister les points situés à moins de 50 kilomètres du point numéro 1 :

<BOUCLE_m(GIS){id_gis=1}>
<p>#TITRE / #LAT / #LON</p>
<BOUCLE_b(GIS){gis distance<50}>
<p>#ID_GIS / #TITRE / #DISTANCE km</p>
</BOUCLE_b>

Formulaire d’édition de point

Le formulaire #FORMULAIRE_EDITER_GIS permet de créer ou modifier un point. Vous pouvez l’utiliser dans vos squelettes en respectant la syntaxe suivante :

#FORMULAIRE_EDITER_GIS{id_gis, objet, id_objet, retour, ajaxload}

Définition des paramètres du formulaire :

  • id_gis : identifiant numérique du point ou vide pour créer un nouveau point
  • objet : le type d’objet auquel est attaché le point
  • id_objet : id_objet de l’objet auquel est attaché le point
  • retour : url de retour vers laquelle le formulaire redirigera après validation
  • ajaxload : initialiser la carte à chaque onAjaxLoad()

Par exemple, voici un extrait de code qui permet de modifier le point attaché à un article ou d’en créer un nouveau s’il n’y en a pas déjà un attaché à l’article.

<BOUCLE_unpoint(GIS){id_article}{0,1}>
#SET{id_gis,#ID_GIS}
</BOUCLE_unpoint>
#SET{id_gis,nouveau}
<//B_unpoint>
#FORMULAIRE_EDITER_GIS{#GET{id_gis},'article',#ID_ARTICLE,#URL_ARTICLE}

Personnalisation

Icône par défaut des marqueurs

Il est possible de définir une icône par défaut pour les marqueurs des cartes. Pour cela, il suffit de déposer l’image de votre icône personnalisée dans votre dossier squelettes :

squelettes/images/marker_defaut.png

L’icône utilisée par défaut dans GIS est une image de 24x32 pixels.

Important : si vous souhaitez qu’on puisse vous aider lorsque vous postez dans le forum de cet article, pensez à fournir un lien vers le site en question sans quoi il nous sera impossible de vous dépanner.

Discussion

128 discussions

  • 8

    Bonjour,
    j’essaie d’utiliser ce fabuleux plugin mais j’ai visiblement loupé quelque chose !

    La carte ne s’affiche pas dans ma page et firebug m’indique :
    mxn is not defined
    map5 = new mxn.Mapstraction(map_container,’googlev3’) ;

    Qu’est-ce que cela signifie ?
    Comme je tourne en rond depuis 48h et que je suis loin d’être une experte... je ne trouve pas la réponse toute seule !
    Ma version de spip : SPIP 2.1.11

    D’avance merci

    • Salut, sans lien vers la page qui pose problème cela va être difficile de t’aider.

      L’erreur que tu cites semble indiquer qu’il y a un problème de chargement d’un des scripts du plugin. As-tu bien téléchargé la librairie mapstraction lors de la phase d’activation du plugin ?

      ++

    • Travaillant en local, je ne sais pas comment te proposer un lien vers la page qui pose problème... ?

      A priori j’ai bien chargé la librairie.
      Parcontre dans mon dossier « lib » j’ai 2 répertoires : « mxn-gis-2.0.9 » et « h8e7f8b9b-mxn-2.0.17 »

      ... est-ce normal ?

    • Oui c’est normal, le répertoire h8e7f8b9b-mxn-2.0.17 est une ancienne version de la librairie nécessaire au plugin (SPIP ne sait pas encore faire le ménage dans ce répertoire mais cela n’a pas d’impact sur le fonctionnement des plugins).

      Essaye te de mettre ta page en ligne quelque part pour qu’on puisse y jeter un oeil, sinon on va devoir jouer aux devinettes pour tenter de résoudre ton problème ;)

      ++

    • Ok, quelques heures plus tard voici la fameuse page en ligne :
      http://www.centregalilee.com/spip.php?rubrique1

      merci :)

    • Héhé, tes squelettes ne semblent pas utiliser la balise #INSERT_HEAD de SPIP qui permet aux plugins (dont gis) d’insérer leur scripts et css dans le head des pages du site. Du coup tu n’as pas les scripts du plugin et il ne fonctionne pas :p

      ++

    • 1000 mercis !! Forcément ça marche mieux comme ça...
      Erreur de débutante, J’aurais appris quelque chose de très utile :)

    • Bonjour b_b

      Je me suis aperçu d’un petit bug sur le « alt » qui apparait en pointant sur un point de carte :
      Si le titre du point comporte une apostrophe « ’ », le label qui apparait affiche & # 8217 ; (sans les espaces)

      Je pense que c’est un problème « d’échappement » de l’apostrophe qui a été oublié au niveau du javascript ?

      voir en ligne

      Merci encore pour ce superbe plugin...

      JeanLuc

    • Salut JeanLuc,

      Oui je suis au courant du problème, j’ai proposé un patch correctif sur github. J’attends qu’il soit intégré à Mapstraction. Si cela prend trop de temps, je l’intégrerai directement dans la branche spécifique à GIS.

      ps : il vaut mieux créer un nouveau fil de discussion plutôt que de « squatter » celui d’un autre problème ;)

      ++

    Répondre à ce message

  • 12

    Je n’arrive pas à enregistrer de nouveau marker dans un article. Je reçois ce message (voir image) :

    • Pas très causante comme erreur je le concède :p Par contre le retour de bug ne l’est pas beaucoup plus. Quelles infos à tu dans le formulaire avant de tenter d’enregistrer le point ? Sur quel type d’objet ? Avec quelle API de carte ? Quelle démarche pour reproduire le bug ? Bref sans plus d’infos ça va être compliqué de t’aider...

    • Non c’est bon ils sont enregistrés, mais cela se passe sans que je sois averti et je dois faire un « refresh » pour pouvoir sortir de là.

      J’ai aussi un problème de « charset ». Je vois que tous mes titres qui ont des accents a été remplacé par le mot « null » dans la bulle. Est-ce que je dois être en UTF ?

    • Api GoogleV3
      Ce sont des articles qui avait déjà des markers en GIS1, peut-être que le problème vient de là.

    • Non cela se reproduit avec des nouveaux articles aussi.

      SPIP 2.1.11 [18566]
      Tout mes plugins sont à jour [13 nov. 2011]

      website : http://chapuisat.com

    • Je confirme j’ai du passer mon site en UTF-8, maintenant je sais si cela a un lien direct avec GIS2

    • oups !
      « maintenant je NE sais PAS si cela a un lien direct avec GIS2 »

    • Bonjour

      J’ai la même erreur que gregol

      Je viens d’installer GIS2 également sur http://www.aslagnyrugby.net. Il y avait précédemment la version gis escoitar d’installé.
      -  Les anciens points sont reconnus par GIS2 dans le menu édition. Les points sont visibles et la carte est correctement centrée. Par contre, quand on visualise les articles liés à ces cartes sur la partie publique, le centrage sur le point n’est pas correct et on ne voit pas le pointeur. J’ai essayé avec plusieurs API mais ce sont les mêmes symptômes...
      -  Quand on crée de nouveau point dans l’admin, après avoir cliqué sur « enregistrer », un encart rouge apparait avec un n° d’erreur n° 11 (voir copie d’écran ci dessous). J’ai fait une copie d’écran avec Firebug et on peut voir la ligne html correspondante :
      <p class="reponse_formulaire reponse_formulaire_erreur">11</p>
      Quand on va dans l’édition, le point est bien enregistré au bon endroit et le pointeur est visible (Av. Roosevelt à Meaux dans le 77). Par contre dans la partie publique (Voir la page), la carte n’est pas centré sur Meaux et le pointeur est invisible...

      Version du site : SPIP 2.1.12 [18732]
      Plugins installés liés à GIS2 :
      -  Afficher Objets 1.2.1
      -  cfg : moteur de configuration 1.14.4
      -  Champs Extras2 1.10.0
      -  GIS 2.1.2
      -  GoogleMap Api 0.2
      -  Saisies pour formulaires 1.18.0
      -  SPIP Bonux 2.3.0
      -  YAML 1.5.0

      Autres plugins installés :
      -  Google siteMap 0.1
      -  Le Couteau Suisse 1.8.50
      -  Squelette Ahuntsic 1.0.0
      -  Thickbox v3 3.1.0

    • Salut, je ne sais pas si ton problème vient de là mais je vois cette erreur dans les pages publiques de ton site :

      <br>
      <b>Fatal error</b>
      : Cannot redeclare balise_config() (previously declared in /homez.109/aslagnyr/www/plugins/auto/spip-bonux/configurer/pipelines.php:299) in
      <b>/homez.109/aslagnyr/www/plugins/auto/cfg/cfg_fonctions.php</b>
      on line
      <b>45</b>

      Je te propose de passer faire un saut sur l’IRC de SPIP afin qu’on regarde de plus prêt ton problème avec cette fameuse erreur « 11 » (ça m’intrigue ce truc).

      http://www.spip.net/irc

      ++

    • Petites précisions sur mon message précédent :

      Hébergement chez OVH, PHP5 activé

      J’ai testé en désactivant les plugins Champs Extras et Thickbox, vidage du cache, même pb...

      Merci d’avance pour votre réponse...

    • Pb résolu grâce à b_b qui a pris de son temps pour s’apercevoir que le plugins Google_api était installé.

      ATTENTION : ce plugin N’EST PAS nécessaire avec GIS2 !!! Il ne doit pas être installé en même temps que GIS2.

      Merci encore à b_b ;-)

    • Bon voilà, après avoir passé un bon moment à chercher d’où venait la fameuse erreur « 11 » sur le site de Jean Luc (merci à lui de m’avoir filé un accès), le bug est corrigé dans la version 2.1.3 de GIS. Pour info cela venait d’un problème de typage de variable qui se présentait uniquement avec certaines versions de PHP.

      ++

    Répondre à ce message

  • 1
    Philippe B.

    Bonjour,

    Quelle est la solution pour positionner autrement que par défaut les contrôles de navigation (zoom, type de carte) ?

    Google map v3 permet cette option, est-ce transposé dans Mapstraction ?
    http://code.google.com/apis/maps/do...

    Merci !

    Répondre à ce message

  • 4

    bonjour,

    J’aimerais savoir si dans une carte qui référence plusieurs points, il est possible d’avoir un lien sur le titre des bulles ?
    Ou avoir une liste de liens vers tous les objets liés à ce point dans la bulle ?

    Par ex. pour lister tous les articles « GISés » d’une rubrique :

    <carte_gis|objets=articles|id_rubrique=7>

    merci pour ce plugin, il fonctionne nickel

    • Salut, oui le contenu des bulles est personnalisable si tu te fais des squelettes persos pour ça. La doc indique à ce sujet :

      D’un point de vue technique, le paramètre objets permet de définir quel fond sera utilisé pour générer les données JSON qui alimenteront la carte. Lorsque le paramètre « objets » vaut « auteurs », c’est le squelette plugins/gis/json/auteurs.html qui est utilisé.

      Et comme je le disais dans un message précédent :

      Un jour il faudra que quelqu’un prenne le temps de rédiger une doc technique sur toutes les informations de personnalisation du plugin (si je ne le fais pas d’ici là).

      ++

    • merci pour ta prompte réponse :)

      j’ai bien tenté de surcharger les squelettes plugins/gis2/json/gis_articles.html etc. mais je ne « comprends » pas la syntaxe :

      {
      "title": ...
      "description" : ...
      }

      existe-t-il des mots-clés spécifiques pour créer des liens ? (j’ai vaguement regardé ce qu’étaient JSON et KML mais pas tout compris...)

      Par ex. dans gis_articles.html, (appelé avec objets=articles, c’est ça ?), lorsque je fais

      "title":[<a href="#_art:URL_ARTICLE">(#TITRE|sinon{#_art:TITRE}|supprimer_numero|json_encode)</a>],

      ou

      "title":[(#TITRE|sinon{#_art:TITRE}|supprimer_numero|json_encode|generer_url_entite{article}|url_absolue)],

      ce ne semble pas correct car ne retourne rien (carte vide).

      Les BOUCLES SPIP servent à générer du code JSON qui lui-même sert les « map », c’est ça ?
      les Boucles, ça devrait aller, mais ce qu’elles doivent retourner, je ne sais pas...

      Et comme je le disais dans un message précédent ...

      Oui, c’est sûr ça aide ;) ... si j’arrive à comprendre comment ça fonctionne à l’intérieur du dedans du truc, je pourrais aider... comme je l’ai fait pour la doc de Saisies

    • bon... ce serait plus propre avec

      [(#SET{lien,[<a href="(#_art:URL_ARTICLE|url_absolue)">[(#TITRE|sinon{#_art:TITRE}|supprimer_numero)]</a>]})]

      puis

      "title":[(#GET{lien}|json_encode)],

      ...et ça marche

    • Merci stefdn,
      Je suis pas encore capable de JSONer, alors tes quelques lignes pour essayer de comprendre comment modifier mon infobulle est super. As-tu mené la chose plus loin ? Image dans la bulle ?

      Bon dimanche.
      G

    Répondre à ce message

  • 4

    hello,
    Dans une carte affichant les auteurs je cherche à afficher le logo de l’auteur dans l’info bulle.
    Je suis donc allé farfouiller json/gis_auteur.html, je vois du LOGO_GIS et du logo_doc que j’ai essayé de remplacer par LOGO_AUTEUR mais sans résultat.

    • Tu as bien vidé le cache du site après tes modifications ?

      Sinon, ben vu que tu as modifié le plugin, sans une url vers la page où l’on peut observer tes bidouilles cela sera compliqué de t’aider plus.

      ++

    • bon j’avoue j’avais pas vidé le cache, mais ça ne résout pas mon problème pour autant.
      -  j’ai remplacé LOGO_GIS par LOGO_AUTEUR et cela à remplacer les marqueurs googe par le logo de l’auteur ; le résultat est rigolo mais ce n’est pas celui que je recherche
      -  en ajoutant (#LOGO_AUTEUR aucun chagement
      -  en ajoutant [(#LOGO_AUTEUR)] plus aucun marqueur n’apparaît

      le résultat est visible ici
      Il s’agit d’un modèle json/gis_auteur que j’ai renommé et placé dans mon dossier squelette. Cela me permet d’afficher les auteurs en fonction d’un mot clé. Ça fonctionne très bien d’ailleurs et cela me permet de faire une carte avec les administrateurs et une carte avec les salariés d’une asso.

    • Ha ok je vois mieux le problème avec plus d’infos :p

      Le contenu de la bulle est défini dans l’attribut « description » du fichier json :

      http://zone.spip.org/trac/spip-zone/browser/_plugins_/gis/branches/v2/json/gis_auteurs.html#L6

      C’est donc là que tes modifs doivent être placées. Par contre, il y a pour l’instant un bug (que j’ai corrigé et qui est en attente d’intégration sur github) dans mapstraction qui fait que cet attribut sert aussi à générer le label des markers. Du coup ça risque d’affiche le code la balise img par chez toi...

      ++

    • Merci de ta réponse rapide, je vais attendre la mise à jour, rien ne presse.
      En revanche je ne suis pas sur du code à utiliser est ce que :

       "description":[(#LOGO_AUTEUR|image_passe_partout{50,50}|image_recadre{50,50})]
      [(#DESCRIPTIF|sinon{#_auteurs:BIO}|json_encode)]
      [(#SET{logo_doc,''})]

      te semble correct

    Répondre à ce message

  • 3

    Salut !

    Je suis en train de découvrir le plugin : Bravo ! Il est génial, encore plus que GIS 1 !

    Il y a un truc que je ne parviens pas à faire : c’est centrer une carte (un modèle) sur un kml. Par exemple avec : <carte_gis1|kml=42|autocenterandzoom=oui>...

    On dirait que l’autocenterandzoom n’est possible que pour autre chose que les points.

    Est-ce possible pour les KML ? Je ne suis pas du tout capable de mettre les mains dans le cambouis, mais dans la doc de mapstraction j’ai lu que l’insertion d’un overlay (kml) pouvait prendre comme paramètre optionnel l’autocenterandzoom. Est-ce accessible dans le modèle du plugin ?

    • Salut, non cette option n’est pas présente dans le modèle pour l’instant. Je vais y réfléchir, et si c’est jouable je fais ça dès que j’ai un moment.

    • Peut-être qu’on pourrait considérer que si le paramètre point est à non et que autocenterandzoom est à oui, alors on zoomme sur le kml... Par exemple, dans modeles/carte_gis ça pourrait donner à partir de la ligne 136 :

      [(#ENV{kml}|oui)
      		[(#ENV{kml}|intval|oui)
      		map[(#GET{id})].addOverlay(['(#ENV{kml}|generer_url_entite{document}|url_absolue)'][(#ENV{autocenterandzoom,#ENV{centrer_auto}}|oui|et{[(#ENV{point}|=={'non'})]}),1]);]
      		[(#ENV{kml}|intval|non)
      		map[(#GET{id})].addOverlay(['(#ENV{kml})'][(#ENV{autocenterandzoom,#ENV{centrer_auto}}|oui|et{[(#ENV{point}|=={'non'})]}),1]);]
      		]

      Soit un simple ajout de [(#ENV{autocenterandzoom,#ENV{centrer_auto}}|oui|et{[(#ENV{point}|=={'non'})]}),1] aux deux endroits où addOverlay est paramétré.

      Qu’en penses-tu ?

    • Hmm, non je ne pense pas que cette solution soit suffisante. On peut très bien vouloir passer autocenterandzoom alors qu’on a des points affichés en plus d’un kml (et souhaité que le centrage se fasse sur l’ensemble des point et non sur le kml).

      Je pense qu’il va falloir ajouter une option du style kml_autocenter au modèle (et celle-ci surchargera l’autre centrage auto si elle est présente).

      ++

    Répondre à ce message

  • 1

    Salut,

    sur la carte de l’admin, au niveau du menu « point géolocalisés », je ne retrouve pas l’ensemble des points que j’ai saisi dans la liste sur la gauche. J’ai du supprimer pas mal de points et j’ai remarqué que certains point réapparaissaient dans la liste lorsque j’en supprimai d’autre.

    Bref cette liste se comporte un peu bizarrement.

    • Heuuu sans plus d’info je rien te dire à part : tu as remarqué que cette liste est paginée ?

    Répondre à ce message

  • 3
    chipster19

    Bonjour,

    Je rencontre un problème avec GIS2. Je n’arrive pas à suporposer un fichier kml avec un tracé. J’ai téléchargé sur mon site un fichier kml qui porte le nom ’doc7’ et je tape la ligne suivante dans mon article <carte_gis|id_article=3|zoom=15|type=carte|control_zoom=large|lat=45.875388|lon=5.692586|kml=7>

    mais rien. Quelqu’un a une piste pour m’aider ?

    Merci

    • chipster19

      Euh j’ai loupé le copier coller !!

      Ce que je saisi dans mon article :

      <carte_gis|id_article=3|zoom=15|type=carte|control_zoom=large|lat=45.875388|lon=5.692586|kml=7>
    • Salut, on est bien d’accord que quand tu parles de :

      un fichier kml qui porte le nom ’doc7’

      C’est bien le document qui porte l’id numéo 7 que tu tentes de superposer à la carte ? Jsute pour être certain ;)

      Sinon, bah comme d’hab, une url vers la page en question nous permettra de t’aider plus...

      ++

    • chipster19

      Bonjour,

      Quand j’ajoute un document et notamment un kml le premier est doc1 et ainsi de suite donc pour moi l’id c’est le numéro après le doc

      Faut dire que je débute donc j’ai peut-être tout faux !!

      Pour l’url va me falloir un peu de temps car je travaille sur mon site en local

      merci.

    Répondre à ce message

  • 4

    Bonjour,

    Absolument alléché par ce plugin plein de promesses....

    Malheureusement, je me casse les dents sur une erreur que je n’arrive abolument pas à débrouiller.

    Ca commence sur l’espace privé. Dans « Edition>points géolocalisés » j’ai bien la carte Google et je peux ajouter normalement un point. Jusque là ça fonctionne...

    A partir de là, le nouveau point n’est pas visible sur la carte générale ; et quand je clique sur « modifier », la page d’édition s’affiche, mais là, la carte elle-même n’est même pas visible !

    Je précise que :
    -  j’ai testé avec plusieurs navigateurs, trois ordinateurs et deux systèmes différents (windows et ubuntu) ;
    -  le site est hébergé chez 1&1 et que php 5.2 est activé
    -  j’ai désinstallé complétement et réinstallé le plugin.
    -  ma version de spip est 2.1.11
    -  les plugins nécessaires au fonctionnement de Gis2 sont tous installés.

    Le site (en développement évidemment !) : rrcc.styblinski.com

    Merci d’avance pour votre aide

    • Hello, exactement le même souci !
      Alors qu’en local tout fonctionne à merveille, je bascule en ligne et là la carte s’affiche bien mais plus les markers, voici la page en question : http://www.centregalilee.com/spip.php?rubrique1

      Comme pstyb dans l’espace privé la carte ne s’affiche pas ou bien s’affiche mais sans les markers de plus j’ai une erreur dans l’espace privé au niveau de la rubrique où sont liés les points (voir les images jointes)... je me dis que j’ai dû oublié quelque chose mais je ne trouve pas quoi !

      Les librairies semblent bien installées, l’espace privé me dit que le plugin est bien activé et le seul endroit où je peux voir la carte avec son marker est la page de config CFG... et j’ai bien mis le #INSERT_HEAD dans mes pages (j’ai compris la leçon !)... mais alors il manque quoi ?

      Pour info le site est hébergé sur OVH.

      Merci :)

    • j’ai visiblement du mal à attacher une capture à mon message...
      L’erreur affichée côté privé dit : « Filtre json_encode non défini », squelette « plugins/gis2/formulaires/editer_gis.html », boucle « / » lignes 35, 36 et 37.

      Bonne journée à tous !

    • Salut celbook, tu as 3 erreurs javascript dans ta page. Elles viennent peut être d’un autre plugin (je vois que tu en as quelques uns d’actifs sur ton site). Désactive les plugins non nécessités par GIS, vide la cache et vérifie que ça fonctionne bien. Ensuite, réactive les plugins non nécessités par GIS un par un jusqu’à trouver le fautif.

      Pour l’erreur à propose de json_encode, ton site est hébergé chez OVH qui a la très mauvaise idée d’activer le PHP4 par défaut sur les sites qu’ils hébergent. Pour que SPIP fonctionne bien il vaut mieux (c’est même plutôt indispensable) utiliser PHP5. Mais comment activer le bouzin ? Et bien comme ceci :

      http://guide.ovh.com/Php5ChezOvh

      ++

    • Voilà ça marche !

      J’ai activé le PHP5 (un grand MERCI à toi pour l’info et le lien), j’ai trouvé le script qui générait les erreurs dans la page (ce n’était pas un plugin mais le reste d’un appel à un .js entre-temps abandonné et pas correctement nettoyé) et j’ai vidé le cache.
      Je ne sais pas laquelle de ces 3 manips à réellement débuggé l’affichage de la carte, peut-être les 3, désormais tout semble propre et parfaitement fonctionnel. Encore merci ;)

    Répondre à ce message

  • 2

    Revoilà le casse c******* ^^

    Je n’arrive pas à désactiver le zoom molette, j’ai utilisé le code suivant pour afficher GIS2 mais cette option ne semble pas fonctionner :

    [(#INCLURE{fond=modeles/carte_gis,
     autocenterandzoom=oui,
     id_article=#ID_ARTICLE,
     zoom_molette = non})]

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom