SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 359 visiteurs en ce moment

Accueil > Géo, carto, météo > GIS > GIS 4

GIS 4

11 août 2012 – par b_b – 1301 commentaires

Toutes les versions de cet article : [Español] [français]

99 votes

Présentation et nouveautés

La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles fonctions.

Cette nouvelle version de GIS permet d’utiliser différents fonds de carte sans avoir à charger des scripts externes, seuls les scripts locaux de Leaflet et des plugins nécessaires sont chargés dans vos pages. À ce jour, le plugin propose plus de 25 couches de fond de carte différentes. La plupart de ces couches sont basées sur des données sous licence libre ou Creative Commons. Toutefois, si vous le souhaitez il est encore possible d’utiliser les couches de Google [1] ainsi que la couche satellite de Bing.

Voir la présentation de GIS au State of the Map France 2015.

La mise à jour n’entraîne pas de rupture de compatibilité majeure. Seuls quelques paramètres ont été supprimés du modèle qui gère l’affichage des cartes : control_zoom ; control_pan ; ajaxload.

Installation et configuration

Ce plugin nécessite le plugin Saisies.

Une fois installé, le plugin est configurable depuis le menu « Configurer > GIS » ou à l’adresse ecrire/?exec=configurer_gis :

Cette page permet de définir les options suivantes :

  • Coordonnées et zoom par défaut à utiliser dans les cartes ;
  • Couche de fond de carte affichée par défaut et listes des couches disponibles ;
  • Afficher les champs d’adresse dans les formulaires d’édition des points ;
  • Liste des objets associables à des points GIS.

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 :

  1. [(#INCLURE{fond=modeles/carte_gis,zoom=8,limit=100,scale=oui})]

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=8|limit=100|scale=oui>

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

Paramètres du modèle

paramètre valeurs
id_carte_gis / id_map 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
minZoom = 10 zoom minimum autorisé
maxZoom = 13 zoom maximum autorisé
default_layer = acetate nom de la couche affichée par défaut [2]
affiche_layers = openmapsurfer/acetate noms des couches proposées (séparés par des /)
sw_lat, sw_lon, ne_lat, ne_lon coordonnées des points de la bounding box à afficher
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 / zoom_wheel = non désactiver le zoom avec la molette de la souris, actif par defaut
fullscreen = oui afficher un bouton pour passer la carte en plein écran
control_type = non ne pas afficher le contrôle de changement de couche
control_type_collapsed = non afficher le contrôle de changement de couche replié (oui par défaut)
no_control / aucun_controle = oui ne pas afficher les contrôles de la carte
scale = oui afficher l’échelle de la carte
overview = oui afficher une mini carte de situation
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 / centrer_auto = oui centrer et zoomer la carte automatiquement pour afficher tous les marqueurs
kml = 12 fichier KML à superposer à la carte (id_document ou URL / élément unique, tableau ou liste d’items séparés par une virgule)
gpx = 12 fichier GPX à superposer à la carte (id_document ou URL / élément unique, tableau ou liste d’items séparés par une virgule)
geojson = 12 fichier GeoJSON à superposer à la carte (id_document ou URL / élément unique, tableau ou liste d’items séparés par une virgule)
centrer_fichier = non permet de ne pas centrer la carte automatiquement sur les fichiers kml/gpx surperposés
localize_visitor / localiser_visiteur = oui centrer la carte sur la position du visiteur (API géolocalisation HTML5)
id_a_ouvrir id_gis de l’infobulle à afficher au chargement (marqueur uniquement)
point = non si elle vaut "non" cette option n’affichera pas de points du tout (utile pour n’afficher qu’un kml par exemple)
path_styles=#ARRAY{color,#fff} options de style des tracés issus de la couche GeoJSON (voir http://leafletjs.com/reference.html#path-options)
cluster = oui active le clustering
clusterMaxZoom = 11 regroupe les points jusque à ce zoom, mais pas au delà
maxClusterRadius = 80 rayon maximal (en pixels) qu’un cluster couvrira (80 par défaut)
clusterShowCoverageOnHover = oui Affiche au survol du cluster le contour de la zone couverte par les points regroupés
clusterSpiderfyOnMaxZoom = oui Active l’effet d’éclatement pour afficher les points qui se chevauchent
singleMarkerMode = oui Utilise les icones de cluster pour tous les points (même ceux qui ne sont pas dans un cluster)

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, documents, evenements, mots, rubriques, sites.

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 squelette 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/gis_auteurs.html qui est utilisé.

Avec l’option objets=point_libre, il est possible d’afficher une carte centrée sur un point non enregistré en base. Il faut alors indiquer la latitude et la longitude du point, ainsi que le zoom de la carte. On peut optionnellement donner un titre et une description à ce point, et définir une image pour le marqueur.

Exemple d’appel depuis le texte d’un article :

<carte_gis1|objets=point_libre|lat=48|lon=-5|zoom=10|titre=mon beau point|description=ma super description|icone=mon_image.png>

Depuis la version 4.8.10 il est possible d’afficher les points liés aux articles d’une branche (une rubrique et ses sous-rubriques) :

<carte_gis1|objets=articles_branche|id_rubrique=1>

Quelques exemples de cartes

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

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

Télécharger

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

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

Télécharger

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

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

Télécharger

Afficher les auteurs du site :

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

Télécharger

Le modèle carte_gis_objet

Un second modèle existe pour un besoin plus précis : afficher toutes les informations géographiques liées à n’importe quel contenu de SPIP.

On lui donne donc au minimum les paramètres "objet" et "id_objet", et le modèle n’affiche alors une carte que s’il y a au moins un point OU au moins un tracé (quelque soit le format, json, gpx, kml).

S’il y a plusieurs points, et plusieurs tracés, le modèle affiche tout ce qu’il arrive à trouver qui serait lié à l’objet demandé.

Pour plus de paramétrage, on peut continuer de passer les mêmes paramètres que pour le modèle par défaut "carte_gis", car celui-ci est appelé par "carte_gis_objet".

  1. [(#REM) Exemple utilisant les paramètres propres au modèle + ceux du modèle classique ]
  2. #INCLURE{fond=modeles/carte_gis_objet,
  3. id_carte_gis=evenement1234,
  4. objet=evenement,
  5. id_objet=1234,
  6. zoom_molette=non,
  7. fullscreen=oui,
  8. centrer_auto=oui}

Télécharger

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

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 (un article par point uniquement).

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.

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

Télécharger

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 :

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

Télécharger

Critère distancefrom

Le critère {distancefrom} peut être utilisé soit lorsque le critère gis est présent sur un objet, ou lorsqu’on est déjà sur une boucle GIS.

Le critère ne sélectionne que les objets qui ont une localisation (un point lié) en respectant une certaine distance à un autre point qu’on donne en paramètre. Ce point peut être soit un tableau avec "lat" et "lon", soit un id_gis.

Par exemple, pour trouver tous les articles dans un rayon de la variable "distance" autour d’un point donné :

  1. <BOUCLE_c(ARTICLES){gis}{distancefrom #ARRAY{lat,#ENV{lat},lon,#ENV{lon}}, <=, #ENV{distance}}>
  2. <p>#ID_GIS / #TITRE / #DISTANCE km</p>
  3. </BOUCLE_c>

Télécharger

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}

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

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.

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

Télécharger

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

Si vous le souhaitez, vous pouvez associer une image d’ombre à votre icône personnalisée toujours dans votre dossier squelettes : squelettes/images/marker_defaut_shadow.png

Personnaliser le contenu des infobulles

Le contenu des infobulles est généré à partir des attributs title et description de chaque item retourné par les squelettes JSON. Vous pouvez surcharger ces squelettes afin de personnaliser le contenu des infobulles. Par exemple, nous souhaitons afficher une carte des points attachés aux articles du site, avec un lien vers l’article dans l’infobulle du marqueur.

Tout d’abord on affiche la carte en insérant le code suivant dans notre squelette :

  1. [(#INCLURE{fond=modeles/carte_gis,objets=articles,limit=1000})]

Puis on copie le fichier plugins/gis/json/gis_article.html dans squelettes/json/gis_articles.html et on modifie son contenu en remplaçant la ligne :

"title":[(#TITRE_GIS*|sinon{#TITRE*}|supprimer_numero|json_encode)],

par :

[(#SET{titre,<a href="#URL_ARTICLE">#TITRE*</a>})]"title":[(#GET{titre}|json_encode)],

Voici le résultat en image :

Étendre la liste des paramètres du modèle carte_gis

Si vous utilisez des fichiers gis/json personnalisés il peut arriver que vous souhaitiez leur transmettre des paramètres avec des noms de votre choix. Par défaut, le plugin GIS autorise la liste de noms suivante :

  • toutes les clés primaires déclarées et connues
  • ainsi que ces variables : id_objet, id_secteur, id_parent, media, recherche, mots, pays, code_pays, region, ville, code_postal, adresse

Cette liste peut être enrichie en utilisant le pipeline gis_modele_parametres_autorises.

Exemple d’utilisation depuis un fichier mes_options.php :

  1. $GLOBALS['spip_pipeline']['gis_modele_parametres_autorises'] .= "|nom_de_la_fonction";
  2.  
  3. function nom_de_la_fonction($flux) {
  4. $flux[] = 'mahcin';
  5. $flux[] = 'bidule';
  6. return $flux;
  7. }

Télécharger

Voir en ligne : http://plugins.spip.net/gis

Notes

[1Dans ce cas le plugin ajoutera les appels vers les scripts de Google dans vos pages afin de respecter les conditions d’utilisation restrictives de ce fournisseur.

[2Liste des noms de couches disponibles : openstreetmap_mapnik, openstreetmap_blackandwhite, openstreetmap_de, openstreetmap_hot, bing_aerial, openmapsurfer, acetate... Voir la liste complète en ligne

Dernière modification de cette page le 28 novembre 2016

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 21 décembre 2016 à 14:01, par VSM En réponse à : GIS 4

    Bonjour,

    J’ai un problème avec ce plugin lorsqu’une page est chargée en https: le fond de carte reste chargé en http et cela bloque le chargement de la carte (« mixed content »).

    Est-il possible d’y faire quelque chose ?

    Merci,

    • Le 22 décembre 2016 à 13:21, par b_b En réponse à : GIS 4

      Salut, cela dépend du fond de carte utilisé. En effet, ils ne sont pas tous disponibles en https, mais certains le sont. Après lecture rapide du code, les fonds suivants sont dispos en https: OpenStreetMap et les variantes France et HOT, OpenTopoMap, Thunderforest, Hydda, Stamen, Esri, Positron & DarkMatter de cartodb.

    • Le 23 décembre 2016 à 09:36, par VSM En réponse à : GIS 4

      Bonjour,

      Ce qui est étrange est que le fond que j’utilise est bien OSM. Mais lorsque la page est chargée en https, les images de fond de carte OSM sont malgré tout appelées en http (alors qu’elles pourraient effectivement être envoyées en https puisque la possibilité existe).
      Du coup, c’est ça qui me pose problème.

      Merci de votre aide,

    • Le 23 décembre 2016 à 11:47, par b_b En réponse à : GIS 4

      Quelle est l’url de la page en question ?

    • Le 23 décembre 2016 à 18:35, par VSM En réponse à : GIS 4

      Bonsoir,

      Je viens de comprendre un peu mieux : apparemment, ce n’est pas le fond de carte qui est en cause, mais deux icônes qui s’ajoutent à la carte (un pointeur et une ombre) :

      /plugins/dist/plugins/gis/lib/leaflet/dist/images/marker-icon-2x.png
      /plugins/dist/plugins/gis/lib/leaflet/dist/images/marker-shadow.png

      Merci de votre aide,

    • Le 23 décembre 2016 à 18:40, par b_b En réponse à : GIS 4

      Chez moi ça marche © https://labo.eliaz.fr/spip.php?page=carte

      L’adresse de ton site est bien en https par défaut ?

      Quelle est l’url de la page en question ?

      ...

    • Le 23 décembre 2016 à 18:48, par VSM En réponse à : GIS 4

      Par défaut, non.
      Mais la possibilité de le charger en https existe : https://la-bas.org/les-repaires-de-la-bas/

      Et du coup, ces deux éléments provoquent une alerte pour « mixed content » avec un blocage des ressources en question.

    • Le 28 décembre 2016 à 13:09, par b_b En réponse à : GIS 4

      Hop,

      Par défaut, non.

      Le problème vient de là, il vaut mieux forcer le https pour éviter tout problème de mixed content, sans quoi tu auras pas mal de problèmes (et pas qu’avec GIS).

    • Le 2 janvier à 15:22, par VSM En réponse à : GIS 4

      Bonjour,

      D’accord, merci de la réponse.

    Répondre à ce message

  • Le 28 décembre 2016 à 10:35, par ivandps En réponse à : GIS 4

    Bonjour,

    je viens de passer en spip 3.1.3 et je ne peux plus créer de nouveaux points : un message « echec » apparaît lors de la création. Merci de votre aide.

    Répondre à ce message

  • Le 18 décembre 2016 à 12:47, par Yohooo En réponse à : GIS 4

    Bonjour,

    Je viens d’importer 500 organisations sur le plugin « contacts et organisations ».
    J’ai créé un champ extra « adresse » (je n’utilise pas le plugin coordonnées pour une facilité de gestion de la BDD).

    J’aimerai savoir s’il est possible d’utiliser les fonctions geocoder de ce plugin pour créer une petite carte géolocalisant chacune des organisations.

    Quelqu’un aurait-il une idée ?
    Peut-être un créant une inclusion d’un code contenu dans le dossier « /formulaires » , qui utiliserait la fonction php geocoder ?

    Répondre à ce message

  • Le 29 novembre 2016 à 15:07, par richard En réponse à : GIS 4

    bonjour,
    pour exploiter l’api, ne faut-il pas avoir une clé !

    j’ai fait des essai sans le plugin et j’ai été obligé de demander une clé ; sans elle, la carte s’affiche et s’éteint rapidement ; firebug de firefox me dit bien qu’il faut des droits ...

    Cordialement

    • Le 29 novembre 2016 à 16:21, par b_b En réponse à : GIS 4

      Salut,

      pour exploiter l’api, ne faut-il pas avoir une clé !

      Te serais-tu trompé entre le point d’exclamation et le point d’interrogation ?

      Et sinon, info utile pour t’aider : de quelle API parles-tu ?

    • Le 5 décembre 2016 à 08:46, par richard En réponse à : GIS 4

      Bah, pour google maps
      gis4 c’est pas pour google maps ;
      alors je comprends plus rien ?

    • Le 5 décembre 2016 à 10:20, par b_b En réponse à : GIS 4

      Non, comme indiqué dans l’intro de l’article ici présent, le plugin utilise la librairie Leaflet et permet d’utiliser plusieurs fonds de carte différents (dont ceux de google maps). Et oui, google impose l’usage d’une clé, c’est un des problème de ce service et c’est pour ça que je déconseille toujours de l’utiliser (lire dans les commentaires de ce forum).

    • Le 5 décembre 2016 à 23:04, par richard En réponse à : GIS 4

      Merci ;
      je pensait que seul google avait les cartes ; car c’est bien lui qui a cartographié la terre entière ?
      apparement non ; et bien tant mieux ;
      par contre on ne bénéficie pas de la vue satellite et piéton, je suppose avec leaflet
      cordialement

    • Le 6 décembre 2016 à 09:21, par b_b En réponse à : GIS 4

      De rien,

      apparement non ; et bien tant mieux ;

      Héhé, non le plugin utilise beaucoup de fonds de carte basés sur les données d’openstreetmap qu’on pourrait qualifier de « wikipedia de la carte » (bien plus complet que google dans beaucoup de cas).

      Pour la satellite, le plugin en propose deux : celle de google et celle de bing, que je recommande car son utilisation n’impose pas l’insertion des scripts « espions » de google dans les pages de ton site (et donc chez les visiteurs du site). Pour la vue piéton, si tu parles de « streetview », non on ne prend pas ça en charge.

    Répondre à ce message

  • Le 4 décembre 2016 à 18:35, par jeromeD En réponse à : GIS 4

    Bonjour,

    J’ai une question qui peut paraître bête mais après plusieurs essais, je n’arrive pas à la faire fonctionner...la voici :
    Comme faire apparaître sur une carte des points qui sont dans plusieurs rubriques qui ne sont pas dans la même branche ?

    Mon code de départ inséré dans un article

    1. <carte_gis|centrer_auto=oui|scale=oui|zoom=14|height=500px|id_rubrique=33|objets=articles|cluster=oui>

    et je voudrai rajouter les points associés aux articles de la rubrique 9 par exemple

    Merci pour votre aide.
    Jérôme

    Répondre à ce message

  • Le 28 novembre 2016 à 14:37, par richard En réponse à : GIS 4

    bonjour,

    vous écrivez : Attention : un bug de SPIP peut provoquer des comportements indésirables lors de l’utilisation du modèle depuis le texte d’un article, une rubrique, etc.

    Avez-vous une solution, sinon comment les rédacteurs peuvent mettre une carte dans un article ?

    merci

    • Le 28 novembre 2016 à 16:05, par b_b En réponse à : GIS 4

      Ha oui, cet avertissement date un peu, le problème a été contourné depuis, je retire cette mention de l’article et merci pour le rappel.

    Répondre à ce message

  • Le 28 octobre 2016 à 15:38, par Jin En réponse à : GIS 4

    Salut je suis confronté à un bug/conflit entre GIS 4 et le plugin blocs dépliables, que l’on trouve documenté dans les commentaires de ce dernier : la carte ne s’affiche que partiellement dans un bloc dépliable, ce qui rend très compliquée, voire impossible, son utilisation.
    exemple sur la page http://fepsavoirs.org/spip.php?article2

    J’explique mon objectif : permettre aux visiteurs de mon site d’éditer ou de rajouter un point géolocalisé depuis la partie publique du site. Il suffit pour cela d’ajouter au squelette article.html le code que l’on trouve sur ce tuto un peu plus haut :

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

    Télécharger

    Seulement je ne veux pas que ce formulaire prenne toute la place dans mes articles, ce qui est le cas si je le laisse tel quel. J’ai essayé dans les blocs dépliables mais ça buggue, alors je ne sais pas trop comment faire... Avec le plugin onglets ? J’ai essayé je ne sais pas faire. En mettant dans une autre page accessible par un lien ? Je ne sais pas comment lier cette page à l’article d’où elle aura été appelée.

    • Le 28 octobre 2016 à 16:08, par b_b En réponse à : GIS 4

      Le sujet a déjà été abordé maintes fois dans ce forum, une petite recherche devrait t’aider à trouver la réponse adaptée...

    • Le 30 octobre 2016 à 18:31, par Jin En réponse à : GIS 4

      Bonjour, merci pour la réponse :-) Je découvre toute l’étendue du plugin et de l’aide que tu nous apporte c’est super !

      J’ai eu beaucoup de mal à trouver en recherchant par mots clés mais j’ai fini par réussir en lisant tous les messages un par un !

      J’ai au passage découvert qu’il fallait ajouter cette fonction si je voulais autoriser l’ajout de nouveaux points par les visiteurs.

      1. [(#AUTORISER{modifier,article,#ID_ARTICLE})
      2. ]

      Télécharger

      Voici donc le code que j’utilise dans mes squelettes, et à cause de mon incompétence, ne fonctionne pour aucune de ces deux problèmes :

      1. <BOUCLE_test(GIS){id_article}{0,1}>
      2. [(#INCLURE{fond=modeles/carte_gis,centrer_auto=oui,zoom=17,width=50%,objets=articles,id_article})]
      3. </BOUCLE_test>
      4. #BLOC_TITRE
      5. Ajouter ou modifier votre point sur la carte
      6. #BLOC_DEBUT
      7. <BOUCLE_unpoint(GIS){id_article}{0,1}>
      8. #SET{id_gis,#ID_GIS}
      9. </BOUCLE_unpoint>
      10. [(#AUTORISER{modifier,gis})]
      11. #SET{id_gis,nouveau}
      12. ]
      13. <//B_unpoint>
      14. #FORMULAIRE_EDITER_GIS{#GET{id_gis},'article',#ID_ARTICLE,#URL_ARTICLE,map1.invalidateSize();}
      15. #BLOC_FIN

      Télécharger

      Une page pour voir sur mon site : fepsavoirs.org/spip.php ?article26

    • Le 11 novembre 2016 à 15:08, par Jin En réponse à : GIS 4

      Salut,

      je me casse la tête depuis quelques temps sur ce problème. La fonction d’autorisation ça devrait aller, ça a pas l’air trop compliqué et je devrais pouvoir trouver de l’aide sur le forum général sans trop de soucis.

      Mais ce truc invalidatesize() de leaflet j’avoue je que je m’y casse les dents et personne ne répond sur le forum, je suppose que personne ne sait trop. J’ai vaguement compris que mon code ne suffisait pas alors j’ai fait ceci à partir d’un des deux seuls commentaires sur cette fonction que l’on trouve sur cette page :

      1. #BLOC_TITRE
      2. Ajouter ou modifier votre point sur la carte
      3. #BLOC_DEBUT
      4. <BOUCLE_unpoint(GIS){id_article}{0,1}>
      5. #SET{id_gis,#ID_GIS}
      6. </BOUCLE_unpoint>
      7.  
      8. #SET{id_gis,nouveau}
      9.  
      10. <//B_unpoint>
      11. #FORMULAIRE_EDITER_GIS{#GET{id_gis},'article',#ID_ARTICLE,#URL_ARTICLE}
      12. <script type="text/javascript">
      13. /*<![CDATA[*/
      14. ;(function($){
      15. $(function(){
      16. $('#onglets_titre_1').on('click', function(){
      17. map1.invalidateSize();
      18. });
      19. });
      20. })(jQuery);
      21. /*]]>*/
      22. </script>
      23. #BLOC_FIN

      Télécharger

      J’ai essayé de mettre id_map=2 en paramètre du formulaire d’édition et de modifier ma2.invalidatesize(), mais ça n’a rien donné non plus.
      Faut-il faire appel à un fichier javascript externe que j’aurais à modifier ? Un commentaire semble le suggérer mais ma carte n’apparaît pas suite à un lien cliquable alors je suis pas sûr que ce soit approprié.

      Si j’arrive à faire fonctionner ce truc je mettrais un article sur le carnet de notes ou je ferais une contrib pour l’expliquer aux gens.

    • Le 11 novembre 2016 à 15:47, par b_b En réponse à : GIS 4

      En inspectant la carte du formulaire tu aurais remarqué que l’id de celle-ci est map_editer_gis_oui pour la création d’un point ou map_editer_gis_X lors de l’édition du point gis id X.

      Pour info, cet id est défini dans cette portion de code : http://zone.spip.org/trac/spip-zone/browser/_plugins_/gis/trunk/formulaires/editer_gis.html#L15

    • Le 11 novembre 2016 à 17:20, par Jin En réponse à : GIS 4

      Super ! Voici donc le code qui fonctionne avec la fonction invalidatesize() pour un formulaire d’ajout de point, sans la fonction autoriser :

      1. </BOUCLE_test>
      2. #BLOC_TITRE
      3. Ajouter ou modifier votre point sur la carte
      4. #BLOC_DEBUT
      5. <BOUCLE_unpoint(GIS){id_article}{0,1}>
      6. #SET{id_gis,#ID_GIS}
      7. </BOUCLE_unpoint>
      8. #SET{id_gis,nouveau}
      9. <//B_unpoint>
      10. #FORMULAIRE_EDITER_GIS{#GET{id_gis},'article',#ID_ARTICLE,#URL_ARTICLE}
      11. <script type="text/javascript">
      12. /*<![CDATA[*/
      13. ;(function($){
      14. $(function(){
      15. $('#onglets_titre_1').on('click', function(){
      16. map_editer_gis_oui.invalidateSize();
      17. });
      18. });
      19. })(jQuery);
      20. /*]]>*/
      21. </script>
      22. #BLOC_FIN

      Télécharger

      Merci encore pour ton aide b_b. Ce code fonctionne pour mon besoin de base et je pense arriver à ajouter l’autorisation par moi-même.

      J’avais lu editer_gis.html mais n’y avais rien compris, ce qui est toujours le cas car faisant une recherche dans cette page à aucun moment il n’y a écrit ne serait-ce que « map ». En inspectant la page avec f12 je vois bien que ça appelle le formulaire editer_gis, mais je ne vois pas l’id que tu me donne. C’est certainement que je ne m’y connais pas assez.

      Si je veux activer la fonction invalidatesize sur un formulaire d’édition de point, d’après ce que tu dis il semblerait qu’il soit compliqué de définir l’id d’un point dans un squelette général comme article.html ? Il faudrait définir une variable en fonction de l’article et du point qui y est attaché ?

    • Le 11 novembre 2016 à 22:06, par Jin En réponse à : GIS 4

      Fausse alerte en fait ça ne fonctionne pas. C’est parce-que j’avais fait f12...

    • Le 26 novembre 2016 à 16:17, par Jin En réponse à : GIS 4

      Je passe pour aider les prochains dans ma situation.
      J’ai laissé tomber la fonction InvalidateSize, trop compliqué pour le débutant que je suis.

      En fait très simplement, un lien vers le formulaire comme ceci :
      siteweb.com/ ?page=monformulaire&id_article=#ID_ARTICLE

      et le formulaire est relié à l’article.

    Répondre à ce message

  • Le 26 octobre 2016 à 20:30, par Jin En réponse à : GIS 4

    Salut,

    je souhaite afficher la carte gis dans chaque article lié à un événement et à un point géolocalisé.

    J’ai essayé deux choses :

    1 dans le corps de l’article je mets <carte_gis1|zoom=2|limit=100|scale=oui|centrer_auto = oui>
    ça m’affiche tous les points géolocalisés, pas seulement celui de l’article

    2 dans le squelette article.html je mets
    [(#INCLURE{fond=modeles/carte_gis,autocenterandzoom=oui,id_article=#ID_ARTICLE})]
    (trouvé sur ce forum)
    ca m’affiche une carte du monde sans point géolocalisé...

    Je sèche...

    • Le 26 octobre 2016 à 20:46, par Jin En réponse à : GIS 4

      J’ai trouvé alors je me réponds :
      http://forum.spip.net/fr_250214.html

      J’ai mis

      <BOUCLE_test(GIS){id_article}{0,1}>
      [(#INCLURE{fond=modeles/carte_gis,center_auto=oui,objets=articles,id_article})]
      </BOUCLE_test>

      et ça fonctionne.

      Seulement, l’option centrer_auto=oui ne fonctionne pas. Quelqu’un sait pourquoi ?

    • Le 26 octobre 2016 à 21:07, par b_b En réponse à : GIS 4

      Peux-tu nous donner l’url de la page en question pour qu’on puisse t’aider ?

    • Le 26 octobre 2016 à 23:21, par Jin En réponse à : GIS 4

      Voici la page en question

      http://fepsavoirs.org/spip.php?article2

    • Le 27 octobre 2016 à 16:15, par b_b En réponse à : GIS 4

      Oui, l’option centrer_auto ne change le zoom que s’il y a plusieurs point sur la carte (afin de les afficher tous automatiquement). S’il n ’y en a qu’un, alors c’est le zoom passé en paramètre qui est utilisé, sinon celui défini dans la configuration du plugin.

    • Le 27 octobre 2016 à 20:12, par Jin En réponse à : GIS 4

      Ok, j’ai donc remplacé par

      <BOUCLE_test(GIS){id_article}{0,1}>
      [(#INCLURE{fond=modeles/carte_gis,zoom=2,objets=articles,id_article})]
      </BOUCLE_test>

      Ça affiche le point de loin, mais si je zoome plus ça me met au milieu de l’océan...
      On peut pas faire un truc plus propre ? Genre une option qui zoome sur le point ? J’ai pas trouvé

    • Le 28 octobre 2016 à 11:48, par b_b En réponse à : GIS 4

      Si, il faut centrer automatiquement et spécifier le zoom, cf :

      <BOUCLE_test(GIS){id_article}{0,1}>
      [(#INCLURE{fond=modeles/carte_gis,centrer_auto=oui,zoom=2,objets=articles,id_article})]
      </BOUCLE_test>
    • Le 28 octobre 2016 à 12:17, par Jin En réponse à : GIS 4

      J’ai fini par bricoler ceci avec les paramètres de lattitude longitude. Ici je centre sur toulouse avec un zoom de 12.


      [(#INCLUREfond=modeles/carte_gis,lat=43.6,lon=1.4,zoom=12,objets=articles,id_article)]

      Ça suffit pour mon usage des cartes car les événements de mon site n’iront pas plus loin, mais pour un autre usage ce serait bien d’avoir un paramètre qui centre sur le point, ça doit exister puisque c’est ce qui semble se passer dans l’espace privé.

    • Le 28 octobre 2016 à 12:22, par Jin En réponse à : GIS 4

      On a posté en même temps !

      Merci ton option est très efficace !

    Répondre à ce message

  • Le 7 octobre 2016 à 21:03, par RealET En réponse à : GIS 4

    Bonjour

    Actuellement, zoom_molette / zoom_wheel est actif par défaut.

    Or, je constate que régulièrement, je scrolle à la molette sur une page, et arrivé à la carte, ça se met à zoomer au lieu de continuer à scroller.

    Du coup, je me suis demandé pourquoi le site de Google était en Zoom à la molette par défaut.

    Et ça m’a semblé évident :

    • plein écran, zoom molette activé
    • carte intégré dans une page : il ne faudrait pas que le zoom soit activé

    Noté ici pour ne pas l’oublier (suite à discussion sur IRC)

    Répondre à ce message

  • Le 9 septembre 2016 à 11:09, par Julien En réponse à : GIS 4

    PROBLEME GEOCODEUR

    Sur spip 3.1, plugin GIS mis à jour, GIS marche bien, sauf le géocodeur à partir d’une adresse. Il provoque une erreur javascript sur un champ inconnu sur cette ligne :

    $(’#champ_departement’).val(query.departement).change() ;

    Or dans le formulaire de l’adresse d’un point, il n’y a pas de champ département, uniquement région.

    Comment résoudre ce problème ?

    Merci de votre aide.

    • Le 9 septembre 2016 à 11:16, par b_b En réponse à : GIS 4

      Salut, je viens de tester à l’instant et je ne reproduis pas avec les champs d’adresse affichés ou masqués. Quelle est ta configuration de ce côté ? Quelle recherche lances-tu dans le geocoder ? Tu n’aurais pas surchargé le formulaire editer_gis ?

    • Le 9 septembre 2016 à 15:37, par julien En réponse à : GIS 4

      Très fort ! Il y a effectivement une surcharge provenant d’un autre site...

      %ais après suppression, je retrouve bien le champ département, mais j’ai toujours :

      TypeError : $(...).val(...).change is not a function sur ecrire:492:4 (mais cela ne correspond pas tout à fait à la ligne $(’#champ_departement’).val(query.departement).change() ;...

      Avec « 19 rue des gardes, paris », cela renseigne bien adresse, code postal, ville, mais pas la suite.

      J’ai la plugin pays en plus ? Je tente sans lui...

    • Le 22 septembre 2016 à 17:36, par Julien En réponse à : GIS 4

      Je relance ce problème de géocodeur :

      Avec « 19 rue des gardes, paris », rien ne se passe... sauf une erreur javascript dans la console :
      TypeError : $(...).val(...).change is not a function en ligne 457 de la page...

      Seuls les champs adresse, code postal, ville sont remplis, mais rien après...

      Enfin, dans la config de GIs, la recherche d’une adresse marche bien avec le marqueur qui va se mettre à la bonne place...

      GIS en 4.41.2, que je viens de réinstaller...

      Une idée ?

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Acces Restreint 3.0

    11 décembre 2008 – 787 commentaires

    Le plugin accès restreint permet de définir et de gérer des zones de l’espace public en accès restreint. Cette version du plugin a été redévelopée et optimisée tout spécialement pour SPIP 2.0. Il en découle une amélioration des performances sur les gros (...)

  • Partageur

    29 janvier 2011 – 46 commentaires

    Permet de recopier facilement des articles d’un site SPIP partageur à l’autre. Ce plugin est encore en version beta. Les retours et critiques sont les bienvenus ... Présentation Ce plugin est né d’un besoin de partager des articles entre sites (...)

  • Tutoriel : créer une carte interactive avec GIS4

    19 octobre 2013 – 26 commentaires

    Utilisation de quelques fonctions javascript pour créer des interactions avec une carte GIS. L’objet de ce tutoriel est de produire une carte interactive comme celle-ci Effacer tous les points d’une carte d’une carte La fonction javascript (...)

  • Agenda 2.0

    3 novembre 2008 – 1067 commentaires

    Voici la version pour SPIP 2.0 du Plugin Agenda pour SPIP 1.9.2, avec une interface remaniée pour encore plus de plaisir. Pour une documentation concernant l’utilisation d’Agenda 3 pour SPIP 3, veuillez pour l’instant vous référer à SPIP 3, Agenda (...)

  • Menus

    18 août 2009 – 957 commentaires

    Créez enfin vos menus facilement !