SPIP-Contrib

SPIP-Contrib

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

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

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

GIS 4

11 août 2012 – par b_b – 1288 commentaires

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

98 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 29 novembre à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 23:21, par Jin En réponse à : GIS 4

      Voici la page en question

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

    • Le 27 octobre à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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

  • Le 31 août à 22:32, par jeromeD En réponse à : GIS 4

    Bonjour,
    J’ai un petit soucis d’affichage de la carte GIS sur le site http://bateau.cnservices.fr/

    Elle devrait apparaître en largeur 100% lorsque l’on clique sur « nous trouver » mais elle n’apparaît qu’en partie et dans un coin. J’ai insré le code suivant qui me paraît correcte.

    1. [(#INCLURE{fond=modeles/carte_gis,zoom=10, height=217px, lat = 46.278037, lon = 6.346604, scale=oui,autocenterandzoom=oui})]

    Le plus étrange est que lorsque je veux l’analyser avec firebug pour voir ce qui se passe, la carte apparait correctement !

    Est-ce que quelqu’un a déjà eu ce phénomène et a trouvé une solution ou est-ce que j’ai raté quelque chose ?
    Merci d’avance

    Jérôme

    • Le 1er septembre à 09:20, par b_b En réponse à : GIS 4

      Salut, un classique souvent évoqué dans ce forum (la réponse y est donc certainement déjà présente).

      Ta carte est masquée au chargement de la page, il faut donc lui appliquer la méthode invalidateSize lorsqu’elle est affichée (cf quand le lien pour l’afficher est cliqué) :

      http://leafletjs.com/reference.html#map-invalidatesize

      ++

    • Le 1er septembre à 21:02, par jeromeD En réponse à : GIS 4

      Bonjour b_b,
      Merci pour ta réponse. J’ai suivi ton lien et j’ai cherché dans le forum d’autres pistes. Mais si j’ai bien compris se principe invalidateSize, j’avoue ne pas savoir comment le mettre en œuvre dans le code.
      J’ai donc invalidateSize( <Boolean> animate ) mais je ne sais pas quioi en faire. Pourrais-tu m’éclairer un peu plus dans la mesure de tes disponibilités.

      JE te remercie d’avance.
      jérôme

    • Le 1er septembre à 22:29, par jeromeD En réponse à : GIS 4

      En continuant à fouiller, je comprend (sauf si je suis dans l’erreur) qu’il faut modifier le fichier modele/carte_gis.html pour lui rajouter invalidateSize mais j’avoue ne pas savoir quoi mettre derrière...si tu peux m’aiguiller .
      Merci d’avance
      Jérôem

    • Le 3 septembre à 15:06, par b_b En réponse à : GIS 4

      Il faut récupérer l’objet de la carte comme indiqué ici :

      http://contrib.spip.net/Astuces-GIS#api_js

      var map = $('#map1').get(0).map;

      Puis, appeler la méthode invalidateSize() lors du clic sur ton lien qui affiche la carte :

      map.invalidateSize();

      Et zou :p

    • Le 8 septembre à 21:42, par jeromeD En réponse à : GIS 4

      Bonsoir b_b,
      Merci pour ton explication et ton temps....bon j’avoue que j’ai essayé mais que je n’ai pas tout compris...Cela doit dépasser mes compétences. Je ne sais pas quoi mettre où...
      Mais je ne souhaite pas t’embêter plus que cela avec ça...c’est déjà bien sympa de prendre du temps pour nous faire comprendre.
      J’ai donc afficher la carte sans apparition...c’est moins bien mais bon.

      Toutefois, je profite pour une autre interrogation... le copain pour qui je fais le site veut un carte google...bon j’ai beau lui avoir expliqué en long et large...il veut google.
      J’ai bien pris une clés sur google maps que j’ai renseignée...la carte google apparaît bien dans l’espace privé mais n’apparaît pas dans l’espace public...pour que tu vois j’ai mis le mode multicouche...
      As-tu une explication même si je sais que tu n’est pas un fan des couches google ?
      Merci
      Jérôme

    • Le 8 septembre à 22:15, par jeromeD En réponse à : GIS 4

      Re...
      J’ai regarder la console javascript et ile mdit Google Maps API error: MissingKeyMapError https://developers.google.com/maps/documentation/javascript/error-messages#missing-key-map-error"
      Mais pourtant j’ai bien une clé API Google maps que j’ai saisie ...une idée ?
      Merci

    • Le 9 septembre à 09:42, par b_b En réponse à : GIS 4

      Tu as inséré manuellement le script de l’api google maps, donc tu l’as en double dans ta page car GIS le fait déjà, cf l’erreur :

      You have included the Google Maps API multiple times on this page. This may cause unexpected errors.

      Vire l’appel manuel (qui est celui qui ne mentionne pas de clé) et ça fonctionnera.

    • Le 11 septembre à 20:27, par jeromeD En réponse à : GIS 4

      Argh !! bien vu...Je te remercie pour le suivi.
      Cela fonctionne...
      J’essayerai de me pencher sur tes autres explications sur map.invalidateSize() lorsque j’arriverai à comprendre.
      Encore merci
      Jérôme

    Répondre à ce message

  • Le 9 septembre à 18:24, par Rémi Clavier En réponse à : GIS 4

    Bonjour,

    Je dispose d’un fichier gpx contenant des éléments et des éléments de type
    Ce fichier est attaché à un article qui ne contient aucun point lié
    La boucle suivante affiche bien le contenu des amis aussi les sous forme de points sur le tracé

    1. <BOUCLE_gpx(DOCUMENTS){id_article}{extension=gpx}>
    2. [(#INCLURE{fond=modeles/carte_gis,id_gis=1,
    3. centrer_auto = oui,
    4. id_article=#ID_ARTICLE,gpx=#ID_DOCUMENT,
    5. fullscreen=oui
    6. scale=oui,
    7. affiche_layers=acetate/openstreetmap_mapnik/openmapsurfer/mapquestopen_aerial,
    8. fullscreen = oui,
    9. point=non})]
    10. </BOUCLE_gpx>

    Télécharger

    Quelques questions

    • Pourquoi les points sont-ils affichés alors que l’attribut point = non ? Est-il possible de les supprimer du tracé ?
    • Où se trouve la gestion des infobulles correspondantes aux afin d’en modifier le contenu comme proposé dans le paragraphe personaliser les infobulles ?

    D’autre part, le portefolio de cet article contient des images jpg, auxquelles sont liés des « points géolocalisé » ( cf plugin « Metadonnées photo »). Pour chacune de ces images, je voudrais ajouter un point sur la carte précédemment tracée.

    Tous mes essais se sont traduits par des échecs. Au lieu de les integrer à la carte déjà tracée, une nouvelle carte est créée pour chaque point alors que le même id_gis est utilisé.
    Quelqu’un peut-il me dire comment faire ?
    Merci

    • Le 9 septembre à 18:29, par Rémi Clavier En réponse à : GIS 4

      Excuses, au lieu de
      fichier gpx contenant des éléments et des éléments de type
      il faut lire :

      1. fichier gpx contenant des éléments de type
      2. <trkpt/>
      3. et des éléments de type
      4. <wpt/>

      Télécharger

    Répondre à ce message

  • Le 5 août à 10:30, par Olivier En réponse à : GIS 4

    Bonjour,

    J’utilise autorité et gis sur 2 sites que je gère. J’ai une vingtaine d’utilisateurs ayant un profil « administrateur » sur une partie du site.

    Dernièrement, j’ai upgradé spip vers la 3.0.22. Avant cela, j’ai mis à jour tout mes plugins. Depuis, j’ai eu un changement dans les droits. En effet, les utilisateurs administrateurs « restreint » pouvaient associer un point géolocalisé à leur article. Hors, depuis la mise à jour, cette possibilité ne leur apparaît plus.
    Si je change les droits d’un utilisateur comme étant administrateur « complet » (c’est à dire sans limitation de rubrique et de pouvoir), l’utilisateur a à nouveau accès à la géolocalisation.

    Est-ce que c’est une volonté de « brider » cette fonction ou est-ce un bug ou encore, peut-être que je m’y prends mal.

    NB : j’ai posé la question sur le forum "autorité" mais je n’ai pas eu de retour.

    Merci par avance pour votre aide !

    Olivier

    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

  • Mode portail Communiquant pour SoyezCréateurs

    29 septembre 2010 – 20 commentaires

    5e mode d’affichage de la page d’accueil, ce mode se distingue des autres par une animation proposant un fondu/enchaîné des logos des articles à la une. Zonage Configuration Zone d’entête Nom du site Slogan si plugin bandeau présent (...)

  • Configurer Sparkpost

    25 avril – 14 commentaires

    N’hésitez pas à relire le préambule de cette rubrique avant de créer un compte sur une plateforme tierce . Présentation Sparkpost est une société d’envoi de mailing https://www.sparkpost.com/ Sur les petits volumes ( <100.000 emails / mois), (...)

  • Plugin Logo SVG : pouvoir utiliser des logos SVG

    17 octobre – commentaires

    Le SVG est un format vectoriel donc très léger et redimensionnable sans pertes, mais SPIP ne l’acceptait pas sur les logos. Ce plugin comble ce manque. Comment ça fonctionne ? Vous installez ce plugin, vous l’activez, et c’est tout. Crédits Une (...)

  • Utilisez le framework Foundation dans vos squelettes !

    13 août 2013 – 58 commentaires

    Foundation est un framework CSS et Javascript très complet pour réaliser des sites sur une grille propre et homogène. Mais surtout, il permet de rendre un site responsive très facilement ! Ce plugin ajoute le framework Foundation sur l’espace (...)

  • LinkCheck : vérificateur de liens

    13 février 2015 – 65 commentaires

    Ce plugin permet de chercher et tester l’ensemble des liens présents dans les objets. Vous pourrez donc en quelques clics connaître les liens brisés ou défectueux qui se sont immiscés dans le contenu de votre site SPIP. La vérification s’effectue en (...)

Ça spipe par là