GIS 4

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 :

[(#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 = openmapsurfer nom de la couche affichée par défaut [2]
affiche_layers = openmapsurfer/opentopomap 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 = non
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 = oui
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 = oui
centrer_auto = oui
centrer et zoomer la carte automatiquement pour afficher tous les marqueurs
autocenter = oui
centrer = oui
centrer la carte automatiquement pour afficher tous les marqueurs (sans modifier le zoom)
tooltip = oui afficher une bulle d’info contenant le titre du point lors de son survol
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 = oui
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 :

[(#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})]

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 ».

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

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.

<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>
</BOUCLE_m>

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é :

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

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.

<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

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 les squelettes du répertoires gis/json afin de personnaliser le contenu des infobulles.

Afin de simplifier ces personnalisations, il est plus simple de passer par un #INCLURE comme expliqué dans l’article Gis 4 Surcharger les infobulles.

É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 :

$GLOBALS['spip_pipeline']['gis_modele_parametres_autorises'] .= "|nom_de_la_fonction";
 
function nom_de_la_fonction($flux) {
	$flux[] = 'machin';
	$flux[] = 'bidule';
	return $flux;
}

API de cartes statiques

Depuis la version 4.53.0 il est possible de générer des cartes statiques sous forme d’images à l’aide du filtre |gis_static_map.

Par exemple, le code suivant :

<BOUCLE_centrer(GIS){id_gis=1}>
[(#ID_GIS|gis_static_map{335,170,openstreetmap_fr,7})]
</BOUCLE_centrer>

Génère l’image d’une carte de 335 pixels de large et 170 de haut, centrée sur les coordonnées du point n° 1, avec pour fond de carte la couche openstreetmap_fr et un niveau de zoom à 7.

Détails des arguments du filtre :

gis_static_map{ID,largeur,hauteur,id_fond_carte,zoom,markers,latitude,longitude}
  • ID : ID du point à afficher
  • largeur : largeur de l’image
  • hauteur : hauteur de l’image
  • id_fond_carte : le nom de la couche à utiliser en fond de carte
  • zoom : le zoom de la carte
  • markers : les informations des markers à afficher sous la forme suivante lat;lon;url|lat;lon;url
  • latitude : la latitude du centre de la carte
  • longitude : la longitude du centre de la carte

Exemples d’usage avancés :

[(#REM|gis_static_map{335,170,openstreetmap_de,7,48.33;-4.76;https://www.vertlejardin.fr/plugins/vertlejardin/images/marker_defaut.png})]

Génère une carte avec une image de marker personnalisée dont le centre est défini à l’aide des paramètres latitude & longitude du filtre (sans utiliser l’identifiant d’un point GIS).

#SET{markers,#ARRAY}
<BOUCLE_articles2(ARTICLES){gis}{id_article=1}
>#SET{markers,#GET{markers}|push{#LAT;#LON;http://open.mapquestapi.com/staticmap/geticon?uri=pcenter.png}}</BOUCLE_articles2>

[(#REM|gis_static_map{335,170,openstreetmap_mapnik,'',#GET{markers}|implode{'|'}})]

Génère une carte affichant tous les points liés à l’article n° 1 en utilisant une image de marker personnalisée.

Liste des fonds de carte utilisables avec l’API et aperçu du rendu :

openstreetmap_mapnik,
openstreetmap_de,
openstreetmap_fr,
openstreetmap_hot,
opentopomap,
stamen_toner,
stamen_tonerlite,
stamen_terrain,
stamen_watercolor,
esri_worldstreetmap,
esri_delorme,
esri_worldtopomap,
esri_worldimagery,
esri_worldterrain,
esri_worldshadedrelief,
esri_worldphysical,
esri_oceanbasemap,
esri_natgeoworldmap,
esri_worldgraycanvas,
cartodb_positron,
cartodb_positron_base,
cartodb_darkmatter,
cartodb_darkmatter_base,
cartodb_voyager,
cartodb_voyager_base

Astuces et usages avancés

Vous pouvez consulter et partager vos astuces pour GIS sur cette page du carnet.

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... Voir la liste complète en ligne

Discussion

473 discussions

  • Bonjour,
    gis 5.1.0, spip 4.2.10, php 7.4
    Pour les administrateurs restreints (statut « 0minirezo » webmestre « non » ),
    Les entrées dans le menu édition et dans la barre rapide sont absents.
    Rien à ce sujet dans la page de configuration, dans paquet.xml les deux lignes pour les menus sont bien présents. C’est quoi qui clocherait ?
    cordialement

    Répondre à ce message

  • J’ai créé une carte avec l’API LeafLet qui utilise la couche du cadastre de GeoPortail.
    J’utilise des fichiers json concernant chaque parcelle du village.

    Le pb est que pour l’afficher dans un article SPIP, je dois l’inclure dans un iframe.
    Est-il possible de tout convertir sous GIS ?

    Répondre à ce message

  • Bonjour.
    Est-ce que GIS met actuellement en cache les tuiles des cartes ?
    Si non, ça pourrait être intéressant, non ? Ça permettrait de soulager les serveurs de cartes, non ?

    Et puis ça éviterai aussi de pousser les fournisseurs de cartes d’arriver à des solutions un poil radicales : https://stadiamaps.com/pricing/

    Répondre à ce message

  • 8
    Chourak

    Bonjour,

    Est-il possible, quelque part dans le plugin, de choisir si une carte est scrollable ou pas ?

    Mon problème est la navigation sur smartphones et tablettes qui ne permet pas de scroll la page si on scroll sur la carte (quand celle-ci prend beaucoup de place sur l’écran)

    Merci !

    • Oui c’est possible, et c’est même documenté :p

      zoom_molette / zoom_wheel = non désactiver le zoom avec la molette de la souris, actif par defaut

      Normalement cette option du modèle est bien ce que tu cherches :)

    • Chourak

      Merci de ta réponse et j’ai bien mon zoom_molette sur non.

      Cela marche très bien sur desktop mais sur mobile / tablette le scroll sur la carte est toujours possible :’(
      J’aurais voulu au minimum le désactiver et au mieux que le scroll de la page entière puisse continuer même en scrollant sur une carte.

      Je vais jeter un coup d’oeil aux plugins leaflet même si à priori il n’y a rien de transcendant pour ce problème précis.

    • Ha oui, cela semble être un bug connu de Leaflet, essaye peut-être une des solutions proposées ici :

      https://github.com/Leaflet/Leaflet/issues/4051#issuecomment-215864579
      https://github.com/Leaflet/Leaflet/issues/2031#issuecomment-24599389

    • Le scroll c’est pas le zoom. Le scroll des cartes est un réel problème sur petit écran quand la carte est un peu grande : on ne peut alors plus faire scroller la page car la carte intercepte les demandes. Bug ou pas dans leaflet, ya en tout cas un code qui marche pour 1) permettre de drag’n’scroller la map sur grand écran et 2) empêcher qu’elle ne capture les demandes de scroll sur petit écran (et du coup c’est la page qui scrolle, et plus la carte) :

      dragging: !L.Browser.mobile,
      tap: !L.Browser.mobile,

      Ce petit ajout dans carte_gis.html met fin à plusieurs années où je me servais, pour les petits écrans, de boutons extérieurs à la carte pour permettre de demander le scroll de la page (à défaut d’avoir su empêcher la capture de la demande par la carte.)

      Est ce que je propose une nouvelle option scrollable pour gis, avec 3 valeurs possibles : oui|non|grand_ecran ?

    • Bonjour,
      Je vois cette réponse à la question que je me pose, ... mais pas sûr de piger ou l’on met ces 2 lignes de code. On copie carte_gis.html dans nos propres modèles (pour éviter l’écrasement à la mise à jour) et on ajoute ces 2 lignes ... ou ?
      Si c’est encore d’actualité vu l’age de cette suggestion !
      Pierre

    • Oui c’est toujours valable.

      Si comme tu dis tu surcharges carte_gis, tu le colles avec les autres paramétrage de la carte, par exemple à la suite du paramétrage de minZoom...

      Mais je préfère ne pas surcharger carte_gis (pour la maintenance à long terme), et alors tu peux appeler un js dans le squelette carte_truc.html incluant la carte, genre

      <script type="text/javascript">
      (function($) {
        $('#map_#ID_TRUC').on('load', function () {
          this.map.options.tap = !L.Browser.mobile;
          this.map.options.dragging = !L.Browser.mobile;
        });
      });
      </script>
      
    • Bonjour,
      Désolé je réponds un peu tard, j’ai été occupé ailleurs :-(
      J’ai finalement mis ce script dans mon fichier js global puisque ce site contient un peu de jquery et que je n’ai qu’une seule carte dans le site avec toujours le même id :

      $('#map1').on('load', function () {
          this.map.options.tap = !L.Browser.mobile;
          this.map.options.dragging = !L.Browser.mobile;
      });
      

      A noter pour ceux qui reviendrait ici, il me semble qu’il manque dans le code de @JLuc accolade et parenthèse fermante de la fonction, c’est différent dans mon code, en tous cas ça marche, merci beaucoup !!
      Pierre

    • Ah possible. J’ai corrigé.
      Merci pour les différents retours.

    Répondre à ce message

  • Bonjour,
    Il me semblait avoir un jour trouvé la solution ici, impossible de retrouver ça ...
    Si l’on ajoute le paramètre « zoom_molette = non », si j’ai bien compris, cela évite qu’au scroll à la souris la carte se mette à zoomer au moment ou le pointeur de la souris passe sur la carte (et donc de fait on zoome la carte et la page ne défile plus). En tous cas c’est ce que je constate à priori dans mon test.
    Maintenant se pose la même question sur smartphone ou « zoom_molette = non » ne semble pas avoir le même effet, dès que l’on pose le doit dans la carte c’est celle-ci qui défile, même si effectivement elle ne zoome pas ... Il me semble que Gmaps solutionne le problème en demandant que l’on se déplace dans la carte en utilisant 2 doigts.
    Le souci c’est que souvent, étant donné que l’on a somme toute peu de place sur un écran de smartphone, la carte occupe une large place et si on souhaite scroller dans la page, il faut arriver à poser le doigt à gauche ou droite de ladite carte, ou en dessous ...
    Question donc : y-a-t-il un paramètre qui permet de dire qu’en mode smartphone il faut 2 doigts pour se déplacer dans la carte et que si on déplace un seul doigt sur la carte c’est la page qui défile ?
    J’imagine que la question a été posée et peut-être résolue, mais je n’arrive pas à trouver la réponse , désolé !
    Pierre

    Répondre à ce message

  • 1

    Bonjour,

    Aujourd’hui, j’ai ce message sur le fond de carte stamen_watercolor (voir copie d’écran).
    J’imagine qu’il y a une url à modifier dans le plugin… Non ?

    Répondre à ce message

  • 1

    Bonjour,
    Je suis assez débutant sur spip et en HTML en général.
    J’ai réussi à insérer ma carte avec mes points géolocalisés avec le code : [(#INCLUREfond=modeles/carte_gis,zoom=16,limit=100,scale=oui)]
    J’ai mis ça dans le fichier « article » qui se trouve dans mon squelette.

    Seulement maintenant ma carte s’affiche sur tous mes articles...

    Si vous avez une idée, je veux bien.

    Merci d’avance.

    • Salut, il faut ajouter une boucle de test pour conditionner l’appel du modèle, cf GIS 4

    Répondre à ce message

  • 4

    Bonjour, dans le cas de photos géolocalisées, est-il possible de les placer sur une carte ? SI oui comment ? Il s’agit, pour valleeducousin.fr, de cartographier, via des photos, les plantations de résineux dans le Morvan. Merci par avance !

    • Oui, il faut activer la géolocalisation sur les documents dans la conf de GIS, ainsi les photos qui contiennent des données EXIF de géoloc se verront attribuer un point GIS lors de l’ajout du document. Ensuite, il suffit d’appeler le modèle de la carte GIS en précisant qu’on souhaite afficher l’objet « documents » et zou.

    • Merci b_b, ça a l’air super simple. Je vais faire différents tests avec différents appareils photos ou smartphones en activant la géolocalisation pendant la prise d’images. Je ferai un retour.

    • Ok, j’y suis presque : les deux images ajoutées ont bien reçu un point GIS. Par contre, j’ai essayé de créer la carte dans l’article 1748 en appelant le modèle, comme ceci... et j’obtiens une carte vide :

      <carte_gis1|objets=documents|id_article=1748|autocenterandzoom=oui>

      Il y a donc un truc qui cloche... merci d’avance pour ton aide !

    • En fait il suffisait de publier l’article pour que la carte fonctionne ! Penser donc à changer le statut de l’article de « En rédaction » vers « Publié en ligne ».

      Merci à toi.

    Répondre à ce message

  • 3
    Pierrot

    Bonjour,
    Je me demandais s’il existait une constante pour définir la limite du nombre de points géolocalisés affichables ... je sais qu’elle est par défaut à 500, je sais à priori la changer dans l’espace public en utilisant le paramètre « limit » mais comment faire si je souhaite changer ce défaut globalement et surtout en tous cas dans l’espace privé (puisque j’y arrive sans problème dans mes modèles et squelettes pour le côté public) ?
    Merci d’avance
    Pierre.

    • Quand la limite est atteinte un message est affiché afin de tout afficher, cf le commit qui introduisait ça https://git.spip.net/spip-contrib-extensions/gis/commit/85d3efe142bf34552c075eaccf9076b95c643b43

      Par contre, il n’y pas de constante pour désactiver ça, je ne sais pas si c’est un besoin récurrent, à discuter dans un ticket pour une éventuelle évolution ?

    • Pierrot

      Bonjour,

      Merci pour le retour, je posais la question car justement on a eu l’alerte :-)
      Ok je vais faire une suggestion pour cette constante, j’imagine que ç’est potentiellement récurrent pour tous ceux qui atteignent la limite mais c’est vrai aussi que c’est la première fois que j’ai ce cas même si je sens que ça pourrait arriver sur 2-3 de nos sites.
      A votre avis, est-il possible de surcharger prive/squelettes/contenu/gis_tous.html en mettant l’équivalent dans mon squelettes/contenu/gis_tous.html ? comme une rustine provisoire pour éviter de perdre ça si mise à jour (sachant qu’il faudra de toutes les façons propager les éventuelles modifs sur cette rustine ... pas très pratique je sais).

      Pierre.

    • > A votre avis, est-il possible de surcharger prive/squelettes/contenu/gis_tous.html en mettant l’équivalent dans mon squelettes/contenu/gis_tous.html ?

      Presque, la surcharge doit être dans squelettes/prive/contenu/

    Répondre à ce message

  • Bonjour,
    Comment peut-on modifier les options ’forceSeparateButton’, ’position’, ’title’, ’titleCancel’ du plugin fullscreen lors de la création, ou sinon après création. Merci d’avance.
    J’ai essayé d’utiliser le script suivant dans mon modèle pour modifier les options après création :
    $(document).ready(function () {   (function mapExists() {      var map1 = $('#map1').get(0).map;      if ((typeof map1 === 'undefined'))         return setTimeout(mapExists, 200);      map1.fullscreenControl.options.title = "Basculer en plein écran";      map1.fullscreenControl.options.titleCancel = "Basculer en mode fenêtre";      map1.fullscreenControl.forceSeparateButton = true;      map1.fullscreenControl.setPosition('topright');   })(); });
    mais le résultat n’est pas du tout satisfaisant ...

    TG

    Répondre à ce message

  • 4

    Bonjour,
    J’utilise ce super plugin pour placer sur une carte les membres d’une asso, il y a plusieurs centaines d’adresses postales à géocoder.
    Ca marche pas mal en général mais force est de constater que le geocodeur n’est pas très fiable, il est difficile de faire une stat, mais en gros, pas assez fiable pour être utiliser professionnellement.
    Je précise, que mes adresses sont à l’étranger (GB, Canada...).
    Serait-il possible d’utiliser l’API de Google Maps ?
    Merci d’avance, Jul

    • > Serait-il possible d’utiliser l’API de Google Maps ?

      Oui, tu peux surcharger l’action action_gis_geocoder_rechercher_dist() pour ça cf https://git.spip.net/spip-contrib-extensions/gis/src/branch/master/action/gis_geocoder_rechercher.php

      Le sujet a déjà été abordé par ici GIS 2 / GIS 3 et un peu par là Astuces GIS

    • J’ai réussi à exploiter le Geocoder de Google Maps désormais je récupère bien un json avec les résultats de la recherche :

      { "results" : [ { "address_components" : [ { "long_name" : "3", "short_name" : "3", "types" : [ "street_number" ] }, { "long_name" : "Churton Place", "short_name" : "Churton Pl", "types" : [ "route" ] }, { "long_name" : "Pimlico", "short_name" : "Pimlico", "types" : [ "neighborhood", "political" ] }, { "long_name" : "London", "short_name" : "London", "types" : [ "postal_town" ] }, { "long_name" : "Greater London", "short_name" : "Greater London", "types" : [ "administrative_area_level_2", "political" ] }, { "long_name" : "England", "short_name" : "England", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "United Kingdom", "short_name" : "GB", "types" : [ "country", "political" ] }, { "long_name" : "SW1V 2LN", "short_name" : "SW1V 2LN", "types" : [ "postal_code" ] } ], "formatted_address" : "3 Churton Pl, Pimlico, London SW1V 2LN, UK", "geometry" : { "location" : { "lat" : 51.4919756, "lng" : -0.138998 }, "location_type" : "ROOFTOP", "viewport" : { "northeast" : { "lat" : 51.4932867802915, "lng" : -0.1376773697084979 }, "southwest" : { "lat" : 51.4905888197085, "lng" : -0.140375330291502 } } }, "place_id" : "ChIJY1FaRuAEdkgRuwiHdJsNtiM", "plus_code" : { "compound_code" : "FVR6 QC London, UK", "global_code" : "9C3XFVR6 QC" }, "types" : [ "street_address" ] } ], "status" : "OK" }

      Par contre, le JSON fournis n’est évidement pas compatible avec GIS dans son état actuel dont la réponse attendu ressemble plutôt à cela :

      {"features":[{"geometry":{"coordinates":[-0.1390717,51.4918832],"type":"Point"},"type":"Feature","properties":{"osm_id":24975684,"extent":[-0.1392756,51.4919433,-0.1386667,51.4917555],"country":"Royaume-Uni","city":"Cité de Westminster","countrycode":"GB","postcode":"SW1V 2LN","county":"Grand Londres","type":"street","osm_type":"W","osm_key":"highway","district":"Pimlico","osm_value":"residential","name":"Churton Place","state":"Angleterre"}}],"type":"FeatureCollection"}

      Est-ce que vous souhaitez que je créé une nouvelle branche pour mettre à disposition mon travail ?

    • Je pense que ce serait plus propre de surcharger la fonction « gis_geocode_request » et non pas « action_gis_geocoder_rechercher_dist » puis que c’est bien dans le fichier inc/gis_geocode.php que l’on choisit l’API de geocoding.
      Est-ce que j’ouvre un ticket ?

    Répondre à ce message

  • 2

    bonjour,
    comment récupérer les informations longitude / latitude du visiteur ?

    • Côté client à l’aide du paramètre localize_visitor ou localiser_visiteur cf le tableau de récap ci-dessus.

    • merci. Mais comment s’en servir dans une boucle ? Comment par exemple faire en sorte de retrouver la distance entre un point géolocalisé et l’internaute ?

    Répondre à ce message

  • 1

    Bonjour,

    j’ai un petit soucis que d’autres ont déjà réglé je pense mais je n’arrive pas à trouver la réponse... en utilisant le modèle carte_gis dans une fenêtre modal, je n’arrive pas à afficher correctement la carte (elle est non-centrée avec plein de gris).
    Si je regarde du coté dev, j’ai le message suivant : vTools failed to load source map : Could not load content for https://milongacave.com/leaflet.markercluster-src.js.map: Erreur HTTP : code d’état 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE

    Merci pour le coup de main, si jamais... :-)

    Répondre à ce message

  • Bonjour,
    Certaines cartes (Openstreetmap par ex) affichent les noms dans la langue du pays, ce qui peut rendre la lecture difficile/impossible (Lao, Viet, Thai, etc.).
    Sur https://wiki.openstreetmap.org/wiki/WikiProject_Laos#Names il est dit que l’on peut forcer la langue, mais je n’ai pas trouvé comment procéder à partir du plugin.
    Serait-il possible d’ajouter cette fonction au plugin (ce serait magnifique !) ou de m’aiguiller pour le faire manuellement sur mes cartes ?
    En vous remerciant

    Répondre à ce message

  • 2
    BrunoG

    Bonjour,
    Et merci
    j’utilise localiser_visiteur pou centrer la carte sur la position du visiteur
    Comment afficher une icone personnelisée pour ce point
    Par avance merci
    Bruno

    Répondre à ce message

  • 2

    Bonsoir,

    Impossible d’installer GIS V5 ce soir sur une version toute neuve de Spip (V 4.2.2).
    Chez Gandi avec Php 8.1. et MySql 5.5.

    La table spip_gis n’est pas créée.

    Amicalement.

    Perig

    • Je complète mon précédent message car le problème ne semble pas lié à GIS. Je viens en effet de tenter d’installer le plugin « Brèves » et j’ai le même souci : la table « spip_breves » n’est pas créée à l’installation.

    • Que contiennent les log sql de SPIP qui pourraient aider à comprendre l’erreur ?

    Répondre à ce message

  • 7

    Bonjour,

    Je bataille avec une carte dans un onglet Bootstrap.
    J’ai vu ici Astuces GIS qu’il fallait utiliser invalidateSize() et j’ai aussi identifié la partie pour récupérer l’objet carte Astuces GIS

    J’ai aussi consulté plusieurs échanges dans ce forum sur le sujet.

    Cependant, lorsque je tente de mettre en place tout cela, l’actualisation ne se fait pas.
    Elle fonctionne uniquement lorsque la taille de la fenêtre du navigateur est modifiée.

    <script type="text/javascript">
    $(document).ready(function ($) {
    	$("#btn_coordonnees").on("shown.bs.tab", function() {
    		console.log("Clic sur onglet coordonnées"); 
    		var id = $('#mapadresse#ID_ADRESSE .carte_gis').attr('id');
    		console.log("id carte : " + id);
    		var map = $("#"+id).get(0).map;
    		console.log("id map : " + map);
    
    		map.invalidateSize(false);
    	});
    });
    </script>

    Les résultats dans la console :

    Clic sur onglet coordonnées
    id carte : map_previewadresse517
    id map : undefined

    Une idée de comment identifier la map correctement svp ?

    • Je viens de compléter la doc, peut-être est-ce plus clair ?

      > où XX est l’id passé en paramètre au modèle de la carte ciblée

    • Merci pour le retour rapide.

      Donc, si l’appel du modèle est [(#INCLURE{fond=modeles/carte_gis_preview,id_carte_gis=#ID_ADRESSE,id_objet=#ID_ADRESSE,objet=adresse})]
      Alors, XX devrait valoir #ID_ADRESSE, c’est bien ça ?

      Ce qui impliquerait une des 2 possibilités :

          // récupérer la carte id #ID_ADRESSE depuis la globale
          var map = map#ID_ADRESSE;
          // récupérer la carte id#ID_ADRESSE depuis le DOM
          var map = $('#map#ID_ADRESSE').get(0).map;

      Dans les 2 cas, l’erreur est à présent :

      Uncaught ReferenceError: map517 is not defined
    • C’est bien ça, mais comme toujours il est de bon usage de donner un lien vers la page qui pose problème quand on demande l’aide, ça permet aux gens qui donnent de leur temps bénévole de t’aider efficacement :)

    • C’est en local, la page n’est pas accessible :’(

      L’affichage est correct si la carte n’est pas dans un onglet.
      Si elle est dans un onglet, elle s’affiche correctement après un resize.

      Est-ce que cela est différent avec l’usage de « modeles/carte_gis_preview » ?

    • C’est bien cela.
      En appelant « modeles/carte_gis », cela fonctionne.

      Est-ce possible d’utiliser « modeles/carte_gis_preview » en ciblant la carte ?

    • Ce modèle n’est jamais mentionné dans la documentation car il est destiné à l’usage interne du plugin.

    • Merci pour le suivi b_b.

    Répondre à ce message

  • 7
    stéphane

    Bonjour,

    je viens vers vous car malgré toute mes recherches, je n’ai pas trouver pourquoi la personnalisation de l’Icône par défaut des marqueursne fonctionne pas sur la carte

    https://test-paroissebenet.spipfactory.fr/

    on appelle l la arte avec un modele

    [(#INCLURE{fond=modeles/carte_gis,
        objets=articles,
    	id_rubrique=193,
        autocenterandzoom=oui,
        lat=46.3683333,
        lon=-0.5961111,
        zoom_molette=non,}
        )]

    GIS géométrie est activé pour les trace gpx des contours

    dans l’article notre modele <carteparoisse|>

    et dans squelettes/images/marker_defaut.png

    du coup je pige pas la raison
    une idée ?

    merci beaucoup

    SPIP 4.1.7 GIT [4.1 : ab350c8a] en mutualisation

    ps/ même si je met un logo au point gis , celui-ci ne s’affiche pas
    je séche complet

    • Les markers persos sont bien référencés dans le JSON généré cf https://test-paroissebenet.spipfactory.fr/spip.php?page=gis_json&id_rubrique=193&objets=articles&limit=500

      Mais, oui, je vois bien qu’ils ne sont pas affichés, le site n’utiliserait pas une version surchargée d’un squelette ou script de GIS par hasard ?

      Tu as testé sans GIS Geometries ?

    • Pour info, j’ai testé avec GIS 4.54.3 et ça fonctionne bien, idem si j’ajoute GIS Geometries 1.11.11.

      Vois-tu es markers personnalisés dans l’espace privé sur la page ?exec=gis_tous ?

    • stéphane

      hello
      merci beaucoup de l’aide (dsl de ma reponse tardive , j’ai du m’absenter)

      donc si je desactive gis geometrie je voie bien le marker par defaut (je laisse gis geometrie desactivé )
      mais je perd donc les contour de la carte

      et pour
      Vois-tu es markers personnalisés dans l’espace privé sur la page ?exec=gis_tous ?

      non je ne les voie pas

    • stéphane

      Bonjour,
      je reviens pour completer a réponse.

      j’ai donc désinstaller le plugin gis gometrie , je voie bien le marker par défaut
      j’ai réinstaller gis géométrie et je continue de voir le marker par défaut (par contre j’ai perdu tous les contour gpx)

      j’ai 2 questions
      1° comment intégrer des kml au lieu de gpx et eventuellement se passer de gis_geometrie
      2° au survol de mon point gis ( j’ai activer tooltip=oui)

      [(#INCLURE{fond=modeles/carte_gis,
          objets=articles,
      	id_rubrique=193,
          autocenterandzoom=oui,
          lat=46.3683333,
          lon=-0.5961111,
          zoom_molette=non,
          tooltip=oui,
          height=700px,}
          )]

      et j’ai le fichier gis_article modifié pour afficher inc bulle
                      "title":[(#INCLURE{fond=json/inc_bulle, id_article}|json_encode)]

      j’ai donc la bulle qui au survol s’affiche et au clic sur le point de nouveau la bulle

      Comment faire qu’au clic sur le point on aille dans l’article ?

      https://test-paroissebenet.spipfactory.fr/

      ps/ merci pour votre aide et votre bienveillance
      @micalement stéphane

    • 1) Tu n’as pas besoin de GIS Geometries pour afficher des kml ou gpx sur la carte, cf les paramètres gpx & kml du modèle car gis.

      2) pour ça il faut jouer avec l’API javascript de Leaflet.

    • stéphane

      Merci pour les piste

      rest le truc du clic ou il nous faudra faire de profonde recherche ne voyant pas du tout ;)

      le résultat ici
      https://test-paroissebenet.spipfactory.fr/

      l’info bulle créeer et le code du modele est :

      [(#INCLURE{fond=modeles/carte_gis,
          objets=articles,
          id_rubrique=193,
          zoom=#CONFIG{gis/zoom},
          lat=#CONFIG{gis/lat},
          lon=#CONFIG{gis/lon},
          tooltip=oui,
          zoom_molette=non,
          autocenterandzoom=oui,
      	width=100%,
          kml=[(#LISTE{
              [(#CHEMIN{kml/01-Benet.kml}|timestamp|url_absolue)],
              [(#CHEMIN{kml/02-Bouille-Courdault.kml}|timestamp|url_absolue)],
              [(#CHEMIN{kml/03-Damvix.kml}|timestamp|url_absolue)],
      		[(#CHEMIN{kml/04-Liez.kml}|timestamp|url_absolue)],
      		[(#CHEMIN{kml/05-Maille.kml}|timestamp|url_absolue)],
      		[(#CHEMIN{kml/06-Maillezais.kml}|timestamp|url_absolue)],
      		[(#CHEMIN{kml/07-Mazeau.kml}|timestamp|url_absolue)],
      		[(#CHEMIN{kml/08-Nieul.kml}|timestamp|url_absolue)],
      		[(#CHEMIN{kml/11-St_Pierre_vx.kml}|timestamp|url_absolue)],
      		[(#CHEMIN{kml/13-Vix.kml}|timestamp|url_absolue)]
      		})]})]

      bien entendu nous sommes comme une épnge pour les conseils on absorbe ;)

      merci

    • stéphane

      pour les kml c’est nickel

       kml=[(#LISTE{
              [(#CHEMIN{kml/01-Benet.kml}|timestamp|url_absolue)],
              [(#CHEMIN{kml/02-Bouille-Courdault.kml}|timestamp|url_absolue)],
              [(#CHEMIN{kml/03-Damvix.kml}|timestamp|url_absolue)],
      		[(#CHEMIN{kml/04-Liez.kml}|timestamp|url_absolue)],
      		[(#CHEMIN{kml/05-Maille.kml}|timestamp|url_absolue)],
      		[(#CHEMIN{kml/06-Maillezais.kml}|timestamp|url_absolue)],
      		[(#CHEMIN{kml/07-Mazeau.kml}|timestamp|url_absolue)],
      		[(#CHEMIN{kml/08-Nieul.kml}|timestamp|url_absolue)],
      		[(#CHEMIN{kml/11-St_Pierre_vx.kml}|timestamp|url_absolue)],
      		[(#CHEMIN{kml/13-Vix.kml}|timestamp|url_absolue)]
      		})]})]

      par contre pour l’Api , on est arrivé a rien , domage on sais pas faire

      encore une fois merci pour tout tes conseil éclairés

    Répondre à ce message

  • 2
    Arnaud VILLEFRANQUE

    Bonjour, depuis la mise à jour SPIP 4.0..8 et le plugin GIS 4.53.3, je constate une erreur liée à l’ajout de coordonnées sur les objets : "Erreur 1416, « Cannot get Geometry Object from from Data You send to the geometry Fileds.

    Dans la requête SQL, le champ est inséré comme suit : » ’\’POINT(3.003779 43.183971)\’,0’" en relisant les nouvelles spécifications MySQL sur les objets géométry, j’ai modifié la requête d’insertion en : « ST_GeomFromText(’POINT(3.003779 43.183971)’) »

    Du coup cela fonctionne.

    Une correction dans le plugin semble s’imposer.

    Répondre à ce message

  • 1

    Bonjour quel est le code
    (en appel dans le texte ou en squelette)
    pour afficher les documents liés aux articles d’une branche ?
    J’ai essayé ça sans succès :

    <carte_gis_objet1943|objets=articles_branche|id_rubrique=161>

    Merci !

    Répondre à ce message

  • 4

    Bonjour,

    au passage de php 7.4 à 8.0 pour un spip 4.0.9

    $GLOBALS['spip_pipeline']['gis_modele_parametres_autorises'] .= "|nom_de_la_fonction";
    etc..

    génère une erreur
    peut-être est-ce devenu superflu ?
    la suppression de ce code ne semble pas dommageable au site qui semble refonctionner correctement.

    Claude

    • Oui, il faut faire un test avant d’utiliser la globale, cf la doc https://programmer.spip.net/Qu-est-ce-qu-un-pipeline :)

    • salut

      je le fait donc fait j’ai ce warning (et qq anomalies de mise en page)
      Warning: Undefined array key "gis_modele_parametres_autorises" in /home/clients/a3580510d3989b69fb26134d5ef34fc5/web/ficedl/bettini/squelettes/mes_fonctions.php on line 199

      avec ce code dans mes_fonctions :

      $GLOBALS['spip_pipeline']['gis_modele_parametres_autorises'] .= "|gis_bettini";
       
      function gis_bettini($flux) {
      	$flux[] = 'luoghi';
      	return $flux;
      }

      le warning disparait si je commente le GLOBAL avec un #
      si je comprends bien la fonction seule doit être dans mes_fonctions et le global lui doit être seulement dans mes_options

      Claude

    • Tu as bien lu le lien que j’ai donnée ? Il faut un test du type if (!isset....

      Et généralement, on fait ces déclarations dans mes_options.php, cf la doc toujours.

    • ok, ça devrait être bon maintenant
      c’est comme pour les formulaire des impôts, j’ai du mal à avoir les yeux en face des trous :-(
      merci
      Claude

    Répondre à ce message

  • 2

    Bonjour

    ce code, sur une page d’un mot de groupe 11 (années de parution)

    			<B_gis>
    
    [<h3>La sede dei periodici nel (#TITRE_MOT|supprimer_tags)</h3>]
    <BOUCLE_gis(ARTICLES) {gis} {id_?}>
    </BOUCLE_gis>
    [(#INCLURE{fond=modeles/carte_gis,
    	objets=articles,
    	id_mot=#ID_MOT,
    	tooltip=oui,
    	fullscreen=oui,
    	autocenterandzoom=oui})]
    
    </B_gis>

    comme sur https://bettini.ficedl.info/mot1.html

    affiche bien les points demandés mais lie les points aux articles

    j’ai lié des points géo aux articles mais aussi aux mot-clés de groupe 13 des villes.
    ici un même point recense un mot clé (groupe13 des villes) de même nom que le point, et un ou plusieurs articles.

    C’est bien cette liaison aux mot-clés des villes que j’essaie d’obtenir.
    Depuis 3 jours, je tourne en rond

    au mieux, j’arrive à

    SET{mon_tableau,#ARRAY}
    <BOUCLE(ARTICLES) {id_mot ?}>
        #SET{mon_tableau, #GET{mon_tableau}|push{#COMPTEUR_BOUCLE}}
    </BOUCLE>
    
    
    #SET{mots_choisis, #ARRAY}
    <BOUCLE_themes(ARTICLES) {id_mot ?}>
      #SET{mots_choisis, #GET{mots_choisis}|push{#ID_ARTICLE}}
    </BOUCLE_themes>
     
    <BOUCLE_memes_themes(MOTS) {id_article IN #GET{mots_choisis}} {gis} {id_groupe=13} {"<hr />"}>
    titre #TITRE :: mot #ID_MOT :: gis #ID_GIS // art #ID_ARTICLE
    </BOUCLE_memes_themes>
    <br />• #ID_MOT •<br />
    <BOUCLE(ARTICLES) {id_mot ?} {"<hr />"}>gis #ID_GIS :: mot #ID_MOT :: art #ID_ARTICLE
    	[(#INCLURE{fond=modeles/carte_gis,
    	id_carte_gis=#ID_ARTICLE,
    	objets=mots,
    	id_article=#ID_ARTICLE,
    	id_groupe=13,
    	id_mot=#ENV{id_mot},
    	tooltip=oui,
    	fullscreen=oui,
    	autocenterandzoom=oui})]
    </BOUCLE>	
    <B_memes_themes>

    qui me donne une carte par article (pour le mot=1 du groupe années) et les bons liens sur les points, alors que je souhaite tout sur la même carte

    pour la méthodologie, je doit être complètement à côté, mais je ne vois pas quelle piste suivre.

    Si vous avez une idée ?
    merci
    Claude

    • > affiche bien les points demandés mais lie les points aux articles

      Comme prévu en passant objets=articles au modèle...

      Si tu veux afficher les points liés à plusieurs objets tu peux t’inspirer de ce squelette https://git.spip.net/spip-contrib-extensions/gis/src/branch/master/json/gis_articles_plus_sites.html

    • Merci b_b, je vais étudier ce côté

      en attendant, je m’en suis sorti avec ce code

      	[(#INCLURE{fond=modeles/carte_gis,
      	objets=articles,
      	id_groupe=13,
      	id_mot=#ID_MOT,
      	tooltip=oui,
      	fullscreen=oui,
      	cluster=oui,
      	maxClusterRadius=1,
      	clusterSpiderfyOnMaxZoom=oui,
      	autocenterandzoom=oui})]

      maxClusterRadius=1 (0 semble aussi marcher) me permet de ne pas créer de cluster de points (commmunes) quel que soit le zoom et de n’afficher du coup que le nombre d’articles liés au point
      et avec clusterSpiderfyOnMaxZoom=oui au clic, j’éclate ce nombre pour voir l’éclaté de la liste des articles liés au point

      du coup, j’ai adapté mon gis_article.html en

      		<BOUCLE_art(ARTICLES){gis}{id_article ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{id_groupe ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}>
      		{"type": "Feature",
      		["geometry": (#GEOMETRY|appliquer_filtre{wkt_to_json}|sinon{{"type": "Point", "coordinates": \[#LON, #LAT\]}}),]
      		"id":"#ID_GIS",
      		"properties": {
      			"title":[(#TITRE_GIS*|sinon{#TITRE*}|extraire_multi|supprimer_numero|json_encode)],
      			"description":[(#URL_ARTICLE|lien_ou_expose{[(#TITRE_ARTICLE*|sinon{#TITRE*}|extraire_multi|supprimer_numero)]}|json_encode)][
      			(#LOGO_GIS|gis_icon_properties)][,
      			"styles": (#GEOMETRY_STYLES|appliquer_filtre{geometry_styles_to_json})]
      		}}</BOUCLE_art>

      mais comme avec cette capture :

      je n’arrive pas à faire décoller les deux suites de caractères « nom du point » et « titre d’article »

      j’explore aussi ta proposition

      et diable ! pourquoi mon code n’a pas de belles couleurs ?

    Répondre à ce message

  • 2
    Claude Delattre

    bonjour, avec la boucle

    <BOUCLE_gis_auteur(ARTICLES) {id_mot ?}>
    [(#INCLURE{fond=modeles/carte_gis,
    	objets=articles,
    	id_mot=#ID_MOT
    })]
    </BOUCLE_gis_auteur>

    le marqueur indique bien le titre du mot-clé mais donne comme lien le premier article lié au dit mot-clé ; évidemment objets=mots ne donne rien.
    Il doit exister une astuce à ajouter ou une erreur de mon code à corriger, mais je ne trouve pas
    merci d’avance

    • Claude Delattre

      et bien sur, voici le lien oublié

    • Claude Delattre

      bon, je viens de comprendre l’erreur,
      le marqueur donne le nom d’un point géolocalisé pas celui d’un mot-clé de même titre
      bref, je repars dans mes boucles

    Répondre à ce message

  • 2

    Bonjour,
    Je suis en Spip 4.1.5 avec le plugin en version 4.54.2.
    J’ai de nombreux documents rattachés souvent à des mêmes points géolocalisés.

    Avec cette boucle, aucun soucis :

    <BOUCLE_images(DOCUMENTS){gis}{id_article}{tout}{media=image}>

    Je récupère bien toutes les images liées à l’article qui sont géolocalisées

    Par contre avec cette boucle (la même sans id_article)

    <BOUCLE_images2(DOCUMENTS){gis}{tout}{media=image}>

    Seul un document est retourné par point. La raison en est que la requête SQL générée ajoute un GROUP BY gis_liens.id_gis.

    C’est contournable en faisans plusieurs boucles sur spip_gis_liens notamment,

    Mais il me semble que ce n’est ni documenté ni souhaitable.

    • 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).

      Mea culpa, ce passage indique que c’est le comportement prévu.

      Serait-ce possible de le changer ?

    Répondre à ce message

  • 13

    Bonjour,
    Avec la version GIS 4.54.1 - stable + GIS BAN 0.0.6 - stable, sous SPIP 3.2.16 avec squelette Sarka-SPIP 3.4.10 [119880] => https://laccreteil.fr , vous constaterez que le moteur de recherche en haut à droite de la fenêtre ne fonctionne pas. (Tests avec Safari et Firefox)
    Bravo pour la possibilité d’utiliser les couches IGN !
    Merci.

    • Dans la console on voit l’erreur suivante quand on tente de recherche une adresse :

      Blocage du chargement du contenu mixte actif (mixed active content) « http://api-adresse.data.gouv.fr/search/?q=brest%20&limit=5&lat=48.785830623499294&lon=2.4630832672119145 »

    • Quelle signification ?

    • Tu as cherché un peu avant de demander ? ^^

      Résumé, ton site est en https, tu lances une requêtes sur une API en http, le navigateur la bloque.

    • Pour sécuriser les échanges avec les mots de passe et autres données sensibles, j’utilise => Redirections HTTPS 0.1.3 - test - Sécuriser l’accès à certaines pages du site
      Pour certains OS et navigateur, il est préférable d’être en HTTPS, comme vous le constaterez pour de nombreux sites.
      Est-il possible de permettre l’utilisation en HTTPS par sécurité ?

    • Nan mais c’est très bien le https, c’est juste que le plugin gis ban devrait faire des requêtes en https et pas en http, donc, le problème n’est pas du côté de GIS :)

    • J’ai utilisé https://api-adresse.data.gouv.fr/search/?q=brest%20&limit=5&lat=48.785830623499294&lon=2.4630832672119145 et la réponse ne pose pas de problème, donc est-il également possible d’intégrer le HTTPS dans la requête du plugin lors de recherches ?

    • Je me répète, la question ne porte pas sur GIS mais sur GIS BAN et le bug est à corriger ici https://git.spip.net/spip-contrib-extensions/gisban/src/branch/master/inclure/inc-carte-gisban.html#L44

    • Seriez-vous en contact avez les créateurs de GIS BAN ?

    • Je viens de faire la modification sur le fichier HTML, en passant de HTTP à HTTPS, cela fonctionne maintenant => https://laccreteil.fr
      Merci

    • Seriez-vous en contact avez les créateurs de GIS BAN ?

      Non, mais tu peux leurs signaler le problème sur la page dédiée à ce plugin (cf mon post précédent).

      Si personne ne répond, fais moi signe et je m’en chargerai, ou mieux, tu peux proposer la modification toi même en t’inscrivant sur la forge :) https://www.spip.net/fr_article825.html

    • Message posté sur GIS BAN... dans l’attente d’une réponse...
      Merci pour l’aide !
      Michel
      https://laccreteil.fr

    • Pour info, je n’ai pas encore eu de réponse et le plugin GIS BAN n’est à priori toujours pas compatible avec SPIP 4 et supérieur (contrairement à GIS4)

    • 11 octobre 2022 => Bonjour @b_b , Pour info, je n’ai pas encore eu de réponse et le plugin GIS BAN n’est à priori toujours pas compatible avec SPIP 4 et supérieur (contrairement à GIS4)

    Répondre à ce message

  • 13

    Bonjour,

    Je suis confronté à un petit problème et je tourne un peu en rond. GIS 4.53, Spip 4.0.7 et Spip 3.2.15.
    Il s’agit du bouton de fermeture des infobulles sur les cartes. Sur 2 sites j’ai des genres d’annuaires avec des markers et une infobulle qui apparait au clic, que l’on peut fermer, soit en cliquant ailleurs (ça marche), soit en cliquant sur la petite croix en haut à droite.

    Sur un site ça ne marche pas du tout pour la petite croix, le lien de la petite croix est « https://www.domaine.com/#close », donc quand je clique dessus retour direct à l’accueil, et ceci sur les 2 cartes (celles qui affiche tous les membres et celle qui affiche un seul membre).

    Sur un second site, ça marche sur la carte des membres car le lien de la croix est « https://www.domaine.com/spip.php?page=annuaire#close », par contre ça ne marche pas sur la carte qui affiche un individuel avec le même genre de lien que sur le premier site ...

    J’essaye depuis 1h de retrouver ce qui fait ce lien dans l’infobulle et comment je peux agir dessus ... je me dis qu’il faut probablement ajouter peut-être un filtre url absolue ou ajouter une racine avec l’url du site ou un #SELF pour m’assurer que le lien est complet mais je n’arrive pas à retrouver ou ... j’ai essayé tous les json et je me demande si je ne fais pas fausse route ... j’ai aussi regardé les modèles carte_gis.html qui a déjà des filtres |url_absolue. A noter aussi que le lien vers la fiche de la personne est bon, seule la croix a ce souci.

    Si quelqu’un connait l’endroit ou je devrais agir ... reconnaissance éternelle !
    Pierre.

    • Ça sent le javascript perso qui agit sur les liens du site de manière trop évasive et qui impacte ceux présents dans les cartes, mais je ne pourrais pas t’aider plus sans l’adresse de la page qui expose le problème :)

    • Oui bizarre mais en même temps c’est 2 sites différents avec des js différents (faits à 4 ans d’intervalle par 2 personnes différentes même si la seconde s’est quand même inspiré de la première) et en plus sur un site ça impacterait une page et pas l’autre ... perso j’avais plus l’impression d’un problème de modèle json ou gis ...

      Ce sont des sites visibles au public donc voici les liens :
      1/ Celui ou ça ne fonctionne pas sur 2 pages :
      -  https://www.natura-scop.org/les-entrepreneurs/paysagistes/ (carte globale)
      -  https://www.natura-scop.org/pro/rochaix (carte avec un seul marqueur)
      2/ L’autre :
      -  https://www.cabestan.fr/spip.php?page=annuaire (carte globale ok)
      -  https://www.cabestan.fr/pro/gudel (carte un marqueur pas ok)

      Si t’as une idée ou une piste merci !
      Pierre.

    • Une piste, sur le second site la page où ça bug comporte une balise <base href="https://www.cabestan.fr/" /> alors que l’autre non, il y a de grandes chances que ça soit la source du bug :)

    • Oui effectivement ça semble être une piste (j’ai bien ça sur les pages avec le problème) mais ça me plonge dans un abime de perplexité, d’abord parce que je n’ai pas souvenir d’avoir jamais utilisé cette balise mais ensuite surtout parce que je ne la trouve absolument nulle part dans mes squelettes !
      Je trouve une <pre><base href="_parent" /> </pre> dans GIS et c’est tout ... je suis en train de télécharger une copie actuelle des sites en local pour bénéficier d’une recherche globale plus efficace histoire de m’assurer d’ou ça peut bien venir ...
      Un plugin pourrait ajouter ça ? (car au vu du code source on dirait qu’effectivement c’est quelque chose qui s’ajoute à postériori, ça se met entre le <head> et le <title> alors que dans mes squelettes ces 2 balises sont bien consécutives ... ). Bref je continue mes recherches.
      Merci pour cette piste !
      PC

    • A priori je confirme, je n’ai rien qui met cette balise dans mes squelettes ni même dans les plugins.
      Mais finalement je doute que ce soit la raison car si j’ajoute volontairement <base href=""> ou <base href="/"> ou encore <base href="https://urldusite.tld"> ou même <base href="https://urldusite.tld/"> ça semble empêcher l’ajout des balises <base> que tu as vues mais ça ne change rien à ce comportement ...

      Par curiosité j’ai été regarder d’autres sites qui utilisent GIS et la moitié ont le problème et l’autre moitié non, j’y perd mon latin, en tous cas nos squelettes ne mettent pas ces balises, c’est ajouté par autre chose, ou alors j’ai pas les yeux en face des trous :-)
      Pierre

    • Perso je n’ai jamais eu ce bug, et pourtant j’ai fait un paquet de site avec GIS :p Mais une chose est certaine, je n’utilise jamais les urls arbos, cherche de ce côté pour la balise base...

    • Bingo c’est ça, si je passe en « URL libres » je n’ai plus le problème. J’ai tenté le plugin « Couteau Kiss » que je ne connaissais pas, y’a une option "ne pas ajouter la balise « base’ », ça explose le site ...
      Je vais donc faire un autre message sur Discuter pour voir ... car changer d’url sur un site qui a 2-3 ans c’est un peu chaud en terme de référencement ...
      Merci !
      Pierre

    • Hop,

      car changer d’url sur un site qui a 2-3 ans c’est un peu chaud en terme de référencement

      Pas du tout, car SPIP est bon comme le pain et assure la pérennité des urls quand on change de jeu d’url :)

    • Bonjour,
      J’ai un site en développement local avec des urls arbos et gis (4.50.6
      version que j’ai pas mal customisée)
      Et je n’ai pas de problème au close du popup.
      En fait, le lien href est inutile au fonctionnement.
      Tu peux essayer de supprimer le « default » pour le click sur le lien x :

      $('body').on('click', ".leaflet-popup-close-button", function (e) {
      	e.preventDefault();
      });
    • C’est une bonne piste Michel, le bug est apparu dans Leaflet 1.8.0 et sera corrigé dans la prochaine version cf https://github.com/Leaflet/Leaflet/issues/8159 & https://github.com/Leaflet/Leaflet/commit/2da373f2ab314586e63c941bba2f1b7e7a19c208

    • Ok b_b,
      pas étonnant donc qu’avec ma version plus ancienne je n’ai pas
      ce problème.

    • Effectivement j’ai leaflet 1.8.0 ça semble une autre piste (qui remonte à mon premier diagnostic, un souci GIS ou leaflet) qui se révèle en combinaison avec la balise « base » ajoutée avec URL arbo.

      Par contre et par curiosité (puisque pour l’instant je vais garder la nouvelle ré-écriture d’url finalement satisfaisante), ce changement doit être fait ligne 10029 de leaflet-src.js c’est bien ça ... et ensuite re-minifié en leaflet.js ?

    • Si revenir à l’ancienne version n’est pas une solution retenue, alors plutôt que de modifier leaflet, le « preventDefault » (voir l’exemple ci-dessus) peut être ajouté simplement par un javascript mis directement dans la page.
      Il faut que le DOM soit déjà construit, donc soit en bas de page (après le body), soit encapsulé dans un listener de « DOMContentLoaded » par exemple.

    Répondre à ce message

  • 1

    Bonjour,

    Tout d’abord, félicitations et merci beaucoup pour ce superbe plugin GIS qui est d’une grande utilité pour la mise en ligne de cartographies sous SPIP.

    Nous l’utilisons sur notre site internet (SPIP 3.2.13 et GIS 4.51.1) et nous aimerions, grâce à lui, réintégrer dans un article de notre site cette cartographie développée sur un autre site dont nous reprenons les contenus (bien sûr, nous avons l’accord des auteurs de ce site ;)).

    N’ayant pas trouvé d’informations en ce sens dans la documentation du plugin, pourriez-vous me dire si le plugin actuel permettrait de :

    1. importer massivement les 224 points géolocalisés que nous avons à reprendre, sans avoir à les recréer manuellement un à un
    2. disposer d’un système de filtrage des points utilisable sur la carte (comme dans la carte visible par le lien fourni)
    3. disposer d’un moteur de recherche utilisable par nos internautes pour trouver des points dans cette carte (là aussi, comme dans la carte visible par le lien fourni).

    Un grand merci d’avance pour votre retour.

    SB.

    • Salut, ton cas est assez spécifique, c’est pour ça que tu n’as pas trouvé de d’info à ce sujet dans la doc :)

      1) tu peux demander à la personne qui gère la carte originale si elle peut te mettre à dispo son contenu au format geojson, ainsi tu pourras l’afficher dans ton site à l’aide d’une boucle DATA par exemple, ou avec l’option geojson du modèle de la carte.
      2) pour cela il faudra passer par une boucle data pour récupérer le contenu de la carte, et t’inspirer de cet article de la doc Tutoriel : créer une carte interactive avec GIS4
      3) pour ce dernier point, tu peux le faire à l’aide d’une simple recherche dans la boucle data qui alimente ta carte (en ajax ça sera mieux) ou à l’aide d’un plugin leaflet que tu devras insérer dans ta page

      Bref, pas de solution clé en main, désolé, mais rien d’insurmontable, c’est le genre de chose que je fais souvent sur les sites que je réalise avec GIS :)

    Répondre à ce message

  • 1

    Bonjour
    Avec Spip 4.0.6 et GIS 4.52.0

    Pour un point GIS créé sans rien mettre dans le « descriptif » du point.
    Lorsque j’insère ce point GIS dans un « objet » (événement par exemple), l’info-bulle du point GIS affiche bien le « titre » du point (ça c’est bien), mais elle affiche aussi le « descriptif » de l’objet dans lequel il est affiché : ça c’est moins bien, et pour ma part, ce n’est pas désiré...
    Je contourne alors en saisissant juste « ~ » (espace insécable) dans le descriptif du point.
    Si une option dans la page de configuration du plugin permettait de configurer ce qui est affiché dans l’infobulle, ce serait pas mal...

    Merci.

    • Salut, il n’y pas d’option pour ça, mais ce type de personnalisation est bien possible et documenté ici même dans la partie « Personnaliser le contenu des infobulles ».

    Répondre à ce message

  • 2

    Bonjour,
    Le site est sur SPIP 4.1.
    avec GIS 4.52.0
    et PHP 8.1.

    Quand je cherche à créer et associer un point géolocalisé
    j’obtiens le message d’erreur suivant :

    Erreur d’exécution ../plugins/auto/gis/v4.52.0/prive/squelettes/contenu/gis_edit.html | File […]/ecrire/inc/autoriser.php Line 106 : autoriser() : Argument #5 ($opt) must be of type array, string given, called in […]/ecrire/public/composer.php(96) : eval()’d code on line 24

    Qui peut m’aider ?
    D’avance merci.

    Répondre à ce message

  • 3

    Bonsoir
    Question sans doute un peu bête, mais je ne trouve pas.
    Parmi mes points Gis définis, je souhaiterais, par exemple pour le point Gis1, afficher sa carte dans le squelette de mon pied de page.
    Et bien, après lecture de plein de choses (documentation, forum, astuces) je n’y arrive pas. Sans doute parce que ce point n’est lié à aucun « objet » : il ne sera jamais lié ni à un article, ni à une rubrique, ni à un événement. Il n’aurait d’autre vocation que de se trouver inclus dans le pied de page...

    • Un truc comme ça ?

      [(#INCLURE{fond=modeles/carte_gis,autocenterandzoom=oui,id_gis=1})]
    • Ah ben oui, tout à fait, j’aurais dû trouver...
      Merci.

    • Je complète ma réponse :
      Placé dans le squelette du pied de mes pages,
      [(#INCLURE{fond=modeles/carte_gis,autocenterandzoom=oui,id_gis=1})] affiche bien la carte du point Gis 1.
      Mais si un point Gis est déjà présent dans le « contenu » de la page, la carte insérée dans le pied n’affiche plus qu’un grand espace vide.
      Cela est dû au fait que l’id_map=1 est utilisée deux fois : d’abord par l’insertion dans le contenu, puis par celle du pied.
      En estimant que jamais il n’y aura 10 cartes affichées dans le même contenu, j’ai complété l’inclure du pied en ajoutant : id_map=10 :

      [(#INCLURE{fond=modeles/carte_gis,autocenterandzoom=oui,id_map=10,id_gis=1})]

    Répondre à ce message

  • 1

    Bonjour,
    dans un site sous HTML5up Escape Velocity
    quand j’insère une carte du plugin GIS
    avec un modèle

    <carte_gis175|objets=articles_branche|scale=oui|id_rubrique=4|default_layer=openstreetmap_hot|fullscreen=oui|overview=oui|zoom=19|height=600px|kml=410>

    le fond de carte n’apparait pas (zone grisée à la place des dalles) sur un mobile Apple iphone 8. Il apparaît sur un Android.
    Exemple
    En revanche, les cartes appelées à partir du squelette apparaissent bien.
    Exemple

    Une idée ? Merci !

    • As-tu essayé depuis un squelette issu de la dist ? Je pense que ça vient d’une règle CSS du squelette HTML5up un peu trop évasive qui impacte les images de fond de carte (possiblement dans le reset.css j’ai déjà dépanné quelqu’un qui avait un pb similaire).

    Répondre à ce message

  • 5

    Bonjour,
    J’ai essayé d’écluser le forum tellement je crois que le sujet à dû être déjà abordé. Ceci étant dit, je n’ai rien trouvé.
    Donc, je tente de poser ma question. Mon but étant d’afficher un popup « Pouet » en cliquant sur la carte.

    La carte s’affiche sur ma page avec GIS. Elle a pour identifiant « map1 ».
    Si je tape dans la console firefox, dans cet ordre, le javascript suivant :

    1. var popup = new L.Popup();
    2. function onMapClick(e) {
      popup.setContent("Pouet");
      map1.openPopup(popup);
      }
    3. map1.on('click', onMapClick);.

    Quand je clique sur la carte, mon popup « Pouet » s’affiche bien au clic. C’est parfait.

    Maintenant, si j’ajoute le code suivant dans le squelette de ma page, mais en dessous de l’inclusion de la carte :

    <script>
        var popup = new L.Popup();
        function onMapClick(e) {
            popup.setContent("Pouet");
            map1.openPopup(popup);
        }
        map1.on('click', onMapClick);
        map1.invalidateSize();
    </script>

    À ce moment là, le popup ne s’affiche pas au clic sur la carte. Je n’ai pas d’erreur dans la console de firefox. Vous noterez que j’ai mis « map1.invalidateSize() ; » en dernier. J’ai l’impression que c’est inutile dans mon cas, car la carte est bien affichée au chargement de la page, sans action supplémentaire. Mais vu que c’est souvent cité comme une erreur récurrente, je me suis dit que je n’avais peut être pas bien compris…

    Il me faut taper manuellement ensuite ceci dans la console pour que ça fonctionne :

    1. var popup = new L.Popup();
    2. map1.on('click', onMapClick);.

    J’en conclue que si je n’ai pas besoin de retapé la fonction « onMapClick », c’est que mon code est pourtant bien pris en compte.
    Cependant, si je ne retape pas « var popup = new L.Popup() ; », j’ai une erreur dans la console pour me dire « popup is undefined ».

    Décidément, j’ai bien du mal à me faire à la logique de javascript et à son débogage.

    • Il faut passer par l’événement ready de la carte pour ça cf https://contrib.spip.net/Astuces-GIS#API-Javascript-de-GIS :)

    • Merci b_b pour cette réponse. Cependant, je ne comprend pas bien ce qu’il faut faire avec l’événement « ready ».

      Voici un exemple de ce que j’ai pu essayer sans trop y croire, et pour cause :

              var popup = new L.Popup();
              function onMapClick(e) {
                  popup.setContent("Pouet");
                  map1.openPopup(popup);
              }
              map1.on('ready', onMapClick);
              map1.invalidateSize();

      J’ai également tenté ceci, sans succès :

              var popup = new L.Popup();
              function onMapClick(e) {
                  popup.setContent("Pouet");
                  map1.openPopup(popup);
              }
              map1.on('ready', function(){
                  map1.on('click', onMapClick);
                  map1.invalidateSize();
              });

      Bref, je ne vois pas comment utiliser cet événement « ready ».

    • Je t’ai donné un exemple d’utilisation sur IRC, tiens nous au courant si tu as réussi à faire ce que tu souhaites :)

    • Merci b_b .
      Je n’ai toujours pas réussi à arriver à mes fins.
      Tu m’avais donné cet exemple : https://www.vertlejardin.fr/spip.php?rubrique34

      J’ai essayé tant bien que mal de le réutiliser. J’arrive donc à ça :

          <script type="text/javascript">
              ;(function($){
                  $(function(){
                      $('#map1').on('ready', function (){
                          var map = this.map;
                          var popup = new L.Popup();
                          function onMapClick(e) {
                              popup.setContent("Pouet");
                              map.openPopup(popup);
                          }
                          map.on('click', onMapClick);
                      });
                  })
              })
          </script>

      Et je n’arrive toujours pas à afficher le popup. :-(

    • Et voilà quelque chose qui fonctionne :

      $('#map1').on('ready', function (){
          var map = this.map;
          var popup = new L.Popup();
          function onMapClick(e) {
              popup.setLatLng(e.latlng);
              popup.setContent("<:skel_lhc:coordonnees_clic:>");
              map.openPopup(popup);
          }
          map.on('click', onMapClick);
      });
      

      Merci.

    Répondre à ce message

  • Bonjour.

    Il y a une époque au début du plugin GIS où j’avais créé mon propre plugin de surcharge pour permettre d’afficher des points de géolocalisation en fonction d’un mot-clé du site auquel ils sont liés.
    C’est ce qui est mis en œuvre ici : https://www.heureux-cyclage.org/les-ateliers-en-france.html (il faut cliquer sur la liste de calque pour voir apparaître les mots clés).

    J’aimerai reproduire aujourd’hui la même chose, mais à l’époque, j’avais dû beaucoup surcharger le plugin GIS pour arriver à ce résultat.

    Est-ce qu’il existe depuis un moyen élégant, prévu par le plugin, ou par un plugin de surcharge, de faire ça aujourd’hui ?

    Merci.

    Répondre à ce message

  • 7

    Bonjour,
    est-ce que cette Astuces GIS, pourrait permettre d’ajouter le geoportail à la liste des couches de fond de carte disponibles ?
    À lier cela à la documentation Géoservices IGN, cela donnerait qcq chose comme

    $GLOBALS['gis_layers']['dede'] = array(
    	'nom' => 'Geoportaille',
    	'layer' => 'L.tileLayer("https://wxs.ign.fr/CLEF/geoportail/wmts? … suite ?…")'
    );

    Qu’est ce que dede = identifiant technique de la couche ?
    à quoi correspond dans l’exemple /997/256/z/x/y.png ?

    • Oui, c’est bien ce qu’il faut faire, ce qui donne pour cet exemple https://geoservices.ign.fr/documentation/utilisation_web/wmts-leaflet.html#r%C3%A9sultat :

      $GLOBALS['gis_layers']['cloudmade'] = array(
      	'nom' => 'CloudMade',
      	'layer' => 'L.tileLayer(
                  "https://wxs.ign.fr/CLEF/geoportail/wmts?service=WMTS&request=GetTile&version=1.0.0&tilematrixset=PM&tilematrix={z}&tilecol={x}&tilerow={y}&layer=ORTHOIMAGERY.ORTHOPHOTOS&format=image/jpeg&style=normal",
                  {
                      minZoom : 0,
                      maxZoom : 18,
                      tileSize : 256,
                      attribution : "IGN-F/Géoportail"
                  })'
      );

      Qu’est ce que dede = identifiant technique de la couche ?

      Un identifiant interne de ton choix, qui doit être unique et sans espaces.

    • Super, Merci !
      j’ai ajouté le code ci-dessus dans config/mes_options.php (ou mes_fonctions.php) avec layer=GEOGRAPHICALGRIDSYSTEMS.MAPS pour avoir les cartes IGN , et c’est tout bon ! (alors que mes essais en modifiant 5 fichiers de GIS …)
      Il me reste à trouver comment intégrer le gestionnaire de couches, et je l’ajoute dans les astuces !…

    • Dans la Configuration de GIS, Couches proposées, on peut, avec la touche Ctrl, sélectionner plusieurs couches ! (ça ne semble pas évident à priori et pas signalé dans la doc ci-dessus …).
      Ainsi, en ajoutant control_type=oui au modèle, on peut facilement switcher d’une carte à l’autre parmi celles choisies ! (ça ne permet pas de régler le niveau de transparence mais c’est déjà bien !)

    • ça ne semble pas évident à priori et pas signalé dans la doc ci-dessus : dans installation et configuration modifier l’image simplement en suggérant que plusieurs choix sont possibles suffirait :

    • Hop,

      ça ne semble pas évident à priori et pas signalé dans la doc

      Ben c’est juste le comportement natif d’un select multiple, c’est pour ça que je n’avais jamais pensé à le signaler dans la doc :p Mais comme tu le signales, cela vaudrait peut-être le coup de le mentionner (?).

    • Bonjour,
      ça marchait tranquille depuis ce temps … Mais, renouvèlement de contrat, de clé, et après qcqs heures à m’arracher les cheveux et surfer de docs en forums, je retombe la dessus. (Serais-je le seul à utiliser gis et geoportail, ou serait-ce si facile que o).
      Ouf, je n’ai donc qu’à changer la clé geportail dans /config/mes_options.php ! (plutôt que /config/mes_fonctions.php ?)
      ce que je fais donc, en tenant compte des nouvelles directives de geoservices.ign.fr/services-web-issus-des-scans-ign : « wmts ?SERVICE=WMTS&REQUEST=GetCapabilities » :

      $GLOBALS['gis_layers']['geoign'] = array(
      	'nom' => 'Geoportail IGN',
      	'layer' => 'L.tileLayer(
                  "https://wxs.ign.fr/CLEF/geoportail/wmts?SERVICE=WMTS&REQUEST=GetCapabilities
      // minuscule majuscule ? et la suite comme avant ? (j'ai tout essayé …) :
      &request=GetTile&version=1.0.0&tilematrixset=PM&tilematrix={z}&tilecol={x}&tilerow={y}&layer=GEOGRAPHICALGRIDSYSTEMS.MAPS&format=image/jpeg&style=normal",
                  {
                      minZoom : 0,
                      maxZoom : 18,
                      tileSize : 256,
                      attribution : "IGN-F/Géoportail"
                  })',
      );

      Essayé différentes combinaisons (désactivé et réactivé GIS, nécessaire ?),
      mais ça marche pas ’o(
      Une piste ?
      (Geoportail n’est pas Open StreetMap, tout de même dommage que bing et google aient le droit eux à leur champ clé et pas geoportail. C’est vraiment trop compliqué-fermé avec lui ? Cela ne mériterait pas tout de même une petite note explicative dans la doc de GIS, pour les 0 ?)

    • Bonjour,
      donc, après l’annonce de l’IGN « au 1er février 2022 » « pour migrer sereinement vers les nouvelles URLs d’accès » … après changement de clé et plusieurs jours d’essais, de lecture de FAQ et de code, … sans aucun résultat, j’ai suivi l’ancienne doc ign.fr, et indiqué dans mes_options.php :

      $GLOBALS['gis_layers']['geoign'] = array(
      	'nom' => 'Geoportail IGN',
      	'layer' => 'L.tileLayer(
                  "https://wxs.ign.fr/CLE/geoportail/wmts?&REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE=normal&TILEMATRIXSET=PM&FORMAT=image/jpeg&LAYER=GEOGRAPHICALGRIDSYSTEMS.MAPS&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}",
                  {
                      minZoom : 0,
                      maxZoom : 18,
                      tileSize : 256,
                      attribution : "IGN-F/Géoportail"
                  })',
      );

      Soit, aucune différence ! ( presqu’ aucune : un « & » en entre « wmts ? » et « REQUEST » , des MAJUSCULES au lieu de minuscules, l’ordre des paramètres …)
      et ça marche !??… (enfin au détail que, pour le moment, 2 cartes ign25 malgré la 2e $GLOBALS [’gis_layers’][’geosat’] … ORTHOIMAGERY.ORTHOPHOTOS)
      Mystère ?⋅ Y aurait-il une explication ? Un délai de mise en route dont l’ign ne dirait rien ? Un problème de cache (entre celui de spip, malgré recalcul et celui de mes navigateurs) ?
      J’indiquecet exemple (couche 25000e de geoportail) dans la page Astuces-GIS.

    Répondre à ce message

  • 17

    Attention ! ⚠️
    Avec la dernière mise à jour GIS v4.51.0, l’affichage ne fonctionne plus, j’ai été obligé de revenir à la version précédente 4.50.6 sur un site en SPIP 3.2.11 [24473] avec Sarka-SPIP 3.4.10 [119880].
    => https://laccreteil.fr

    • Je ne reproduis pas et j’ai bien testé la modification introduite par la version 4.51.0. Afin que je t’aide il me faudrait au moins l’erreur générée, ou que tu rétablisses la version 4.51.0 sur ton site afin qu’y jette un œil.

    • lorsque la nouvelle version est installée, Il n’y a plus rien, juste un cadre blanc à l’emplacement de la carte, que ce soit avec safari ou Firefox...
      Je vais faire la mise à jour une 1/2 Heure...

    • La mise à jour du plugin « GIS » (de la version : 4.50.6 à 4.51.0) s’est correctement déroulée
      L’installation du plugin « GIS » (version : 4.51.0) s’est correctement déroulée

      La carte de fond est visible, mais pas les points, ni les tracés...

    • J’ai réinstallé une version fonctionnelle en revenant à la version 4.50.6

    • Ha ben mince, je suis dispo maintenant, je ne peux donc pas voir le bug :\

    • Donc à nouveau .... Pour une demie heure... avec la dernière version de GIS4 sur https://lacreteil.fr

    • Donc OK pour 1/2 heure, car il y a des visites sur un article avec carte GIS en ce moment https://laccreteil.fr/spip.php?article493
      Merci

    • Il y a u problème là, le site tente de charger des CSS de l’ancienne version de GIS sans succès et ça pète la carte... Tu as vidé le cache ? Le plugin est bien installé avec tous ses fichiers présents ?

    • 1) Cache vidé.
      2) Les points et autres tracés ne sont plus affichés et le centrage de la carte ne fonctionne plus suivant les points présents...

    • Plusieurs pistes...

      Uncaught No such provider (Wikimedia) jquery.js:3869:3
          readyException jQuery

      Ce fond de carte n’est plus disponible.

      et

      Uncaught TypeError: map1 is undefined
          <anonymous> https://laccreteil.fr/:506
          jQuery 2
              mightThrow
              process

      Je me demande si celle-ci ne vient pas de gisban, tu peux le désactiver pour voir ?

    • J’ai fait le nécessaire, j’ai désactivé :
      GIS BAN 0.0.6 - stable
      Base d’Adresse Nationale Française

    • C’est mieux, je pense qu’il ne te reste plus qu’à retirer wikimedia des couches proposées depuis la config de GIS.

    • La version 4.51.1 devrait corriger ce cas de figure, tu devrais pouvroi réactiver gis ban après vérification.

    • Wikimedia est enlevé, les points apparaisent à nouveau, mais pas les polygones...

    • Les polygones sont à nouveau visibles après avoir vidé une nouvelle fois le cache.

    • Nickel, merci pour le retour et le signalement, la version 4.51.1 corrigera le problème :)

    • Maintenant, avec la version 4.51.1, c’est OK sur notre site https://laccreteil.fr
      Pour une utilisation plus complexe, voici un exemple avec notre article « Répartitions cadastrales 2020 (Typologiques) - Lac de Créteil et ses abords »

    Répondre à ce message

  • 6

    Hello

    J’ai une carte avec des marqueurs SVG (voir l’astuce)

    Je cherche une astuce pour indiquer le marker actif. Il faudrait changer l’aspect du marker lorsqu’on clique dessus (l’idéal serait l’ajout d’une classe CSS sur le marqueur actif).

    Si quelqu’un a une astuce ou solution à partager :)

    • Bonjour,

      Si vous utilisez les popups (les bulles), il est possible
      de mettre un listener qui réagit au clic sur le marqueur.
      Vous pouvez alors ajouter une classe pour l’icone cliquée.

      Donc un style quelconque :

      <style>
      .marqactif {
      	border: 10px solid #3C99DC;
      	}
      </style>

      Et un listener sur la carte :

      <script>
      	map[(#GET{id})].on('popupopen', function (e) {
      		$('.leaflet-marker-icon').removeClass("marqactif");
      		$(e.popup._source._icon).addClass("marqactif");
      	});
      </script>
    • Très bien JLuc. Tant mieux si ça peut servir.

    • Oui pour sur. Yavait encore nulle part cette mention de on popupopen

    • Un grand merci (en retard) pour le script !

      le script ne fourni ne fonctionnait pas directement dans mon cas, j’ai donc mixé avec un autre script fourni par les astuces, au final cela donne :

      <script>
      $('#map1').on('click', function(){
      	this.map.eachLayer(function(layer){
      		var callback_au_pop = function(e) {
      			if (this.feature) {
      				$('.leaflet-marker-icon').removeClass("marqactif");
      				$(e.popup._source._icon).addClass("marqactif");
      			}
      		}
      
      		// exposer le marqueur actif
      		layer.on('popupopen', callback_au_pop);
      	});
      });
      </script>
    • Mais, de rien Erational.
      Ravi que ça a pu être utile.

    Répondre à ce message

  • 1

    Question multilinguisme sur le GIS :

    Lorsque j’associe des points GIS à un article qui est lié à un article traduit, les points ne sont pas automatiquement associés à sa traduction (et réciproquement si j’associe un point à l’article traduit). L’auteur doit donc recréer chaque point sur chacune des traductions : s’il les réassocie tels quels, il associe le point avec champ « titre » et « description » dans la langue originale, ce qui est dommage.

    Sur mon site en 2 langues, je pense dire à mes rédacteurs de noter les deux langues directement dans les champs titres et description du point GIS ; mais ce ne serait pas possible de faire ça sur un site avec plus de 2 langues en raison de la longueur totale du contenu.

    Je pense qu’un meilleur workflow serait que chaque point GIS contienne des champs « titre » et « description » pour chacune des langues référencées sur le site, et que les points GIS soient automatiquement associés aux traductions liées à l’article auxquels ont les rattache.

    Comme cette fonctionnalité ne dépend pas de plugins tiers, je proposerai peut-être un patch avec une implémentation de cette idée si je trouve le temps de le faire ;-).

    Répondre à ce message

  • 2

    Bonjour,

    J’ai commencé à faire mes tests sur la version 4.0 Beta de SPIP. Juste pour confirmer : on dirait que les points GIS ne peuvent être créés ou édités que par l’administrateur du site (les rédacteurs ont 0 accès à la fonctionnalité), c’est bien ça ?

    Est-ce qu’il serait possible d’ajouter la possibilité pour les rédacteurs de créer leurs propres points GIS ? Dans le cadre de mon projet il y aurait une carte commune où chaque participant pourrait ajouter des points...

    Bien sûr il faudrait aussi pouvoir rechercher les points par auteur dans liste des points GIS l’espace privé...

    J’ai essayé de voir ce que ça pourrait donner en combinant GIS au plugin « Auteurs partout », ce qui permet de rajouter un auteur à chaque point, mais ça ne permet pas au rédacteurs de créer leurs propres points.

    Une idée ? Peut-être une évolution potentielle ?

    Cordialement,

    mathieu

    • J’ai commencé à faire mes tests sur la version 4.0 Beta de SPIP. Juste pour confirmer : on dirait que les points GIS ne peuvent être créés ou édités que par l’administrateur du site (les rédacteurs ont 0 accès à la fonctionnalité), c’est bien ça ?

      Un rédacteur peut bien créer et lier des points à un de ses articles par exemple, mais pas en créer sans les lier à rien, c’est le mécanisme des autorisations qui entre en jeu.

      Est-ce qu’il serait possible d’ajouter la possibilité pour les rédacteurs de créer leurs propres points GIS ?

      C’est déjà le cas cf https://git.spip.net/spip-contrib-extensions/gis/src/branch/master/gis_autoriser.php#L41 :)

    • Oui super ! Et l’association avec « auteurs partout » fonctionne bien.

      J’ai trouvé comment organiser ma carte collaborative : je vais faire une rubrique « carte collaborative », chaque auteur crée son article dans cette rubrique et y associe son ou ses points, et la boucle du squelette récupère l’ensemble des points de l’ensemble des articles de la rubrique pour les afficher tous ensemble sur la carte générale.

      Pour le moment j’hésite encore entre utiliser le logo de l’auteur comme marqueur pour chaque point, ou bien reprendre les marqueurs éventuellement personnalisés par ces derniers dans l’interface d’administration.

      Côté interface administration c’est plus simple d’un point de vue développement et maintenance de demander aux auteurs d’uploader un logo personnalisé pour chaque point (comme ça on repère tout de suite qui a créé quel point sur la carte générale), mais c’est plus fastidieux pour eux à gérer.

    Répondre à ce message

  • 1
    liberte

    Bonjour,

    À droite, les icônes des zip mangent trop d’espace à droite. De plus, elles sont de taille inégale.

    Merci pour ce plugin que j’ai hâte d’utiliser.

    • Ha oui, c’était un effet de bord de la version beta de SPIP 4, c’est corrigé maintenant :)

    Répondre à ce message

  • 2

    Bonjour, je voudrais afficher dans une carte les documents (image avec un point gis) d’une branche.
    Je commence modeste avec le code suivant

    <code><cadre class='spip'>
    #INCLURE{fond=modeles/carte_gis_objet,
        id_carte_gis=6666,
        objet=article,
        id_objet=52,
        zoom_molette=non,
        fullscreen=oui,
        centrer_auto=oui}

    ou le modèle

     <carte_gis52|objets=documents|id_article=52>

    J’ai trois images associées à l’article 52.
    Seul le point associé à l’article apparaît sur les cartes.

    Qu’est ce que je n’ai pas compris ?

    Voir en ligne

    Merci

    • Salut, pour afficher les points des documents liés à un article ton dernier exemple devrait fonctionner, c’est bien celui là qui est en place sur ton site actuellement ?

      Pour ta première question, « les documents d’une branche » c’est quoi ? Les documents liés aux articles d’une branche ? Pour ce type de besoin il faut se créer un JSON perso en s’inspirant de ceux déjà dispos dans le plugin (le sujet a déjà été abordé plusieurs dans le forum, tu devrais y trouver ton bonheur).

    • Salut,
      contrairement à ce que je pensais,
      le modèle fonctionne
      <carte_gis52|objets=documents|id_article=52>.

      Maintenant, pour étendre à l’affichage des documents de tous les articles d’une branche, je comprends qu’il faut demander à Jason. C’est comme vouloir la toison d’or, compte tenu de mes compétences en la matière. Qui sait ? Un jour peut-être.

      Question subsidiaire : comment coder un kml pour assigner une url (mettre un lien) à la forme ou l’image affichée du kml ?

      Merci de la réponse.

    Répondre à ce message

  • 1

    Bonjour,

    J’ai rajouté avec le plugin Champs Extra un champ pour stocker une information de type de point.

    J’aimerais rajouter cette information en tant que classe CSS sur l’infobulle.

    J’au vu que les popups avaient une propriété ’className’ (https://leafletjs.com/reference-1.0.3.html#popup).

    Mais je ne trouve pas comment :

    • passer cette information dans le json (j’ai essayé avec [, « className » : « (#MON_CHAMP_EXTRA) »]
    • et qu’elle soit exploitée pour changer la classe de telle ou telle infobulle.

    J’ai une piste ici : https://gis.stackexchange.com/questions/306991/programmatically-add-classname-to-geojson-feature-popup-in-leaflet
    Mais est-ce que ça implique de faire une surcharge totale de leaflet.gis.js ?

    Merci d’avance

    Répondre à ce message

  • 3
    Philippe ROBIN

    bonsoir
    je viens d’effectuer la mise à jour du plugin de l’avant dernière version vers la dernière : le marqueur cartographique n’apparait plus.
    à la place, il y a du texte, apparemment un lien <a href=" "...> ou un nom (le nom du point en question...)

    merci

    • Tu as bien vidé le cache de ton site et de ton navigateur ? Quelle est l’adresse de la page qui affiche le bug ?

    • Philippe ROBIN

      le cache ... le cache ... effectivement ...
      merci

    • Règle n°1, toujours vider ses caches avant de demander du temps à des bénévoles :)

      De rien :p

    Répondre à ce message

  • 1
    Olivier

    des idées en passant
    -  paramètre : centerandzoom = -1
    fonctionnement : effectue le centrage et le zoom pour inclure l’ensemble des points, puis « recule » le zoom d’un cran (pour pas que les points soient collés au bord)

    -  introduire une fonction centrer, qui ne shunte pas, s’il y a plusieurs points, le zoom défini par l’utilisateur en paramètre.
    le zoom reste celui défini par l’utilisateur, mais la carte est centrée sur le barycentre de l’ensemble des points (équivalent à lat=xx|lon=yy|zoom=z avec xx et yy calculés

    -  introduire centerandzoom=pays, qui inclut dans les limites de la carte affichée l’ensemble du pays auquel appartient le/les points

    (on détermine le pays auquel correspond le/les points, puis on récupère la boundingbox de ce pays et cela devient la bounding box de la carte)
    ainsi, quel que soit la taille du pays (brésil/belgique), on voit avec le bon niveau de zoom l’ensemble des points de ce pays (étendable à région, département...)

    merci !

    Répondre à ce message

  • 5

    Bonjour,
    dans un article avec un point geolocalisé, j’affiche une carte avec tous les points de la rubrique.

    <carte_gis7|objets=articles_branche|scale=oui|id_rubrique=4|default_layer=openstreetmap_hot|fullscreen=oui|overview=oui|zoom=19>

    Je voudrais que la carte soit centrée sur le point de l’article. Une idée ? Merci !

    • Ça n’est pas possible en utilisant le modèle, pour cela il faut passer par un appel depuis le squelette, il y a déjà des exemples à ce sujet dans le forum ici présent.

    • J’ai scruté 15 pages d’historiques du forum. Rien ne m’est apparue facile d’accès. J’apprécierais énormément qu’une bonne âme me donne un coup de main là-dessus. Merci !

    • Pour info, il y a u moteur de recherche au dessus du forum, et tu trouveras ton bonheur avec la recherche suivante « centrer article », c’est cadeau :)

    • Merci ! Y a plus qu’a !

    • Je ne sais pas comment, mais ça marche !

      <BOUCLE_gis(GIS){id_article}>
      [(#INCLURE{fond=modeles/carte_gis,
         id_carte_gis=44,
         lat=#LAT,
         lon=#LON,
         zoom=19,
         objets=articles_branche,id_rubrique=4})]
      </BOUCLE_gis>

      Merci !

    Répondre à ce message

  • 3

    Bonjour,

    Sur le site de territoire valleeducousin.fr on aimerait développer l’utilisation des cartes d’une façon très basique : avec des images qui se placeraient automatiquement au bon endroit grâce à leurs données SIG.

    Exemple concret d’un article avec des images géolocalisées, qui fonctionnait très bien à l’époque où l’on utilisait spip_geoportail :
    Renouée du Japon dans la vallée du Cousin : Le Parc poursuit le combat en bouturant des saules

    Cela permettrait de rendre l’utilisation des cartes plus facile à plusieurs de nos membres, vu que les photos prises par smartphone sont en général géolocalisées.

    Avec des cartes thématiques de type :

    • patrimoine
    • arbres remarquables
    • feuillus en danger....
    • enrésinements
    • coupes à blanc du Morvan

    Etc...

    Est-ce que la question a déjà été traitée ? (Je n’ai pas trouvé en tous cas).

    Merci par avance !

    • Tout cela est déjà prévu ici :
      https://git.spip.net/spip-contrib-extensions/gis/src/branch/master/gis_pipelines.php#L86

      Pour peu que tu aies activer les points GIS sur l’objet « Documents » dans sa config.

      Dans ce cas, si une image a des méta-données de localisation : un point GIS est généré automatiquement + associé au document en question.

      Et donc après tu les affiches comme tu veux. :)

    • Héhé, et pourtant je répondais déjà à ce sujet à un certain « Thiébaut » en 2016 https://contrib.spip.net/GIS-4#comment487686 :)

      PS : il y a un champ de recherche au dessus des messages de forum qui s’avère bien pratique.

    • Oups ! Mission « Sauver la face » = impossible !!! :-)

      Merci à tous deux pour vos réponses...

      J’avais complètement oublié ce fil... que j’avais ouvert en 2016. Comme quoi j’y tiens à cette fonctionnalité... Il devait y avoir d’autres obstacles car j’avais laissé tomber.

      Quoiqu’il en soit, en ajoutant à l’article la photo du fil en question, qui semblait avoir été validée au niveau des métadonnées SIG, je n’arrive à rien.

      J’utilise bien le code d’intégration :

      <carte_gis1|objets=documents|id_article=253>

      J’ai aussi fait « recalculer la page »....

    Répondre à ce message

  • 1

    Bonjour,

    Je teste Gis4, l’affichage d’une carte à partir d’un article se passe parfaitement mais mon besoin est plus compliqué et je n’arrive pas voir comment faire.

    J’ai des points qui représentent des sites d’un groupe et des points qui représentent les sites d’un autre groupe.
    Je voudrais afficher tous les points avec une signalitique différente en terme de couleur afin de pouvoir avertir un-e visiteur-euse que ce point appartient à tel groupe ou à tel autre groupe. Avec une petite légende qui donne l’explication du groupe en fonction de la couleur.
    Cela marche dans certains sites comme celui-là (https://www.vertlejardin.fr/spip.php?rubrique34) mais je ne vois pas comment le faire sans vraiment écrire du code (Je ne suis pas spécialement un codeur).
    L’autre possibilité serait d’avoir une article où l’on déclare une carte pour le premier groupe et un autre article pour le second groupe de point mais je ne vois pas comment déclarer deux cartes et à chaque carte lui affecter certains points et pas d’autres

    En fait sans développement je ne vois pas comment faire, est-ce possible uniquement pas l’espace privé ?

    Et si il faut développer je ne vois pas trop par quoi commencer.

    Merci de m’orienter dans tout cela

    Patrick

    Ps : J’utilise GIS4 et mon site est sous SPIP 3.2.8 avec un plugin HTML5UP-editorial que je reconditionne pour mes besoins

    Répondre à ce message

  • 2

    Bonjour,

    est-il possible d’ajouter le fond de carte Cassini vectorielle développer par Makina-corpus.com ?
    Le style est au format Mapbox GL est disponible sur Github : makinacorpus/cassini-gl-style.
    Merci
    Cordialement

    • Salut, non ça n’est pas possible par défaut car GIS ne prend pas en charge les fonds de carte au format Mapbox GL. Par contre tu dois pouvoir le faire de ton côté en bidouillant en attendant qu’un jour peut-être GIS le prenne en charge.

    • Merci de ta réponse !

    Répondre à ce message

  • 6

    Bonjour,
    ATTENTION,
    La mise à jour de GIS 4.49.2 vers la version v4.50.1 entraine une décomposition de l’affichage en divers carrés de la carte qui sortent du cadre de celle-ci.
    Pour régler le problème je suis revenu à GIS 4.49.2.
    Le site est en SPIP 3.2.8 [24473], affichage avec SAFARI.
    https://laccreteil.fr

    • Pas du tout, le problème est chez toi car ton site n’arrive pas à charger les CSS de leaflet (la librairie de carto utilisée par GIS). C’est visible dans l’onglet réseau de l’outil de dev de firefox.

    • Attention ce signalement n’est pas uniquement pour notre site, car en ce qui nous concerne nous allons rester sur la version GIS 4.49.2 qui fonctionne... jusqu’à la prochaine, réellement stable et fonctionnelle.
      -  Rassurez-moi, GIS ne doit pas être utilisé uniquement avec Firefox, n’est-ce pas ?
      j’ai constaté que des fonctionnalités ne fonctionnent plus sur SAFARI, mais sont encore actives sur Firefox (par exemple : plein écran).
      Pourriez-vous tester sur différents navigateurs Web ?
      Bonne soirée.
      Michel
      https://laccreteil.fr

    • Pour l’instant ce n’est que sur votre site qu’il y a ce problème.
      Il y a quelque chose qui vous permet de dire que le problème n’est pas que pour votre site ?

    • 1) C’est avec la couche Esri WorldImagery que cela s’est passé, pas avec les autres fonds de cartes...
      2) J’ai changé de couche initiale et effectué la mise à jour, c’est OK maintenant.
      3) En changeant de fond, c’est maintenant OK.
      4) J’ai vidé tous les caches à plusieurs reprises.

      Par contre certaines fonctionnalités semblent bloquées avec SAFARI, en particulier « Plein écran ».
      Merci et bon dimanche.

    • « Plein écran ». fonctionne maintenant sur Safari (Bonne nouvelle !)

    Répondre à ce message

  • 5

    On peut définir (depuis SPIP3.1) _JS_ASYNC_LOAD dans mes_options pour que le javascript concaténé par le compresseur soit chargé de manière asynchrone. GIS charge aussi son javascript de manière asynchrone, mais utilise jQuery.ajax pour cela, ce qui échoue car jQuery n’est pas encore dispo quand on a demandé son chargement asynchrone.
    Du coup j’imagine qu’il faudrait attendre que jQuery soit dispo pour charger le script GIS, ou insérer le script de GIS dans le fichier concaténé... Comment faire actuellement si ya moyen de faire ?

    • J’imagine attendre que jquery soit chargé (en bouclant sur place avec un timer) et déclancher le chargement à ce moment (comme présenté là par exemple)
      Ou bien charger leaflet async autrement qu’avec jquery. A priori, Leaflet n’a pas besoin de jquery mais peut être GIS4 en a t il besoin dans le public.

    • J’ai l’impression que la surcouche gis_js de leaflet utilise jquery en plusieurs endroits.
      Donc il faut vraiment attendre que jquery soit chargé avant de charger gis ... mais ce serait bien de charger jquery en asynchrone.

    • > J’ai l’impression que la surcouche gis_js de leaflet utilise jquery en plusieurs endroits.

      De quel fichier tu parles ?

    • > GIS charge aussi son javascript de manière asynchrone, mais utilise jQuery.ajax pour cela, ce qui échoue car jQuery n’est pas encore dispo quand on a demandé son chargement asynchrone.

      Pourtant ce commit laisse entendre que GIS est compatible avec jQl :

      https://git.spip.net/spip-contrib-extensions/gis/commit/2864ca32edeb683e433c2cfa16c3fe4151847024

      À voir avec Cedric, car perso je n’ai jamais utilisé cette fonctionnalité.

    • Alors il se peut que ce soient les interactions avec le code spécifique au site. Merci.

    Répondre à ce message

  • 8
    Michel Suquet

    Bonjour,

    pour notre site, nous utilisons votre plugin avec un fichier kml qui est dans un document. Cependant, on aimerait utiliser l’url suivante : https://stats.sambaedu.org/carte/se4.kml

    Cependant, en remplaçant le n° id par cette url, cela ne fonctionne pas : voyez-vous pourquoi ?

    Voici ce que j’ai mis :
    <carte_gis1|cluster = oui|clusterMaxZoom = 11|maxClusterRadius = 80|clusterShowCoverageOnHover = oui|clusterSpiderfyOnMaxZoom = oui|centrer_fichier=non|overview=oui|zoom=1|kml=90>

    L’article de notre site : cartographie des se4.

    et à la place de 90, d’après la doc, on pourrait mettre l’url https://stats.sambaedu.org/carte/se4.kml mais on obtient une carte sans les marqueurs.

    Cordialement,

    Michel Suquet

    • > Cependant, en remplaçant le n° id par cette url, cela ne fonctionne pas : voyez-vous pourquoi ?

      Peut-être une restriction réseau/sécu à cause de la conf de votre serveur, regarde dans la console de firefox pour y repérer d’éventuelles erreurs js ou réseau. Il faudrait que tu mettes en ligne une page qui affiche le problème pour que je puisse t’en dire plus.

    • Michel Suquet

      Bonsoir,

      voici un article que j’ai publié avec l’url qui devrait convenir. J’ai mis en-dessous de la carte gérée par le plugin une iframe pour montrer une carte sur laquelle apparaît les marqueurs.

      J’ai regardé dans l’inspecteur de mon navigateur mais je ne sais pas ce qu’il faut en déduire… Je pense que c’est dans une balise « script » mais je n’en suis pas sûr.

      Merci pour votre aide.

      Cordialement,

      Michel Suquet

    • Dans ta page de démo, on voit dans le source kml: [""], ce qui indique que le modèle de carte ne reçoit aucune url en paramètre. Quel est l’appel exact du modèle de la carte que tu utilises dans ta démo ?

    • Michel Suquet

      J’ai mis ceci :
      <carte_gis1 | centrer_fichier = non | zoom = 1 | kml = https://stats.sambaedu.org/carte/se4.kml>

      l’url pointe sur le fichier kml.

    • Chez moi ça passe cf https://labo.eliaz.fr/article143.html

      Essaye peut-être en supprimant les espaces dans l’appel de ton modèle ?

    • Michel Suquet

      en mettant ceci ?
      <carte_gis1|centrer_fichier=non|zoom=1|kml=https://stats.sambaedu.org/carte/se4.kml>

      Je viens de le faire, sans succès. Il doit y avoir autre chose qui coince…

      En tous cas, que cela fonctionne sur votre site est une bonne nouvelle : cela veut dire que cela va aussi fonctionner sur notre site. Reste à trouver comment…

      Merci pour votre aide, encore une fois.

    • Re, je pense que le problème vient du fait que la fonction copie_locale() n’arrive pas à copier le kml que tu passes en paramètre cf ce code https://git.spip.net/spip-contrib-extensions/gis/src/branch/master/gis_fonctions.php#L463

      Tu peux le confirmer en ajoutant cet url en tant que document distant puis en tentant de le copier dans le site, si ça foire, le problème est bien celui-ci. Cela peut provenir d’un problème de configuration serveur, par exemple curl qui n’arrive pas à récupérer le contenu de cette url depuis votre serveur, etc.

    • Michel Suquet

      Bonjour,

      on a réussi à mettre en fonction la carte ! Hourra :-)
      https://www.sambaedu.org/Cartographie-des-se4

      C’était un problème de résolution dns. Une fois corrigé, cela est tombé en marche®.

      Merci pour nous avoir aiguillé vers la cause de l’erreur.

      Je ne sais pas si on pourra aussi importer les couleurs des marqueurs.

      Cordialement,

      Michel Suquet

    Répondre à ce message

  • 2

    Hello

    Je suis un grand flemmard ....

    Est que quelqu’un connait l’astuce pour convertir le latitude et longitude stocké par GIS sous ce format plus humain ?

    35°00'00.0"N 103°00'00.0"E

    Vu depuis par ex. https://www.atlasofplaces.com/photography/history-images/

    Répondre à ce message

  • 2

    Bonjour,
    j’utilise GIS avec bonheur et j’ai déjà utilisé javascript sur une carte, mais je sèche sur la manière de surcharger la création des clusters : je veux que leur taille dépende de leur nombre de points contenus et que leur couleur dépende de leur localisation et non de leur nombre.
    La librairie prévoit bien la personnalisation des icones de clusters ici dans le source : il « suffit » que je définisse L.MarkerClusterGroup.options.iconCreateFunction avec ma propre fonction.
    J’ai donc créé ma fonction myIconCreateFunction() et elle fait bien le boulot = elle récupère le _latlng du cluster reçu en paramètre, calcule la bonne couleur et l’insère en background-color du DIV créé. Ça marche bien quand je met son code en dur à la place de celui de la fonction par défaut dans la librairie... mais comment faire dans ma page SPIP+GIS l’équivalent de L.MarkerClusterGroup.options.iconCreateFunction = 'myIconCreateFunction' pour qu’e ma fonction soit appelée automatiquement à la place du comportement par défaut... et sans surcharger le source de la librairie comme je le fais pour tester ?

    • Tu peux le faire comme ce qui suit par exemple. Ici on personnalise les icones des clusters en fonction du nombre d’enfants qu’ils « contiennent », puis on génère un marker personnalisé

      $('#map1').on('load', function(){
          this.map.options.clusterOptions.iconCreateFunction = function(cluster) {
              var childCount = cluster.getChildCount();
              var c = ' marker-cluster-';
              if (childCount == 1) {
                  c += 'dot';
              } else if (childCount < 10) {
                  c += 'small';
              } else if (childCount < 50) {
                  c += 'medium';
              } else {
                  c += 'large';
              }
              return new L.DivIcon({ html: '<div><span>' + ((childCount == 1) ? '' : childCount) + '</span></div>', className: 'marker-cluster' + c, iconSize: new L.Point(40, 40) });
          }
      });
    • Ouiiiii ça marche :-D
      Merci b_b !

    Répondre à ce message

  • 1

    Bonjour,

    Quelque chose de relativement simple m’échappe.

    J’ai un « point » GIS, qui est un polygone, et qui est lié à un article.
    Lorsque je fais l’appel à l’inclure dans mon squelette avec le paramètre centrer_auto=oui, le niveau de zoom originel du point GIS n’est pas pris en compte. Idem avec centrer_auto=non.

    N’y a t’il pas d’héritage du niveau de zoom du point en passant par le modele carte_gis_objet ?

    #INCLURE{fond=modeles/carte_gis_objet,
    objet=article,
    id_objet=#ID_ARTICLE,
    centrer_auto=oui,
    fullscreen=oui}	

    Merci pour votre aide !

    • Non, si tu utilises centrer_auto, la carte se débrouille pour afficher tout le contenu demandé, et donc le niveau de zoom s’adapte en fonction du contenu à afficher. Si tu veux un zoom défini manuellement, il faut définir le centre et le zoom de la carte manuellement.

    Répondre à ce message

  • 1

    Bonjour, j’ai un soucis avec GIS4 et albums.
    Je souhaite avec afficher une carte avec les albums ayant une geoloc.

    J’appelle ma carte comme ça :

    [(#INCLURE{fond=modelescarte_gis,zoom_wheel=non,fullscreen=oui,zoom=5,autocenterandzoom=oui,limit=100,cluster=oui,scale=oui,objets=albums,tooltip=oui,id_map=2,height=600px})]

    et j’ai crée un crée gis_albums.html dans le dossier JSON à la racine de mon squelette

    avec ce code :

    		<BOUCLE_alb(ALBUMS){gis}{id_album ?}{id_article ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{id_groupe ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}>
    		{"type": "Feature",
    		["geometry": (#GEOMETRY|appliquer_filtre{wkt_to_json}|sinon{{"type": "Point", "coordinates": \[#LON, #LAT\]}}),]
    		"id":"#ID_GIS",
    		"properties": {
    			"title":[(#URL_ALBUM|lien_ou_expose{[(#TITRE_GIS*|sinon{#TITRE*}|extraire_multi|supprimer_numero)]}|json_encode)],
    			"description":[(#DESCRIPTIF_GIS|sinon{#TEXTE}|json_encode)][
    			(#LOGO_GIS|gis_icon_properties)][,
    			"styles": (#GEOMETRY_STYLES|appliquer_filtre{geometry_styles_to_json})]
    		}}</BOUCLE_alb>

    Je vois bien une carte mais pas les points. J’ai raté un truc ? ça vient peut etre d’album ?

    Merci

    • Salut, comme très souvent (pour ne pas dire toujours), un lien vers la page qui affiche le bug nous nous aidera grandement à t’aider :)

    Répondre à ce message

  • 6

    Pouvez-vous m’aider s’il vous plaît, ma carte GIS4 ne s’affiche pas sur les appareils mobiles : www.lahy.org/map

    • Salut, le fond de carte ne s’affiche pas car le serveur de tuiles de wikimedia renvoie une erreur 429 (too many requests) visible dans l’inspecteur réseau des outils de debug. Mais l’erreur envoyée ne semble pas être le problème, c’est juste que ce fond de carte ne permet pas un niveau de zoom suffisant, tu peux le voir en dézoomant, les tuiles s’affichent bien.

      As-tu essayé avec un autre fond de carte ? Est-ce bien le bug que tu rencontres ?

    • Bonjour b_b, merci pour votre aide, je suis passé de Wikimedia à Google Maps et cela fonctionne UNIQUEMENT si j’ajoute

      #INSERT_HEAD

      http://lahy.org/spip.php?page=test (*)
      Cela nécessite que je supprime mes propres CSS et JS, car ils sont en conflit avec les fichiers chargés.
      Pouvez-vous me dire les fichiers CSS / JS nécessaires à l’affichage de la carte GIS4 sans avoir besoin de #INSERT_HEAD.
      Merci d’avance

      NB: Je n'ai vu aucune astuce dans la documentation ci-dessus selon laquelle #INSERT_HEAD est requis pour que GIS4 fonctionne sur les squelettes ni aucune information sur les fichiers CSS / JS requis pour utiliser GIS4 sur les pages publiques.

      (*) Absolument la carte a besoin d’une Clé GoogleMaps, je l’ajouterai une fois que tout sera réglé.

    • Je n’ai vu aucune astuce dans la documentation ci-dessus selon laquelle #INSERT_HEAD est requis pour que GIS4 fonctionne

      C’est normal, cette balise est nécessaire au fonctionnement de presque tous les plugins (dès qu’ils proposent un js ou une css).

      Si tu veux refaire le travail de GIS à la main dans ton coin, tu n’as plus qu’à insérer les éléments qu’il insère par insert_head cf https://git.spip.net/spip-contrib-extensions/gis/src/branch/master/gis_pipelines.php#L13 & https://git.spip.net/spip-contrib-extensions/gis/src/branch/master/gis_pipelines.php#L27

      J’arrête là pour ma part, car on sort clairement du cadre du Service Après Don pour un usage classique tu plugin.

    • Merci beaucoup b_b pour votre aide extraordinaire, ces liens sont très utiles !. Absolument, si je veux aller plus loin je dois faire un don, je suis un utilisateur intermédiaire de Spip.

    • Ha mais non, tu n’as pas à faire de don :p Le SAD c’est l’expression spipienne du SAV, rien de plus, on donne est on assure le service quoi :)

    • Ah ! Ok :) Merci beaucoup, GIS4 semble très intéressant, mais j’ai eu mal avec #INSERT_HEAD (en conflit avec mon CSS et JS) ainsi que le problème avec d’autres fonds de cartes (tels que Wikimedia) qui ne s’affiche pas sur les téléphones mobiles (même en dézoomant). Vous êtes un homme très serviable, j’apprécie votre réaction et je souhaite plein succès au GIS.

    Répondre à ce message

  • 3

    Merci b_b, ça fonctionne parfaitement sans les espaces !
    (carte jointe)
    Mais si je les avais mis, c’est parce qu’ils y étaient dans ta documentation https://contrib.spip.net/GIS-4
    Dernier point de détail : à quoi sert l’instruction
    clusterSpiderfyOnMaxZoom = oui ?
    Elle est( valable uniquement pour les clusters ou pour tous les points de la carte ?
    Encore un grand merci !

    • Content ua ça fonctionne pour toi.

      Mais si je les avais mis, c’est parce qu’ils y étaient dans ta documentation

      Aucune trace d’espace dans les exemples de la présente doc.

    • Désolé, mais les espaces figurent bien dans la documentation (voir copie jointe)
      Peut-être aussi pourrais-tu en profiter pour plus expliquer les clusters pour d’autres béotiens comme moi ?
      Enfin tu ne m’as pas répondu sur l’utilité et le fonctionnement de l’instruction clusterSpiderfyOnMaxZoom = oui ?
      Quoiqu’il en soit, un grand merci pour ta promptitude et ta gentillesse !

    • Ha dans le tableau explicatif, oui, c’était certainement pour aider à la lisibilité, mais aucunement dans les exemples de code :p

      Sinon, pour la doc des clusters, désolé mais je ne vais doublonner la doc de la librairie qui gère ça, cf un de mes liens précédents :)

    Répondre à ce message

  • 6

    Bonjour,
    Quel est l’utilité des clusters et comment les utiliser dans un modèle d’article ?
    Y a t-il une documentation à ce sujet sur le net ?
    Merci à tous...

    • Salut, pour l’utilité de la chose, je te laisse imaginer la carte suivante si elle affichait ses 19 000 points sans cluster https://www.lestaxinomes.org/spip.php?page=carte :p

      Pour les utiliser dans un modèle d’article, il faut passer le paramètre cluster=oui au modèle comme indiqué dans la présente doc.

    • Merci à b_b d’avoir pris le temps de me répondre...
      J’avais bien compris qu’il fallait mettre le cluster à oui, mais ma question était sur tout de savoir comment réaliser un cluster ?
      Par exemple, si j’ai 10 points dans Paris, comment réaliser un cluster « Paris » qui affichera ces 10 points quand on clique dessus ?
      C’est vrai, je ne suis pas très doué mais je trouve quand même GIS génial...

    • Ok, la question me semble plus claire ;) En fait, il n’y a rien à faire, car l’algo de clustering est autonome, il rassemble les points par proximité et non par ville ou autre. On peut tout de même agir un peu sur son fonctionnement en mettant les mains dans le javascript cf https://github.com/Leaflet/Leaflet.markercluster/#other-options

    • Encore merci à b_b pour ses réponses aussi rapides ! Bientôt, il va me répondre avant que je ne pose mes questions !
      Dons, à part cluster=OUI, il suffit de rajouter maxClusterRadius = xx pour que les clusters se créent automatiquement ? Sinon, que faut-il ajouter d’autre ?
      Tu parles d’une doc, mais je n’en n’ai pas trouvé sur ces clusters justement ?
      Si c’est( toi le concepteur ou un des concepteurs de GIS, toutes mes félicitations...

    • J’ai mis cela dans l’article et ça ne fonctionne pas (voir carte jointe) :
      <carte_gis1|lat = 47.09|lon= 1.50|zoom = 6|height = 600px|limit =800|scale = oui|zoom_molette = non|clusters = oui|maxClusterRadius = 80>
      Me serais-je trompé ? :))

    • Et sans les espaces dans les paramètres c’est pas mieux ?

      Sinon, désolé mais sans lien vers la page en question je ne peux t’aider plus.

    Répondre à ce message

  • 4

    Bonjour, Y a t-il des problèmes entre GIS et SQLITE. Je ne suis pas certain que cela puisse fonctionner. Dans le backoffice dans mes articles (où je comptais afficher des maps) j’ai des messages d’erreur mettant en avant le manque de Tables.

    Erreur SQL HY000 / 1
    no such table: spip_gis_liens
    SELECT * FROM spip_gis_liens WHERE objet='article' AND id_objet=18
    no such table: spip_gis
    SELECT EXTRAIRE_MULTI(titre, 'fr') AS multi, gis.id_gis, gis.titre FROM spip_gis AS 'gis' WHERE 0=1 ORDER BY multi

    Merci

    • À ma connaissance non, peut-être que tu as eu un problème lots de l’installation du plugin (et donc lors de la création des tables), à voir dans tes logs. Sinon, solution simple, désinstaller et réinstaller le plugin, ou passer par la page de maintenance de la base pour réparer les tables.

    • Il ne me semblait pas non plus. J’ai déjà fait des install sqlite et GIS me semble t-il. je sais qu’il y a potentiellement un pbm avec Geometry, mais le plugin n’est pas installé.
      Je viens de désinstaller et réinstaller, même soucis, mêmes messages d’erreur.
      J’utilise SPIP 3.2.7 [24473]
      Je crois qu’il va falloir que je trouve autre chose !!

    • Active les logs verbeux et regarde s’il y a des erreurs à ce sujet...

    • OK tout roule. J’ai utilisé la réparation de Base et tout est rentré dans l’ordre. Merci

    Répondre à ce message

  • 1

    Pour info, après avoir installer puis désactiver (et non désinstaller) le plugin GIS-Geometries, la création d’un nouveau point était impossible sur un de mes sites (3.2.7) : retour sur le formulaire vide à l’enregistrement du point. Voir log ci-dessous.
    La désinstallation propre de GIS-Geometries a résolu le problème.

    Si ça peut éviter à d’autres de passer trop de temps à débuguer :)

    2020-07-30 11:19:58 127.0.0.1 (pid 16280) :Pri:debug: autoriser_gis_creer_dist(creer, gis, 0, jeanmarie) : OK
    2020-07-30 11:19:58 127.0.0.1 (pid 16280) :Pri:ERREUR: Erreur mysql 1416
    2020-07-30 11:19:58 127.0.0.1 (pid 16280) :Pri:ERREUR: Erreur mysql 1416
    2020-07-30 11:19:58 127.0.0.1 (pid 16280) :Pri:ERREUR: Erreur 1416 de mysql: Cannot get geometry object from data you send to the GEOMETRY field
    in XXXX\plugins\auto\gis\v4.48.1\action\editer_gis.php L41 [sql_insertq(),gis_inserer(),action_editer_gis_dist(),formulaires_editer_objet_traiter(),formulaires_editer_gis_traiter_dist(),traiter_formulaires_dynamiques()]
    INSERT INTO spip_gis () VALUES ()
    • Héhé, c’est pourtant indiqué dans la doc du plugin concerné :p

      Malgré cela, il est recommandé de désinstaller le plugin si vous n’en avez plus besoin, afin d’être certain d’effacer le champ geo (de type GEOMETRY) de la table gis, sans quoi vous rencontrerez une erreur SQL lors de la création d’un nouveau point avec GIS.

      https://contrib.spip.net/GIS-Geometries

    Répondre à ce message

  • 4
    olivier

    j’ai une erreur à l’utilisation.
    -  la carte s’affiche correctement (de manière standard)
    -  mon navigateur détecte une erreur 404 à l’appel de https://monsite.com/leaflet-src.js.map
    -  je n’ai pas possibilité d’afficher d’autres fonds de carte
    -  sur la page de configuration du plugin, dans « désactiver certains plugins », il y a « kml.js, gpx.js, topojson.js, control.Fullscreen.js, control.minimap.js, leaflet.marketcluster-src.js », sans possibilité de retirer quoi que ce soit. Je suppose que c’est le problème
    Une idée ?

    spip 3.2.7 mutualisé ; GIS 4.48

    • Salut,

      mon navigateur détecte une erreur 404 à l’appel de https://monsite.com/leaflet-src.js.map

      Je crois avoir déjà vu ça, mais je ne le reproduis pas...

      Pour le reste, comme toujours, un lien vers la page en question nous permettra de t’aider, sans ça ton message est un appel dans le vide :p

    • olivier

      visible ici (+config plugin) :
      https://www.olivier-testa.com/-expeditions-.html
      Il me semble que les scripts ne sont pas trouvés (path ?)

    • olivier

      bonjour, une idée ou un point de départ pour comprendre ? faudrait-il réinitialiser quelque chose ?
      merci !

    • Hop, tentons de répondre à toutes les questions :

      > mon navigateur détecte une erreur 404 à l’appel de https://monsite.com/leaflet-src.js.map

      Mon firefox ne m’indique aucune 404 sur ta page, sauf une à propos d’une image de ton site cf https://www.olivier-testa.com/sites/olivier-testa.com/squelettes/css/fond-ligne-niveau.png

      > je n’ai pas possibilité d’afficher d’autres fonds de carte

      Tu as modifié la valeur de la couche par défaut dans la configuration du plugin ? Tu as essayé d’en sélectionner plusieurs dans le bloc "couches proposées" ?

      > sur la page de configuration du plugin, dans « désactiver certains plugins », il y a « kml.js, gpx.js, topojson.js, control.Fullscreen.js, control.minimap.js, leaflet.marketcluster-src.js », sans possibilité de retirer quoi que ce soit. Je suppose que c’est le problème

      Cette option avancé permet d’indiquer à GIS de ne pas insérer certains scripts (et donc de désactiver certaines fonctionnalités), tu peux laisser tout activé par défaut sans t’en préoccuper.

      Hésite pas à passer sur irc.spip.net si tu veux qu’on en discute.

    Répondre à ce message

  • Bonjour
    Question syntaxe kml : je veux associer une url à la zone géographique spécifiée dans mon fichier kml. Autrement dit, rendre cette zone cliquable. Voir page
    Merci !

    Répondre à ce message

  • 1
    JeromeD

    Bonjour,
    Je me permet de reposer une question, j’essaye de voir où je peux aller avec ce super plugin

    Je souhaite afficher dans un article une carte des points géolocalisés des évènements liés à cet article.
    J’ai mis :
    [(#INCLUREfond=modeles/carte_gis,objets=evenements,id_article,)]
    OK, cela fonctionne
    Cerise sur la gâteau, ...chacun des évènements est lié à un mot-clé (lui même lié à une couleur)...

    Serait-il possible qu’en fonction du mot-clé, lié à l’évènement, il y ait un marqueur différent ?
    Je sais c’est un super cerise.
    Merci d’avance pour votre lecture

    • JeromeD

      Je me répond à moi même et pour ceux que cela peut aider.
      Je me suis inspirer de cet article pour l’adapter aux évènements.

      • J’ai donc créé un fichier gis_evenements_logomot.html (en partant du fichier gis_evenements.html proposé dans le plugin GIS4 (dossier json)

      Ce fichier comporte le code suivant

      <BOUCLE_events(EVENEMENTS){gis}{id_evenement ?}{id_article ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}>
      		{"type": "Feature",
      		["geometry": (#GEOMETRY|appliquer_filtre{wkt_to_json}|sinon{{"type": "Point", "coordinates": \[#LON, #LAT\]}}),]
      		"id":"#ID_GIS",
      		"properties": {
      			"title":[(#URL_EVENEMENT|extraire_multi|lien_ou_expose{[(#TITRE_GIS*|sinon{#TITRE*}|supprimer_numero)]}|json_encode)],
      			"description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|json_encode)]
      			<BOUCLE_logomot(MOTS){id_evenement}{type={{echelon_de_evenement}}}>
      			[(#LOGO_MOT_NORMAL|gis_icon_properties)]
      			</BOUCLE_logomot>[,
      			"styles": (#GEOMETRY_STYLES|appliquer_filtre{geometry_styles_to_json})]
      		}}</BOUCLE_events>

      où echelon_de_evenement correspond au nom du groupe de mon groupe de mot clé.

      • Je dépose ce fichier dans le dossier un dossier /json de mon dossier /squelettes
      • Chaque mot-clé à pour logo un marqueur spécifique (à vous de choisir)
      • Enfin l’intégration de ma carte GIS prend alors pour objet : evenements_logomot,

      Pour ma part cela donne cela : [(#INCLUREfond=modeles/carte_gis, objets=evenements_logomot,id_article)]

    Répondre à ce message

  • 2

    Bonjour,

    À l’instar des illustrations qui possèdent leur numéro d’identifiant au bas de chaque article, ne pourrait-on pas ajouter le numéro des points GIS liés à un article ? Ceci permet de savoir rapidement quel est le numéro du point que l’on veut insérer dans un article via un modèle, par exemple.

    Merci,
    françois

    Répondre à ce message

  • 2
    JeromeD

    Bonjour,
    J’ai un soucis qui doit être tout bête mais je bloque.
    Dans la page article.html, j’appelle la carte GIS mais je souhaite qu’elle n’apparaisse pas s’il n’y a pas de point associé...
    Pour l’instant, j’ai un tout simple

    [(#INCLURE{fond=modeles/carte_gis,objets=articles,id_article,height=400px,zoom=10,autocenterandzoom=oui,fullscreen = oui})]

    Mais la carte s’affiche sans point... je souhaiterai que dans un tel cas, la carte ne s’affiche pas...
    Merci d’avance

    • Bonjour,

      Tu peux entourer ton code avec une boucle comme :

      <BOUCLE_gis0(GIS){id_article}{0,1}>
      ..
      </BOUCLE_gis0>
    • JeromeD

      Super, merci pour le coup de main

    Répondre à ce message

  • 4

    Bonjour,

    J’ai plusieurs points GIS dont certains ne sont associés à aucun objets SPIP.

    Dans le corps de texte d’un article, en ajoutant le modèle standard :

    <carte_gis|autocenterandzoom=oui>

    la carte affiche tous les points, associés ou pas à un article : parfait.

    En personnalisant le fichier ./json/gis.html pour y ajouter (par exemple) :

    "description":[(#ID_ARTICLE|json_encode)]

    la carte n’affiche que les points associés à un article.

    Mon besoin étant d’afficher tous les points et #ID_ARTICLE (c’est un exemple) dans l’infobulle quand le point est associé à un article ou rien quand il n’est pas associé.

    Merci pour vos expériences et lumières,
    françois

    • Ha oui, fort possible que la présence de la balise id_article dans la boucle force une jointure sur les articles. Essaye peut-être avec la balise id_objet, sinon pourquoi ne pas utiliser le squelette json_gis_articles.html puisque tu souhaites afficher des données issues d’articles ?

    • En fait non, je ne « souhaites pas afficher des données issues d’articles ».

      Comme indiqué, je souhaite afficher tous les points, associés ou pas, et mon JSON ne retourne que les points associés quand j’ajoute #ID_ARTICLE. Je pense effectivement qu’il y a une jointure qui se promène.

      Ma question est bien : comment retourner tous les points et pour les points associés à un article afficher #ID_ARTICLE ?

      Merci !

    • As-tu testé ma proposition ?

    • Oui b_b, mais rien de mieux.

      J’ai utilisé la solution suivante : dans le JSON, je renseigne une variable dans la BOUCLE avant le formatage des données json :

      <BOUCLE_gis(GIS){id_gis ?}{objet ?}{id_objet ?}{id_rubrique ?}{id_article ?}{id_breve ?}{id_document ?}{id_mot ?}{id_auteur ?}{id_syndic ?}{recherche ?}{0, #ENV{limit}}{","}>
      #SET{s0,''}
      <BOUCLE_(ARTICLES){id_gis}>#SET{s0,#URL_ARTICLE}</BOUCLE_>
      {"type": "Feature",
      ["geometry": (#GEOMETRY|appliquer_filtre{wkt_to_json}|sinon{{"type": "Point", "coordinates": \[#LON, #LAT\]}}),]
      "id":"#ID_GIS",
      "properties": {
      	"title":[(#TITRE*|extraire_multi|supprimer_numero|json_encode)],
      	"description":[(#VAL{
      		[<p>(#DESCRIPTIF|textebrut)</p>]
      		<p>[(#ADRESSE|textebrut)<br />][(#CODE_POSTAL)&nbsp;]#VILLE</p>
      		[<a href='(#GET{s0})'>Plus d'informations</a>]
      		}|json_encode)][
      	(#LOGO_GIS|gis_icon_properties)][,
      	"styles": (#GEOMETRY_STYLES|appliquer_filtre{geometry_styles_to_json})]
      }}</BOUCLE_gis>

      et je peux ainsi afficher tous les points ; ceux qui ont des articles associés ont un lien vers l’article et pas les autres.

      Merci pour tes propositions.
      françois

    Répondre à ce message

  • 1

    Bonjour,
    Merci pour cet excellent plugin. Pour la personnalisation du logo d’un point géolocalisé, pourrais-tu lui faire bénéficier du plugin rôle de document ?

    • Pour l’instant non, pas dans le plugin par défaut, mais peut-être plus tard quand on aura pleinement intégré la notion de rôles des docs/logos dans le core (cf le chantier en cours du passage des logos en tant que documents). Mais rien ne t’empêche de personnaliser les squelettes json du plugin pour le faire sur ton site :)

    Répondre à ce message

  • 14

    Bonjour et merci du boulot !

    J’ai mis sur ma page sommaire le code suivant

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

    Nickel, je voulais changer ce qui apparaît dans l’infobulle et j’ai copié le fichier plugins/gis/json/gis_articles.html dans squelettes/json/gis_articles.html comme indiqué dans l’article.

    Mes modifs ne sont pas prises en compte (même avec vidage de cache / recalcul de page). Le plus étonnant est que j’ai même supprimé plugins/gis/json/gis_article.html et squelettes/json/gis_articles.html et que la carte apparaît toujours...

    J’ai retenté un paquet de fois pour être sûr que je faisais pas de bourde, mais à priori, non.

    Une piste ? (PS : V4.47.18)
    Bonne journée !

    • Une piste ?

      oui, gis_article.html != gis_articles.html :)

      Une url ?

    • Merci de la réponse, c’est bien gis_articles.html que j’ai utilisé que j’ai fait (coquille corrigée).

      La coquille vient de l’article (j’ai fait un copier / coller)

      Voici l’url : https://www.naga44.org/test/

    • Merci de la réponse, c’était une coquille (provenant de l’article , j’ai fais un copier / coller)
      J’ai bien utilisé gis_articles.html. Malheureusement, ça vient pas de là ;)

      Voici l’url : https://www.naga44.org/test/

    • Je n’accède pas à ton squelette perso https://www.naga44.org/test/squelettes/json/gis_articles.html c’est normal ?

    • Oups, désolé, j’avais tout retiré, vu que ça ne prenait pas.
      Je viens de reupload https://www.naga44.org/test/squelettes/json/gis_articles.html avec la même modif que dans l’article.

      [(#SET{titre,<a href="#URL_ARTICLE">#TITRE*</a>})]"title":[(#GET{titre}|json_encode)],
    • Pardon, j’avais effacé, vu que ça prenait pas. C’est reuploadé, avec la même modif que dans l’article

      [(#SET{titre,<a href="#URL_ARTICLE">#TITRE*</a>})]"title":[(#GET{titre}|json_encode)],
    • Et bien j’ai le plaisir de t’annoncer (au bout de X messages) que ça fonctionne bien :

      https://www.naga44.org/test/spip.php?page=gis_json&id_rubrique=1&objets=articles&limit=500

      Le json contient bien ce que tu lui demandes de généré, cad un titre avec un lien vers l’article, et c’est visible sur ta carte (d’ailleurs c’était visible depuis mon premier message).

    • Bonjour,
      désolé b_b, je n’ai que trois messages qui sont passés (ceux visibles ici).
      J’espère que tu n’as pas eu de doublons, j’ai fait d’autres envois, mais j’ai eu des déconnexions et ce que j’essayais d’envoyer n’était pas posté (en tout cas, moi je ne voyais rien…)

      Bref, désolé si ça a été un souci, c’est déjà adorable de prendre du temps pour me répondre, j’ai pas envie que ce soit une corvée...

      Pour clarifier :
      Je sais que le lien est visible, c’est ce que j’ai depuis le début, sans aucune modification de gis_articles.html, ni ajout de gis_articles.html dans squelettes/json/, juste l’INCLURE dans l’article. C’est pourquoi, je ne comprenais pas trop le but de la modif présentée dans l’article.

      Si je supprime gis_articles.html (de plugins/gis/json/ et de squelettes/json/), la carte est la même. Pourtant, pourquoi serait elle visible alors ?

      Si dans squelettes/json/ gis_articles.html j’enlève le titre :

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

      et ne garde que :

      	"properties": {
      			"description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|json_encode)][
      			(#LOGO_GIS|gis_icon_properties)][,
      			"styles": (#GEOMETRY_STYLES|appliquer_filtre{geometry_styles_to_json})]

      La carte est toujours la même avec le titre. D’ailleurs actuellement, j’ai enlevé le titre et sur https://www.naga44.org/test/spip.php?page=gis_json&id_rubrique=1&objets=articles&limit=500 il y a toujours les liens vers les titres… (page recalculée, cache vidé)

      Merci du temps que tu m’as consacré. Désolé encore, si il y a quelque chose d’évident à coté duquel je passe.

    • Reprenons, par défaut les infobulles n’affichent que le titre de l’objet sans lien si on affiche les points et non les articles, cf https://git.spip.net/spip-contrib-extensions/gis/src/branch/master/json/gis.html#L6 et exemple ici https://labo.eliaz.fr/spip.php?page=carte

      Quand on affiche des articles, le code a changé depuis la rédaction de cette documentation cf https://git.spip.net/spip-contrib-extensions/gis/commit/355aa4f60412e2efd9584eb230b1650ee47cd791 on affiche bien le titre avec un lien cf https://git.spip.net/spip-contrib-extensions/gis/src/branch/master/json/gis_articles.html#L6

      C’est certainement ça qui t’as mis sur une mauvaise piste, je pense qu’il faut mettre à jour la doc et renvoyer vers l’article dédié à ce sujet https://contrib.spip.net/Gis-4-Surcharger-les-infobulles

    • Merci pour ta réponse, je vais regarder du coté de https://contrib.spip.net/Gis-4-Surcharger-les-infobulles.
      Mais j’avoue ne pas comprendre pourquoi en effaçant le titre, il est toujours visible sur le site. Pour moi, cela montre que le fichier n’est pas pris en compte. me trompe-je ?
      Je viens même de faire un vidage de cache manuel (au cas où), mais non, le titre apparaît alors qu’il est effacé...

    • Mais j’avoue ne pas comprendre pourquoi en effaçant le titre, il est toujours visible sur le site.

      Le var mode debug ou inclure te le dira :p

      PS : j’ai mis la doc à jour.

    • Un grand merci, c’est trouvé !
      Je ne connaissais pas le mode inclure (debug ne donnait rien).
      En fait c’est « modeles/carte_gis.html » qui est appelée et non pas « gis_articles.html » comme indiqué dans l’article.
      Le mode inclure va m’être tellement utile, ne découvrir cela que maintenant... Mieux vaut tard que jamais !
      Merci mile fois de ta patience et de ton temps.

    • En fait c’est « modeles/carte_gis.html » qui est appelée et non pas « gis_articles.html » comme indiqué dans l’article.

      Non non, l’article est bon sur ce point, je te l’assure :)

    • C’est moi qui me suis planté alors. Étant donné que j’ai fond=modeles/carte_gis dans INCLURE, ça me parait normal que carte_gis.html soit appelé.

      J’avais repris l’exemple de l’article

      [(#INCLURE{fond=modeles/carte_gis,
      ...

      et j’ai dû mal comprendre un truc par la suite, mais vu que le reste n’est plus présent dans l’article, je ne sais pas quoi ;)

    Répondre à ce message

  • 2

    Bonsoir,

    Je viens d’installer GIS4 -47-18 sur mon site de test qui utilise la dernière version de SPIP 3-2-7.

    Lorsque j’essaye de créer un point j’ai l’erreur suivante :
    Erreur SQL 1146
    Table ’campingmrb2411.spip31_gis’ doesn’t exist
    SELECT gis.id_gis, 0 as points FROM spip_gis AS gis

    Vous auriez une idée du problème ?
    Merci
    Patrick

    • Salut, certainement un problème lors de la création des tables, essaye d’utiliser la réparation des tables de la base depuis la page de maintenance de SPIP. Sinon, désinstalle et réinstalle le plugin.

    • oui tout à fait

      Merci à vous

      Patrick

    Répondre à ce message

  • 2

    Bonjour,

    un point pas très clair pour moi.

    Lorsqu’on créé un point, et si on a activé la config, il est possible de chercher une adresse.

    J’imagine que la recherche dans la base d’adresse vient d’une base de donnée externe. En l’occurence, je suppose OpenStreetMap (car c’est la couche qu’on charge par défaut) ?

    Ma question est la suivante : y-a-t-il un délai entre la modification d’une carte sur le site officiel « openstreetmap » pour ajouter une adresse, et le moment où on peut trouver l’adresse dans le formulaire ?

    J’ai fait une modif il y a plus de 24 h sur le site d’OSM, et je n’arrive toujours pas à trouver automatiquement l’adresse.

    • Salut, le geocoder utilise par défaut l’API de photon (celle de nominatim est aussi dispo en option), je n’ai pas d’idée du temps nécessaire à la répercution d’une modif dans la base OSM vers l’API en question, mais je pense que le délai doit bien dépasser 24h. Tu trouveras certainement une réponse plus détaillé du côté de la communauté OSM.

    • ok, merci

      j’irais voir vers eux lorsque je reprendrais le dossier

    Répondre à ce message

  • 1
    Nicolosko

    Bonjour,

    J’ai toujours eu une exploitation ’simple’ de ce super plugin de géoloc, et là je sèche :
    Comment faire pour qu’au passage de la souris l’infobulle s’affiche ET que je puisse cliquer dessus pour m’envoyer sur une ancre dans la page ?
    Si je vois bien l’infobulle, impossible de fabriquer le clic.

    Quelqu’un a-t-il déjà eu à faire à ce comportement du plugin ?
    Merci

    Nico

    Répondre à ce message

  • 14

    Bonjour,

    autocenterandzoom=oui ne fait plus que centrer, mais reste sur le zoom par défaut.
    Visible par exemple ici : https://www.vittoz-irdc.net/-Les-therapeutes-Vittoz-IRDC-en-France-.html

    Gis 4.47.16, SPIP 3.2.7
    Code d’appel : https://zone.spip.net/trac/spip-zone/browser/spip-zone/_squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/rubrique.html#L54

    [<div id="carto">
    (#PLUGIN{GIS}|oui)[(#INCLURE{fond=json/gis_articles_plus_sites_branche,id_rubrique,limit=1}|oui)[(#INCLURE{fond=modeles/carte_gis,id_rubrique,objets=articles_plus_sites_branche,autocenterandzoom=oui,hauteur=#CONFIG{soyezcreateurs_layout/hauteurgisrubriques,400px},cluster=[(#PLUGIN{GISGEOM}|?{'non','oui'})],maxClusterRadius=40,clusterShowCoverageOnHover=oui,clusterSpiderfyOnMaxZoom=oui,fullscreen=oui,zoom_wheel=non})]]
    </div>]
    • Bonjour,

      Même souci ici https://www.crcatb.fr/films-cinema-... : j’utilise autocenterandzoom=oui, qui ne zoom pas comme il le faisait antérieurement, mais reprend le zoom défini par défaut dans GIS à savoir zoom = 17.

      Temporairement, je force zoom=13 ici https://www.crcatb.fr#carte pour retrouver quelque chose de moyennement correct ;-)

      SPIP 3.2.7 [24473] + GIS 4.47.16.

      françois

    • @realet je viens de tester une carte simple avec le code suivant <carte_gis2|autocenterandzoom=oui|zoom_wheel=non|fullscreen=oui> et elle affiche bien tous les points qu’elle contient en passant sur un zoom à 2 (alors que j’ai bien un zoom de 5 dans la config du plugin). J’ai aussi testé depuis un squelette avec <INCLURE{fond=modeles/carte_gis,autocenterandzoom=oui,zoom_wheel=non,fullscreen=oui} /> et j’obtiens le même résultat.

      @graphie quel est le code que tu utilises ? Sinon donnes nous l’url du squelette qui génère ta carte.

    • [(#INCLURE{fond=modeles/carte_gis,objets=endroits,id_article=#ID_ARTICLE,autocenterandzoom=oui,fullscreen=oui,zoom_wheel=non,height=500px}{ajax})]
    • Bonjour,

      Je ne sais pas si une solution a été trouvée mais je constate le même souci ici, ça marchait avant, pas sûr du moment ou ça a basculé (tout à jour ici, spip 3.2.7, gis 4.47.17)... une info supplémentaire que je peux ajouter : j’ai l’impression que ça fonctionne correctement si l’on a plus d’un point, ici par ex :
      https://www.cabestan.fr/spip.php?page=annuaire

      Par contre sur les pages individuelles des entrepreneurs de cet annuaire qui n’affichent que leur point, plus de centrage, par ex. :
      https://www.cabestan.fr/pro/guerin-761
      (le point est en dehors de la boite mais il est bien là donc l’appel fonctionne bien avec les bonnes coordonnées)...

      [(#INCLURE{fond=modeles/carte_gis,objets=pros,autocenterandzoom=oui,limit=300,selpro=#GET{resrec}})]

      Je ne suis donc même pas sûr que ce soit un souci de zoom dans mon cas puisque je n’affiche qu’un point, c’est plutôt le centrage qui ne marche pas, le zoom est accessoire dans mon cas. J’imagine que le « autocenter » dans le cas d’un seul point choisit bien de centrer sur le seul point affiché (j’ai d’ailleurs contrôlé que j’avais bien un seul point sans un second point en Australie que je ne verrai jamais, mais dans ce cas ce serait le zoom qui ne marche pas).

      Dispo pour d’autres tests si nécessaire ! Merci d’avance !

      Pierre.

    • Bonjour,

      Je refais ce message une seconde fois, il n’est apparu depuis plus de 4 heures.

      Je ne sais pas si une solution a été trouvée mais je constate le même souci ici ... une info supplémentaire que je peux ajouter : j’ai l’impression que ça fonctionne correctement si l’on a plus d’un point, ici par ex :
      https://www.cabestan.fr/spip.php?page=annuaire

      Par contre sur les pages individuelles des entrepreneurs de cet annuaire qui n’affichent que leur point, plus de centrage, par ex. :
      https://www.cabestan.fr/pro/guerin-761
      (le point est en dehors de la boite mais il est bien là donc l’appel fonctionne bien avec les bonnes coordonnées)...

      Je ne suis donc même pas sûr que ce soit un souci de zoom dans mon cas puisque je n’affiche qu’un point, c’est plutôt le centrage qui ne marche pas, le zoom est accessoire dans mon cas. Je vois qu’il y a une ou 2 discussions sur le même sujet, pour ma part je suis à jour (Spip 3.2.7 et GIS 4.14.47) ...

      Pierre.

    • Désolé, la version de GIS c’est plutôt 4.47.17, je deviens dyslexique.

    • Préparez la caisse de bières, je pense avoir enfin corrigé ce bug qui commençait à me courrir... cf https://zone.spip.org/trac/spip-zone/changeset/119775

    • Effectivement, ça corrige chez moi !

      Merci

    • Parfait super, tout fonctionne !!

      Merci b_b,
      si tu passes en Charente on trouvera des bières ;-)

    • Bonjour,

      Désolé d’être apporteur de mauvaise nouvelle, mais je constate encore le problème suivant après mise à jour en .18 :

      -  tout d’abord j’ai eu l’impression que ça ne marchait pas du tout mieux qu’avant, pas de centrage sur le point et zoom laissant le point en dehors de la carte (vidage de cache, d’historique, changement même de navigateur ...)
      -  j’ai donc commencé à tripoter tous les réglages possibles et imaginables et finalement la seule chose qui semble avoir une influence est la suivante : si sur la page de réglage de GIS (dans Gestion des plugins) je mets un zoom d’au moins 10, dans ce cas l’autocenterandzoom semble fonctionner pour toutes mes pages ... enfin en tous cas l’autocenter, le point est centré, car par contre ça prend exactement le zoom indiqué dans cette page (donc 10 ou plus) ... après quand on affiche un seul point, c’est quoi le zoom auto ... je ne sais pas.
      -  si je mets à cet endroit un zoom de 9 ou moins, la carte se centre sur le point qui est mis par défaut dans cette page de réglages (Grenoble en l’occurrence) avec le zoom de cette page (donc 9 ou moins) et mon point devient invisible s’il n’est pas dans la zone centrée sur Grenoble visible avec le zoom de 9 ou moins
      -  évidemment si je met un zoom genre 7, la surface est tellement grande que l’on voit à peu près toujours le point et on constate que le autocenter ne marche pas (tous les points sont à priori en Rhone-Alpes).

      Mon code d’appel :, mais je pense que c’est ok, le point s’affiche bien :

      [(#INCLURE{fond=modeles/carte_gis,objets=pros,autocenterandzoom=oui,limit=300,selpro=#GET{resrec}})]

      Pierre

    • Désolé, mais j’ai du mal à extraire une question à laquelle apporter une réponse de ton message :p

      Pour résumer voici ce que fait autocenterandzoom :

      • s’il y a plusieurs points sur la page la fonction adapte les coordonnées du centre ainsi que le zoom de la carte afin d’afficher tous les points (dans ce cas l’éventuel zoom passé en option à la carte n’est pas pris en compte sans quoi cela serait contre production avec l’effet souhaité par l’option autocenterandzoom).
      • s’il n’y a qu’un seul point sur la carte, autocenterandzoom centre la carte sur les coordonnées de ce point et utilise l’éventuel zoom passé en option, sinon celui défini dans la configuration du plugin.

      Voilà le fonctionnement prévu, à toi de me dire si tu obtiens autre chose sur ton site ;)

    • Salut,

      Je suis dans le cas de « 1 seul point sur la carte » et je ne passe pas de zoom dans mon appel (je n’ai pas essayé) :
      -  si dans le zoom par défaut je mets 10 ou plus, la carte est centrée sur le point demandé avec le zoom par défaut
      -  si dans le zoom par défaut je mets 9 ou moins, la carte est centrée sur le point par défaut avec le zoom par défaut et le point demandé est visible ou pas selon sa position par rapport à Grenoble (point par défaut)
      Donc à priori, le autocenter ne marche pas si mon zoom par défaut est 9 ou moins..

      Pierre

    • Si je reprends un des liens que tu nous a donné https://www.cabestan.fr/pro/guerin-761 je vois bien la carte centrée sur le point avec un zoom de 9...

    • Oui je pense m’être emmêlé les pinceaux, c’est moins de 9, pas 9 et moins. Là je viens de mettre 8, ici je vois bien la carte en zoom 8 et c’est centré sur Grenoble, le point demandé est en dehors ...
      J’ai fait plusieurs fois le réglage 8-9-8-9... et à chaque fois je retrouve le souci ...
      J’espère que ça n’est pas un simple pbm de cache que je m’évertue à vider systématiquement.
      Pierre

    Répondre à ce message

  • 4

    bonjour,

    cette astuce pour afficher les bulles de points ne fonctionne plus depuis une maj de Gis :

    <a href="#map1" onclick="javascript:gis_focus_marker(#ID_GIS,1);"><li><b>#TITRE</b></li></a>

    Comment faire maintenant ?

    Cordialement

    • re bonjour,

      le problème est visible ici :
      http://www.fou-allier.fr/-CARTE-

      et il y a bien une erreur JS quand on clique sur un nom de ville pour faire apparaitre la bulle.

      Merci d’avance pour votre aide

      Cordialement

    • Salut, ta page génère une erreur javascript au chargement, il faudrait commencer par corriger ça, cf :

      TypeError: this.getPane(...) is undefined jquery.js:7650:9
          jQuery 18

      De plus, tes liens qui font appel à la fonction citée comportent une erreur de syntaxe, cf la parenthèse manquante :

      <a href="#map1" onclick="javascript:gis_focus_marker92,1);"><li><b>Agonges</b></li></a>

      Tout ceci est visible dans la console de ton navigateur.

    • Bonjour b_b !

      Merci pour les pistes.

      L’erreur jQuery intervient du fait de l’appel à la carte :
      [(#MODELE{carte_gis,objets=articles,id_article,fullscreen=oui,autocenterandzoom=oui,zoom=10,width=100%,})]
      et je ne sais pas pourquoi !!!
      Aussi j’ai maintenant une 404 sur http://www.fou-allier.fr/leaflet.markercluster-src.js.map
       ???
      Sinon pour l’appel au lien j’avais effectivement omis une parenthèse.

      Bref ça ne fonctionne toujours pas, je continue à chercher...

      Cordialement

      PS : je viens de passer le site en 3.2.7

    • Bonjour,
      Problème résolu grâce à l’aide sur le canal irc #spip de b_b

      En fait le problème est survenu après l’installation du plugin GIS BAN.

      Je l’ai tout bonnement désinstallé ( pas utile pour mes besoins)
      et cela fonctionne !

      A noter que GIS BAN provoquait dans mon cas ( directement ou indirectement une erreur JavaScript.)

      Merci encore à b_b

      Cordialement

    Répondre à ce message

  • 3

    Bonjour b_b ,
    version 4.47.13 spip 3.2.5
    Je me permets de te demander une petite mise à jour de leaflet !
    En effet le mode plein écran ne fonctionne pas notamment sous Safari (macOS).

    le fichier en question semble être :
    https://zone.spip.net/trac/spip-zone/browser/spip-zone/_plugins_/gis/trunk/lib/leaflet/plugins/Control.FullScreen.js

    Alors que sur ton Github il fonctionne .
    https://github.com/brunob/leaflet.fullscreen/blob/master/Control.FullScreen.js

    Merci grandement !

    Cordialement

    Répondre à ce message

  • Bonjour,
    Lorsque l’on est dans l’espace privé et que l’on veut attacher un point à un objet, le recherche des points n’est pas très intuitive pour les rédacteurs : elle ne semble pas toujours fonctionner avec les accents / majuscules. Par exemple si je cherche « Ecole » il n’y aura aucun résultat car le titre du point existant est « École ».
    Et quelquefois, mais pas tout le temps, « école » ne retourne rien non plus.
    Autre curiosité : si je cherche « Collège » il me retourne 1 résultat alors qu’il y a 3 titres de points qui commencent par « Collège ».
    Le site est très ancien et les points aussi.

    Sur un site 3.2.5 et GIS 4.47.12 - stable

    Répondre à ce message

  • 2

    Bonjour,
    Sur un appel de GIS dans un squelette les parametres default_layer = ou affiche_layers = ne fonctionnent pas quelque soit le nom (et ne changent rien au fond de carte)
    J’aimerai appeler le fond de carte « stamen toner », spécifiquement pour une carte (mais pas sur toutes celles de mon site pour autant).
    Sur un modèle du type :
    [(#MODELE{carte_gis, height=500px, objets=projets, id_mot=#ENV{id_mot},cluster=oui, recherche=#ENV{recherche}, autocenterandzoom=oui,zoom_wheel=non,maxClusterRadius=10,clusterSpiderfyOnMaxZoom=non,clusterMaxZoom = 2,autocenterandzoom = oui,centrer_auto = oui,limit=200})]

    Comment dois-je procéder ? J’ai testé beaucoup de choses mais il n y’a rien qui fonctionne dans ce sens.
    Merci.

    • Salut, ça devrait le faire en ajoutant default_layer=stamen_toner dans ton appel au modèle, non ?

    • Ben oui tout simplement... ça marche, je ne comprends pas comment j’ai mis des heures à tester des tas de trucs sans que ça marche. Merci !

    Répondre à ce message

  • 14

    Bonjour,
    j’ai l’impression que la fonction Zoom a sauté, que ce soit en renseignant l’article ou la variable à mon INCLURE... (SPIP 3.2.5, plugin mis à jour, et cache vidé)...

    • J’ai l’impression qu’il nous manque des infos pour t’en dire plus... :p

    • Bonjour b_b,
      sur un site sous spip 3.2.5, tous les plugins mis à jour et cache vidé, j’affiche une carte pour laquelle la fonction zoom n’est pas prise en compte, quoique je fasse (renseigner le point géolocalisé, ou forcer lors de l’appel dans le fichier) : https://urlz.fr/aFgR

    • On avance ;)

      Aucun problème avec le zoom de la carte chez moi, je peux bien zoomer et dézoomer avec les boutons + & - ou au double clic.

      Sinon, ton site ne charge pas les typos qui lui sont nécessaires à cause d’un paquet d’erreurs de mixed content, cf :

      Blocage du chargement du contenu mixte actif (mixed active content) «  »" class="spip_url spip_out auto" rel="nofollow external">http://lenovocafe.fr/squelettes/css/fonts/Simple-Line-Icons.woff2?v=2.2.2 »

    • Il s’agit d’un problème de zoom à l’affichage de la carte elle-même, je voudrais un zoom 17, mais c’est toujours le même zoom qui est appliqué. J’ai même forcé lors de l’inclusion, mais rien n’y fait...

      [(#INCLURE{fond=modeles/carte_gis,zoom=17})]
    • As-tu bien vidé le cache de ton site depuis la dernière mise à jour de GIS (censée corriger ce bug) ?

    • Pas de mise à jour disponible, vidé le cache, désactiver Cache Cool, re-vidé le cache, et toujours le même problème. Zoom=X ne semble pas fonctionner...

    • Ça semble encore être un effet de bord de la modification dont je parlais dans ce commentaire : https://contrib.spip.net/GIS-4#comment502183-502163

      J’ai contacté l’auteur de celle-ci, on va voir comment corriger la boulette.

    • Pour référence, voici le code que tu utilises pour afficher la carte, merci moi :p

      <BOUCLE_localisation(ARTICLES){gis}{lang}{id_article}{0,1}>
      <div class="map_associated">
      [(#INCLURE{fond=modeles/carte_gis, autocenterandzoom=oui, zoom=17, zoom_molette=non, scale=oui, fullscreen=oui, overview=oui, id_article})]
      </div>
      </BOUCLE_localisation>
    • b_b,
      oui, c’est ma boucle, est-elle effectivement correcte ? Si j’ai bien compris ton effet de bord, j’ai donc modifié mon paramètre pour zoom=12, et malheureusement aucun changement.

    • Bonjour,
      j’ai modifié une nouvelle fois (zoom=16) et rien n’y fait, plugin GIS mis à jour. Des pistes pour que la commande fonctionne ? Est-ce un problème de balise ?

    • Comme je l’ai déjà dit, c’est un bug introduit dans le plugin par une autre personne, j’attends son retour pour la correction de celui-ci.

    • J’ai envoyé des correctifs pour ça dans la version 4.47.12, tiens nous au courant si ça règle enfin le problème.

    • Bonjour b_b,
      Chez moi, ça fonctionne ! merci !

    • Enfin, espérons qu’on en a fini avec ce bug :)

    Répondre à ce message

  • 3

    Bonjour,

    Manifestement gis n’affiche plus les cartes sur Internet explorer.
    J’ai testé avec les liens cité dans ce forum comme https://www.allesfrans.com/spip/spip.php?article408 alors que https://leafletjs.com/ s’affiche bien.

    Est ce que d’autre on le problème ?

    Cordialement.

    Répondre à ce message

  • 3

    Bonjour,

    Est-ce que quelqu’un•e a déjà utilisé la méthode Leaflet :

    map.locate({watch: true});

     ?

    Si oui : comment passe-t-on watch:true à une carte GIS ?

    Merci,
    françois

    Répondre à ce message

  • 14

    Depuis quelque jours j’ai des soucis avec ce plugin (version 4.47.4 dans SPIP 3.2.4). Je l’utilise uniquement pour visualiser un seul point, lié à l’article elle-même. Cela a toujours fonctionné avec <carte_gis1|id_article=3731|default_layer = google_terrain|zoom = 10|autocenterandzoom = oui|zoom_wheel = non|fullscreen = oui>, mais maintenant ça me montre le point par defaut (de la configuration).
    Dans l’espace privé (gesion points de GIS) le bon point est montré, lié à l’article.

    Peut-être c’est lié à une erreur sur la console ;

    jQuery.Deferred exception: Cannot read property 'minZoom' of undefined TypeError: Cannot read property 'minZoom' of undefined
        at NewClass._checkDisabledLayers (<anonymous>:5285:36)
        at NewClass._addItem (<anonymous>:5236:8)
        at NewClass._update (<anonymous>:5149:9)
        at NewClass.onAdd (<anonymous>:4983:8)
        at NewClass.addTo (<anonymous>:4786:42)
        at NewClass.addTo (<anonymous>:4996:27)
        at NewClass.addControl (<anonymous>:4853:11)
        at NewClass.populateTileLayers (<anonymous>:20071:9)
        at NewClass.initialize (<anonymous>:20029:8)
        at new NewClass (<anonymous>:303:20) undefined
    • Salut Hanjo, je ne reproduis pas de mon côté avec GIS 4.47.4 sous SPIP 3.3 dev et ce code <carte_gis1|id_article=80||zoom = 10|autocenterandzoom = oui|zoom_wheel = non|fullscreen = oui>...

      Le bug doit provenir du fond de carte google que je déconseille toujours d’utiliser...

      Peux-tu fournir l’adresse de la page en question pour qu’on puisse t’aider plus ?

    • Bonjour,
      Ce n’est pas la carte Google qui cause des problèmes. Hier j’ai essayé avec plusieurs cartes et paramètres. Parfois ça fontionnait, mais quand j’avais fait la même chose dans une autre article ça ne fontionnait pas.

      Deux exemples :
      -  https://www.allesfrans.com/spip/spip.php?article408 avec <carte_gis1|id_article = 408|autocenterandzoom = oui|zoom_wheel = non|fullscreen = oui>
      -  https://www.allesfrans.com/spip/spip.php?article454 avec <carte_gis1|id_article = 454|autocenterandzoom = oui|zoom_wheel = non>

      Merci !

    • PS
      Avec des coordonnées ça fonctionne bien ;

      -  https://www.allesfrans.com/spip/spip.php?article814 avec <carte_gis1|zoom=14|objets=point_libre|lon=2.80296301841736| lat=46.1379013061523 |default_layer=google_terrain|zoom_wheel=non|fullscreen=oui>

    • Je vois cette erreur dans la page suivante : https://www.allesfrans.com/spip/spip.php?article408

      TypeError: layer.options is undefined spip.php:5285:4
          _checkDisabledLayers https://www.allesfrans.com/spip/spip.php?article408 line 82 > scriptElement:5285
          _addItem https://www.allesfrans.com/spip/spip.php?article408 line 82 > scriptElement:5236
          _update https://www.allesfrans.com/spip/spip.php?article408 line 82 > scriptElement:5149
          onAdd https://www.allesfrans.com/spip/spip.php?article408 line 82 > scriptElement:4983
          addTo https://www.allesfrans.com/spip/spip.php?article408 line 82 > scriptElement:4786
          addTo https://www.allesfrans.com/spip/spip.php?article408 line 82 > scriptElement:4996
          addControl https://www.allesfrans.com/spip/spip.php?article408 line 82 > scriptElement:4853
          populateTileLayers https://www.allesfrans.com/spip/spip.php?article408 line 82 > scriptElement:20071
          initialize https://www.allesfrans.com/spip/spip.php?article408 line 82 > scriptElement:20029
          NewClass https://www.allesfrans.com/spip/spip.php?article408 line 82 > scriptElement:303
          init_gis https://www.allesfrans.com/spip/spip.php?article408:883
          jQuery 2

      Quelle est la liste des couches actives dans la configuration du plugin ? (celles proposées et celle par défaut)

    • Par defaut : OpenMapSurfer
      Proposées : Google Satellite & Google Terrain

    • Essaye en ajoutant openmapsurfer aux souches proposées stp, puis si ça ne règle pas le problème tente en désactivant les couches google de celles proposées,

    • J’ai ajouté openmapsurfer - pas de changement
      J’ai désactivé le couches Google - un changement, mais pas partout !

      -  Ici ça fonctionne (sauf le zoom) : https://www.allesfrans.com/spip/spip.php?article2600 avec <carte_gis1|id_article=2600|autocenterandzoom=oui>
      -  Ici ça ne fonctionne pas : https://www.allesfrans.com/spip/spip.php?article401 avec <carte_gis1|id_article=401|zoom_wheel = non|fullscreen = oui>. Si je déplace la carte, le point est visible. Est-ce que ça veut dire que autocenterandzoom est obligatoire, même avec un seul point ? Et pourquoi le zoom est maximal ?

      Dans l’espace privé les cartes sont bien positionnées pour les deux articles.

    • Ajout de OpenMapSurfer - pas de changement ;
      Désactivation des couches Google - de changements !

      Mais toujours le zoom est au maximum.
      Est-ce qu’il existe une option autocenter avec un zoom manuel ?
      Sans autocenterandzoom la carte n’est pas proprement positionnée, même avec un seul article avec un seul point. Autrefois ça a toujours fonctionnée !

    • Re,

      Est-ce qu’il existe une option autocenter avec un zoom manuel ?

      Non, comme son nom l’indique l’option autocenterandzoom défini le centre et le zoom automatiquement.

      Je crois voir d’où vient le problème, c’est certainement cette modification qui casse le comportement attendu quand la carte ne comporte qu’un point https://zone.spip.net/trac/spip-zone/changeset/116107/spip-zone

    • Re,

      - Ici ça fonctionne (sauf le zoom) : https://www.allesfrans.com/spip/spip.php?article2600 avec <carte_gis1|id_article=2600|autocenterandzoom=oui>

      Oui je vois, Le zoom est au maximum de celui autorisé par la couche utilisée, alors qu’avant le commit que je cite plus haut le zoom devait certainement être celui passé en option à la carte ou celui de la configuration du plugin par défaut. À vérifier.

      - Ici ça ne fonctionne pas : https://www.allesfrans.com/spip/spip.php?article401 avec <carte_gis1|id_article=401|zoom_wheel = non|fullscreen = oui>. Si je déplace la carte, le point est visible. Est-ce que ça veut dire que autocenterandzoom est obligatoire, même avec un seul point ? Et pourquoi le zoom est maximal ?

      Oui ça ne fonctionne pas car tu ne passes pas de centre manuellement, ni l’option pour que ça se fasse automatiquement...

    • Merci,
      J’espère que cela peut être corrigé, sinon je dois créer une modèle privée utilisant point_libre.

    • Oui bien sûr, ça sera corrigé rapidement ;)

    • Merci encore !

    Répondre à ce message

  • 6

    Bonjour,

    Comment récupérer dans mon squelette la latitude et la longitude de l’utilisateur, lorsqu’on active la géolocalisation de l’utilisateur ?

    J’insère une carte dans mon squelette avec la localisation de l’utilisateur, mais pour afficher mes points, je dois interroger une base JSON mais pour cela je dois obtenir la latitude et longitude.

    Merci d’avance.

    • L’option localiser_visiteur permet uniquement de centrer la carte sur la position de l’utilisateur. Si tu veux faire plus, il faut passer par l’API javascript de Leaflet https://leafletjs.com/reference-1.5.0.html en t’y insérant depuis un des callbacks mis à dispo par GIS https://contrib.spip.net/Astuces-GIS#api_js

    • Merci pour ta réponse rapide. Je suis surpris que cela ne soit pas déjà intégré car le besoin semble être là ?!

      J’ai une carte avec 64 500 points que j’interroge via JSON par commune, département ou dans un rayon autour d’une position. C’est pourquoi j’aimerais obtenir la position de l’utilisateur pour faire ma recherche.

      Vois-tu d’autres solutions à mon problème ? Je voudrais afficher les points dans un rayon de 10 km autour de l’utilisateur.

      Merci d’avance,

      Julien

    • Vois-tu d’autres solutions à mon problème ?

      Tu parles d’une solution toute faite pour ton besoin ? Non :p

      Par contre, je t’ai donné toutes les pistes pour mettre en place ce que tu souhaites faire :)

    • Merci, je vais essayer m’y metre alors... ;-)

    • Bonjour à tous,

      Finalement, j’ai fait bien plus simple, j’ai utilisé l’API de géolocalisation sans passer par GIS/Leaflet. Le fonctionnement :
      -  l’utilisateur clique sur un lien ?page=autourdemoi
      -  la page autourdemoi.html le géolocalise et envoie en POST ses coordonnées à une deuxième page autourdemoi2.html
      -  la page autourdemoi2.html reçoit les coordonnées de l’utilisateur et affiche la carte GIS centrée sur la position obtenue, en envoyant une requête en JSON pour n’afficher que les points dans un rayon de 10 000 mètres de la localisation de l’utilisateur.

      Vu les difficultés pour trouver du code fonctionnel et à jour, je vous partage donc ci-dessous ma solution certainement améliorable/optimisable, mais qui fonctionne parfaitement.

      Page /squelettes/content/autourdemoi.html

      <script type="text/javascript">
      
          /** ###################################################################
           * sends a request to the specified url from a form. this will change the window location.
           * @param {string} path the path to send the post request to
           * @param {object} params the paramiters to add to the url
           * @param {string} [method=post] the method to use on the form
           * https://stackoverflow.com/questions/133925/javascript-post-request-like-a-form-submit
           ################################################################### */
              function post(path, params, method='post') {
                const form = document.createElement('form');
                form.method = method;
                form.action = path;
      
                for (const key in params) {
                  if (params.hasOwnProperty(key)) {
                    const hiddenField = document.createElement('input');
                    hiddenField.type = 'hidden';
                    hiddenField.name = key;
                    hiddenField.value = params[key];
                    form.appendChild(hiddenField);
                  }
                }
      
                document.body.appendChild(form);
                form.submit();
                }
          /** ################################################################### */
      
          /** ################################################################### */
          /** En cas de réussite de la géolocalisation, on envoie les données sur une autre page */
          /** ################################################################### */
              function reussite(position) {
                latitude = position.coords.latitude ;
                longitude = position.coords.longitude ;
                coordonnees = latitude + '%2C' + longitude ;
                post('?page=autourdemoi2', {LATITUDE:latitude, LONGITUDE:longitude, COORDONNEES:coordonnees});
              }
          /** ################################################################### */
      
          /** ################################################################### */
          /** En cas de refus et d'échec de géolocalisation */
          /** ################################################################### */
              function echec() {
              alert("La géolocalisation n'est pas activée ou supportée par votre navigateur.");
              }
          /** ################################################################### */
      
          /** ################################################################### */
          /** Fonction de géolocalisation
          /** ################################################################### */
              function demande_geolocalisation() {
                    if (navigator.geolocation) {navigator.geolocation.getCurrentPosition(reussite, echec); }
                    }
          /** ################################################################### */
      
          /** On demande la géoloclisation au chargement de la page (lien "Autour de moi") */
              window.onload = demande_geolocalisation;
          /** ################################################################### */        
      
      </script>

      Page /squelettes/content/autourdemoi2.html

      [(#REM) ################################################################### ]
      [(#REM) Affichage de la carte centrée sur la position reçue de autourdemoi.html ]
      [(#REM) Attention : j'envoie les coordonnées dans la variable code_postal
          car l'intitulé des variables envoyées à GIS est limité. ]
      [(#REM) ################################################################### ]
          <INCLURE{fond=modeles/carte_gis,
            objets=point_libre,
            width=100%,
            fullscreen=oui,
            zoom=16,
            lat=#ENV{LATITUDE},
            lon=#ENV{LONGITUDE},
            objets=carteetab-autourdemoi}{code_postal=#ENV{COORDONNEES}}/>
      [(#REM) ################################################################### ]

      Page /squelettes/json/gis_carteetab-autourdemoi.html

      [(#REM) ################################################################### ]
      [(#REM) Récupération et mise en forme du contenu JSON pour les points de la carte ]
      [(#REM) Attention, la variable #ENV{code_postal} contient la localisation ]
      [(#REM) ################################################################### ]
          {
             "type": "FeatureCollection",
             "features":
                [
                    <BOUCLE_json12(DATA){source json, https://xxxxxxxxx/api/records/1.0/search/?dataset=fr-xxxxxxxx&geofilter.distance=#ENV{code_postal}%2C10000} {datapath records}{","}>
      
                        <BOUCLE_affichageinfos12(DATA){source table, #VALEUR}>
      
                            <BOUCLE_test(CONDITION){si #IDENTIFIANT_DE_L_ETABLISSEMENT|!={''}}>
      
                                 {
                                     "type": "Feature",
                                     "geometry":
                                        {
                                          "type": "Point",
                                          "coordinates": \[#LONGITUDE, #LATITUDE\]
                                        },
                                     "id":"#IDENTIFIANT_DE_L_ETABLISSEMENT",
                                     "properties":
                                        {
                                          "title": [(#NOM_ETABLISSEMENT|json_encode)],
                                          "description": "<br>[(#ADRESSE_1|url_encode)] [(#ADRESSE_2|url_encode)] [<br>(#ADRESSE_3)][<br>Téléphone : <a href=\"tel:#TELEPHONE\">(#TELEPHONE)</a>] [<br>Adresse de courriel : <a href=\"mailto:#MAIL\">(#MAIL)</a>] [<br>Site web : <a target=\"_blank\" href=\"http://#WEB\">(#WEB)</a>]<br><br><a href=\"./etablissement/[(#NOM_COMMUNE|replace{' ','-'})]/[(#NOM_ETABLISSEMENT|replace{' ','-'})]/#IDENTIFIANT_DE_L_ETABLISSEMENT.html\"><font color=\"red\"><b>➡️ Voir la fiche complète</b></font></a>"
                                        }
                                  }
                            </BOUCLE_test>
                            <//B_test>
      
                        </BOUCLE_affichageinfos12>
      
                    </BOUCLE_json12>
                ]
          }
      [(#REM) ################################################################### ]
    • Juste une petite correction à apporter dans Page /squelettes/content/autourdemoi.html

      coordonnees = longitude + '%2C' + latitude ;

    Répondre à ce message

  • 7

    Bonjour,

    Pourquoi côté public, alors que seule la couche openstreet map FR est activée, il y a quand même des appels à maps.google.com ?

    • Désolé mais là je suis obligé... CALOMNIE !

      Je ne reproduis pas du tout, jamais, certainement pas, exemple : https://labo.eliaz.fr/spip.php?page=carte

      Donne nous une url et on pourra peut-être t’en dire plus.

    • Bon, tu as bien fais de dire que c’était de la calomnie.
      Il y avait d’autres couches activées.
      Mais comme il fallait scroller pour les voir dans la liste, je ne m’en était pas rendu compte.

      Merci d’avoir répondu à mon bruit.

      PS : ça serait peut-être judicieux lors de l’affichage de lister ceux qui sont sélectionnés en premier. Qu’en dis-tu ?

    • PS : ça serait peut-être judicieux lors de l’affichage de lister ceux qui sont sélectionnés en premier. Qu’en dis-tu ?

      Je ne pense pas qu’il soit bon de modifier l’ordre des éléments, cela risquerait de perturber les gens dans leurs repères.

    • J’ai fait plus simple : afficher le nombre de couches actuellement configurées : https://zone.spip.org/trac/spip-zone/changeset/116197

      Si ça ne convient pas, je revert ;-)

    • Ça roule, petite remarque, tu aurais pu utiliser le filtre singulier_ou_pluriel au lieu des (s) :p

    • J’y ai songé, mais la syntaxe était déjà illisible, alors,, je n’ai pas eu envie d’en rajouter (sauf si tu insistes)

    • Tu avais raison, singulier_ou_pluriel, c’est mieux et en plus, la syntaxe est plus lisible.

    Répondre à ce message

  • 1

    Bonjour,

    j’ai un petit soucis avec le plugin, la valeur de zoom n’est pas prise en compte :
    [(#INCLURE{fond=modeles/carte_gis,objet=article,id_objet=9,limit=500,centrer_auto=oui,zoom=6})]

    que je mette 1,6,16,... le zoom de la carte reste toujours le même.
    Pourtant, le script passe le nombre correct (vérification via l’inspecteur de javascript).
    Si vos avez une idée, merci beaucoup

    • Salut, comme indiqué dans la description du paramètre centrer_auto/autocenterandzoom : « centrer et zoomer la carte automatiquement pour afficher tous les marqueurs », celle-ci ne permet donc pas de spécifier un zoom manuellement, puisque elle adaptera le centre et le zoom de la carte pour qu’elle affiche tous les points qu’elle comporte.

    Répondre à ce message

  • Bonjour,
    suite au changement de son API ce ne serait pas possible et relativement simple d’ajouter géoportail au choix des cartes ?
    https://geoservices.ign.fr/documentation/utilisation_web/wmts-ol.html

    Répondre à ce message

  • 1
    Pierrot

    Bonjour,

    Un truc que j’ai constaté : si l’on veut activer la localisation du visiteur, il faut ajouter un paramètre localize_visitor=oui, ça marche. Par contre si l’on ne veut pas activer cette localisation, localize_visitor=non ne semble pas marcher, ce qui marche c’est de complètement supprimer ce paramètre ... j’ai essayé en anglais, en français, je voulais activer la localisation dans certains cas et la désactiver pour d’autres cas ...

    Je ne sais pas si c’est un bug ou une feature ou juste un pbm de cache chez moi.

    Pierre

    • Salut, c’est une feature et la manière de la déclarer est héritée de ce que fait Leaflet (la librairie utilisée pour les cartes) :)

    Répondre à ce message

  • 1

    Bonsoir,

    Une question, avant de m’arracher tous mes cheveux. Je veux afficher dans ma carte des points issus d’un fichier JSON en ligne. Ces points ne sont pas (et ne doivent pas) être stockés dans la base SQL de SPIP. Ci-dessous ma démarche.

    Et ma carte est désespérément vide de points  ! Une piste ?

    Un grand merci d’avance.

    J’ai créé un modèle dans /json/gis_carte_test.html qui interroge une URL et reçoit du json que j’adapte dans une boucle DATA pour obtenir une succession de :

     { "type": "Feature", "geometry": { "type": "Point", "coordinates": [2.1919209112314, 48.988737545389] }, "id":"0950911B", "properties": { "title": Lieu de test, "description": Ceci est une école} } 

    J’appelle la carte avec :

    #INCLURE{fond=modeles/carte_gis,
    	zoom=16,
      localiser_visiteur=oui,
      objets=carte_test}
    • Purée !
      2 jours de recherche pour me rendre compte qu’en nommant ma carte « objets=carte_test » ça ne fonctionnait pas alors qu’avec « objets=cartetest » ça fonctionne enfin !!

    Répondre à ce message

  • 2
    Pierrot

    Bonjour,

    J’ai un type d’objets particulier, disons « totos » auquel j’ai lié des points GIS. J’utilise le modèle fourni par GIS :

    [(#INCLURE{fond=modeles/carte_gis, objets=totos, autocenterandzoom=oui, cluster=oui, clusterShowCoverageOnHover=oui, limit=300, localize_visitor=oui, zoom_wheel=non})]

    Tout ceci fonctionne impec, j’ai tous les « totos » sur la carte.

    J’ai créé ensuite une page de recherche spécifique dans ces objets qui remplit un array avec les id des objets totos (id_toto donc) trouvés selon mes critères (je les recherche selon certains mot-clés, puis en fulltext, et je rempli mon array avec tous les id_toto qui répondent aux critères). Ma recherche fonctionne nickel, j’affiche bien les bons totos avec une boucle genre :

    <BOUCLE_rectoto (TOTOS) {id_toto IN #GET{resrec}}> ou « resrec » est mon array qui contient les résultats de recherche.

    Ma question : l’affichage carto fonctionne pour tous les totos, comment pourrai-je faire pour n’afficher que ceux qui répondent aux critères de recherche ?

    J’ai bien sûr édité json/gis_totos.html pour essayer d’ajouter le critère {id_toto IN #GET{resrec}}, j’ai essayé d’ajouter un paramètre supplémentaire au modèle pour lui passer l’array, genre select=#GET{resrec} puis {id_toto IN #ENV{select}}, mais ça veut pas ....

    J’imagine que ce que je veux faire est possible, j’ai l’impression qu’il me manque juste un petit truc, mais là ça m’échappe :-( ... si une bonne âme a une idée par cette belle journée durant laquelle on devrait faire autre chose qu’être devant un ordi ...

    • Salut, la partie intitulée Étendre la liste des paramètres du modèle carte_gis de la présente documentation répond à ta question :)

    • Pierrot

      Bonjour,

      En fait j’ai appliqué ce point de la doc juste après avoir rédigé mon message (j’aurai dû venir le re-préciser) mais ça ne fonctionnait absolument pas bien qu’effectivement ça me paraissait être la solution. J’étais sur ce site depuis plusieurs heures (cache désactivé + recalculs permanents), j’ai encore re-calculé plusieurs 10aines de fois, et j’ai repris le boulot ce matin et à un moment j’ai spécifiquement fait l’action « vider le cache » et ça c’est mis à marcher d’un seul coup ... apparemment il y avait un truc coincé dans le cache ...
      Merci néanmoins pour votre réponse, désolé j’aurai dû être plus rapide pour signaler que j’avais résolu mon souci.
      Pierre

    Répondre à ce message

  • 2
    nicolas

    Ce plugin fait parfaitement le job bravo ! en revanche je n’arrive pas à le faire fonctionner si on active la compression js spip.

    • Salut, le plugin fonctionne sans problème avec la compression, peut-être as-tu un script perso qui génère une erreur javascript avec la compression, ce qui bloquerait les autres scripts de ton site.

      Pour t’en dire plus, il nous faut l’adresse de la page où tu souhaites afficher une carte sur ton site.

    • nicolas

      effectivement c’est j’ai un tweak de function compresseur_ecrire_balise_js qui bloquait le rendu.

    Répondre à ce message

  • 2

    Bonjour,

    Comment changer l’icone qui s’affiche en fonction de l’article concerné ou de sa rubrique ?
    Par exemple pour les Châteaux, les piscines,...

    En passant l’image en svg par exemple et changer sa couleur ?
    Ou en utilisant l’icone de la rubrique concernée ?

    Merci de vos retours.

    Répondre à ce message

  • 4
    Liberté

    Bonjour,

    Je viens d’installer Gis 4.45.1 sous Spip 3.2.4
    La configuration de GIS ne se ferme pas après l’enregistrement.
    Où faudrait-il chercher ?

    • Salut, que veux-tu dire par « ne se ferme pas » ? As-tu une erreur javascript dans la console de ton navigateur ?

    • Liberté

      Merci pour ta réponse.

      Je viens de voir que ce problème n’est pas spécifique à GIS, j’ai la même chose pour d’autres plugins.

      Après avoir configuré un plugin, je clique sur enregistrer.
      Le message La nouvelle configuration a bien été enregistrée (avec la coche) apparaît bien mais la fenêtre de configuration ne se ferme/ replie pas.
      La console du navigateur indique seulement : JQMIGRATE : Migrate is installed, version 3.0.1

    • Salut, ce que tu décris semble être le comportement normal des formulaires de configuration :)

    • Liberté

      Resalut,

      Désolé d’avoir monopolisé ton attention pour une chose qui ne concerne pas GIS4.

      Le comportement normal des formulaires de configuration est un peu perturbant : en haut c’est indiqué que la modification est bien prise en compte mais en bas le bouton enregistrer est toujours présent, D’où un doute. Et puis une fenêtre de configuration non refermée peut engendrer des erreurs.

      Je crois qu’il serait préférable d’avoir un message disant que la modification a bien été prise en compte + une invitation à faire d’autres modifications si nécessaire ou refermer la fenêtre.

      Mais c’est un autre chantier qui concerne la refonte de l’espace privé.

    Répondre à ce message

  • 3

    Bonjour,

    Il y a à priori un souci avec la saisie de carte !
    cela ne fonctionne pas la ou elle est utilisée du moins selon ce que j’ai pu voir. En tout cas la recherche ne marche pas et il y a des erreurs JS.
    le souci semble lié à la fonction geocode qui ne reçois plus dans son query les valeurs de « departement » et « country_code ».
    En supprimant les deux lignes tout fonctionne correctement (fichier siaisies/carte.html ligne 90 & 93)

    Est ce que j’ai loupé quelque chose ou c’est bien un bug à corriger ?

    Merci pour votre travail

    • Salut, le problème est-il toujours d’actualité ? De mon côté, je n’observe pas de bug lors de la recherche avec le saisie carte.

    • Bonjour,

      Oui le problème est toujours d’actualité, et vous ne remarquez pas le souci sur la recherche dans l’interface privée car elle n’exploite pas saisie. Dès que vous exploitez saisie il y a des erreur JS qui apparaissent du fait de l’inexistance des champs query.departement et query.country_code

    • Salut,

      vous ne remarquez pas le souci sur la recherche dans l’interface privée car elle n’exploite pas saisie

      Je ne comprends pas cette remarque, GIS utilise bien saisies, et quand je parle de la recherche, c’est bien de celle proposée par la saisie carte de GIS. Sans plus d’infos je ne pourrai pas t’aider, dans quel contexte utilises-tu la saisie carte ? Dans un dev perso ou dans le formulaire editer_gis ? Quelle est la configuration de GIS que tu utilises (affichage des champs d’adresses ou non, etc) ?

    Répondre à ce message

  • 2

    Conflit entre GIS et CKEDITOR

    La fonction de géolocalisation d’une adresse lors de la création d’un point ne marche plus si le plugin ckeditor est en marche. Mais cette fonction marche toujours dans la page de config de GIS...
    L’erreur est javascript : TypeError : $(...).val(...).change is not a function[En savoir plus] ecrire:772:51
    Dès que le plugin ckeditor est désactivé, plus de problème...
    Une idée de correctif ?
    Merci,
    Julien

    • Salut, le problème doit être dans CKEditor, il n’y a qu’une seule erreur javascript d’affichée dans le console ?

    • Je viens de tester sur SPIP 3.2.4 avec ckeditor-spip3-plugin 0.16.25 et je n’ai aucune erreur lors du geocodage d’une adresse depuis la page de création d’un point ecrire/?exec=gis_edit&new=oui.

    Répondre à ce message

  • 4
    Nicaille

    Bonjour,
    Je cherche à désactiver l’appel des scripts GIS en front (partie publique) mais pas en partie privée. Quelqu’un aurait-il une idée ou déjà fait cela ?

    Merci à vous.
    ++

    • Salut, il n’y a rien à faire pour cela puisque GIS n’insère aucun script dans l’espace public par défaut, à moins que tu aies l’idée saugrenue d’utiliser les fond de carte de google :)

      Pour développer, les script de GIS sont appelées de manière asynchrones depuis le modèle de la carte, donc ton site ne comportera aucun script de GIS si aucune carte utilisant le modèle du plugin est présente dans tes pages publiques exemple sur la home mon site de démo : https://labo.eliaz.fr/

    • Nicaille

      Effectivement... j’ai eu l’idée saugrenue d’utiliser google map. La raison, la désactivation du scroll 1 doigt en mobile. Je n’ai pas trouvé d’autre modèle de carte le proposant (ce qui pour des cartes 100% * 100% étaient génant). Peut être que maintenant des solutions existent..?
      Ceci avoué, j’aimerai faire les appels de carte GIS mais pas les insertions scripts attenantes... peut on court-circuiter ceux-ci ?

      Merci.
      ++

    • Nicaille

      Pour info, voici la page où je fais les appels et une alerte console indique que les scripts gmap sont doublés. Mais si je supprime mon appel hardcodé, la carte ne fonctionne plus.
      https://www.musees-normandie.fr/musees-normandie/

    • Pour faire court, car je ne suis pas du tout porté sur les scripts de google et leur utilisation, tu devrais pouvoir supprimer les scripts insérés par GIS en t’appuyant sur cette vieille astuce que je publiais en 2007 ^^ : https://www.weblog.eliaz.fr/article38.html => dans l’idée, te brancher sur le pipeline insert_head, tester que tu es bien dans l’espace public et rechercher/remplacer les appels de scripts souhaités pour les virer.

    Répondre à ce message

  • 2

    Bonjour,
    J’ai essayé d’intégrer « articles_branche » dans un squelette (SPIP 3.2.2 et dernière version du plugin) :

    [(#INCLURE{fond=modeles/carte_gis, objets=articles_branche,id_rubrique=#ID_RUBRIQUE})]

    Mais ça ne semble pas fonctionner différemment de « articles ». Est-ce que je suis sur la bonne voie, et si oui, que resterait-il à modifier pour que cela fonctionne correctement ?
    Merci

    • J’ajoute une dimension qui explique probablement mon problème : j’utilise Polyhiérarchie.
      Mon but est finalement d’afficher les articles d’une branche complète, sauriez-vous comment faire ?

    • La réponse était donc de modifier le fichier json/gis_articles_branche.html : changer « branche » par « branche_complete », le tour est joué.

    Répondre à ce message

  • 2
    Michel du Lac de Créteil

    Les points, traces et formes, etc. , n’apparaissent plus après la mise à jour « Version 4.45.0 SVN [114193] » de ce jour sur le site http://laccreteil.fr :
    Le cache a été vidé, sans résultat.
    Ce problème est-il retrouvé sur d’autres sites ?

    • Salut et merci pour le signalement, la version 4.45.1 corrige ça cf : https://zone.spip.net/trac/spip-zone/changeset/114214

    • Michel du Lac de Créteil

      Bonjour,
      Bonne nouvelle, tout est OK maintenant !
      Merci beaucoup.

      Petite question (déjà posée) :

      • Il existe une fonction qui permet de passer en mode => fullscreen = oui, afficher un bouton pour passer la carte en plein écran
        => Lorsque l’on utilise GIS Geometries 1.11.5 pour réaliser des points, traces, formes, etc. , il serait utile de pouvoir disposer de cette fonction du côté privé pour les réaliser en plein écran, plutôt qu’à travers une fenêtre ridiculement petite, serait-il possible d’intégrer un sélecteur dans la « Configuration de GIS » pour pouvoir compléter les fonctions (+, -, couches proposées) déjà existantes sur la carte, du côté privé ?
        Ou bien existe-t-il un autre outil, plus adapté que cette fenêtre trop petite.
        Bonne journée.
        Michel
        http://laccreteil.fr

    Répondre à ce message

  • 4

    Rebonjour
    Maintenant, une question de béotien, qui a du être posée surement plusieurs fois ici, mais en survolant rapidement ce forum je n’ai pas trouvé la réponse.
    Voilà, j’ai enregistré plusieurs points, que j’ai lié dans l’espace privé à des événements. La carte s’affiche bien ici pour chaque événement, mais quel code à insérer dans le squelette pour que la carte s’affiche avec les items de l’événement .dans l’espace public ?
    J’ai bien sur essayé comme indiqué plus haut :
    [(#INCLURE{fond=modeles/carte_gis,zoom=8,limit=100,scale=oui})]
    Mais cela affiche tous les points et non seulement celui lié à l’événement.
    Merci de votre aide et veuillez excuser cette interrogation de pur débutant.

    • Bonjour,

      Faudrait passer objets=evenements,id_evenement= peut être ...

    • et si dans l’INCLURE j’ajoute : id_evenement=#ENV{id_evenement)  ?

    • Bonjour,

      Dernièrement j’ai fait ca :

      #INCLURE{fond=modeles/carte_gis_objet,zoom=15,id_carte_gis=evenement#ID_EVENEMENT,objet=evenement,id_objet=#ID_EVENEMENT,fullscreen=oui,centrer_auto=oui}
    • Ca marche , merci

    Répondre à ce message

  • 1

    Bonjour
    J’ai activé GIS 4.
    Mais dans l’interface privée, lorsque je veut modifier un article, à l’enregistrement de la modif il y a un message d’erreur qui s’affiche dans une fenêtre :
    1 Erreur SQL 1054
    Unknown column ’gis.geo’ in ’field list’
    SELECT (TRIM(IF(INSTR(titre, ’’) = 0 , TRIM(titre), CONCAT( LEFT(titre, INSTR(titre, ’’)-1), IF( IF(INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)=0,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)))),’]’)+1,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)+4) = 0, TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)))), IF(INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7+IF(INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)=0,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)))),’]’)+1,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)+4)-1,INSTR(titre, ’’) -(INSTR(titre, ’’)+7+IF(INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)=0,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)))),’]’)+1,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)+4)-1) )), ’[’)>0,LEFT(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7+IF(INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)=0,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)))),’]’)+1,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)+4)-1,INSTR(titre, ’’) -(INSTR(titre, ’’)+7+IF(INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)=0,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)))),’]’)+1,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)+4)-1) )),INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7+IF(INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)=0,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)))),’]’)+1,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)+4)-1,INSTR(titre, ’’) -(INSTR(titre, ’’)+7+IF(INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)=0,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)))),’]’)+1,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)+4)-1) )), ’[’)-1),TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7+IF(INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)=0,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)))),’]’)+1,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)+4)-1,INSTR(titre, ’’) -(INSTR(titre, ’’)+7+IF(INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)=0,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)))),’]’)+1,INSTR(TRIM(SUBSTRING(titre, INSTR(titre, ’’)+7, INSTR(titre, ’’) -(7+INSTR(titre, ’’)+4)-1) ))) ), RIGHT(titre, CHAR_LENGTH(titre) -(7+INSTR(titre, ’’))) ) ))) AS multi, gis.id_gis, gis.titre, AsText(gis.geo) AS geometry, CONCAT_WS(’,’, gis.color, gis.weight, gis.opacity, gis.fillcolor, gis.fillopacity) AS geometry_styles FROM spip_gis AS gis WHERE 0=1 ORDER BY multi
    /home/monsite/www/ecrire/public/composer.php calculer_select() sql_select() ; 1005

    C’est donc à priori un champ manquant dans une table qui provoque l’erreur
    Cette fenêtre disparaît en cliquant sur son bandeau rouge.
    Je précise que le site est sous la dernière version de SPIP et avec la dernière version de GIS 4
    Merci de votre aide

    • Pardon, en vidant le cache plus de fenêtre d’erreur

    Répondre à ce message

  • 1

    Bonjour,
    Jusqu’à présent, et depuis plusieurs années, j’utilisais une boucle spip et un script javascript pour afficher sur une carte Googlemap placée dans un article des balises correspondant à des mots-clés d’un ou plusieurs groupes de mots-clés rattachés à cet article. Le script javascript interrogeait une base de données mysql contenant latitude et longitude des communes de France.
    Le système fonctionne bien, mais depuis que Google fait payer son API Googlemap en fonction de son utilisation, je voudrais sortir de ce système pour obtenir le même résultat avec un système de cartographie open source. Je voudrais utiliser Openstreetmap.
    J’ai installé GIS4.
    J’ai commencé à créer des points géolocalisés dans spip.
    Et maintenant, comment afficher dans un article une carte avec des balises correspondant à une liste de mots-clés rattachés à cet article ?
    Je ne suis pas du tout informaticien, et j’ai 73 ans, alors il faut m’expliquer avec des mots simples.
    Pour exemple de ce que je fais actuellement avec Googlemap, voir cette page :
    http://www.histoirepassion.eu/?Carte-satellite-Googlemap-foires-et-marches-d-autrefois-en-Charente-et-Charente
    Pourrais-je faire quelque chose du même genre avec GIS ?
    Merci à tous ceux qui pourront m’aider

    • Après bien des tâtonnements, j’ai fini par obtenir des résultats de plus en plus satisfaisants.
      Alors je ne veux pas embêter mes collègues qui voudraient me donner un coup de main.
      Ceci dit, il me reste un tas de questions.
      Alors en voici une.
      Comment sélectionner plusieurs groupes de mots-clés comportant des mots-clés géolocalisés, pour afficher leurs balises sur une même carte ?

      Exemple : je voudrais afficher sur une même carte les balises de mots-clés géolocalisés situés dans les groupes-mots 1, 3 et 6, mais pas ceux situés dans les groupes-mots 2, 4 et 5
      Comment écrire ce script ?
      Merci par avance.

    Répondre à ce message

  • 6

    Bonjour
    J’utilise GIS depuis très longtemps sur un site. Je viens de découvrir que l’affichage des cartes ne fonctionne plus « impossible de charger google maps correctement sur cette page ». Cette limitation semble liée à la nouvelle politique de google pour l’utilisation de son API.

    Je suis donc allé sur la plateforme google map et j’ai renseigné un compte de facturation pour obtenir une clé API.

    Je ne vois aucun endroit dans GIS pour indiqué cette clé API ?

    Serai je le seul dans ce cas ?

    merci de vos conseils

    jacques

    Répondre à ce message

  • 3

    Bonjour,
    Je viens de basculer un site en https. Toutes mes pages sont valides sauf celle possédant la carte GIS (pages accueil et contact) ?

    En regardant le code, il y a des insertions en http (cf.pièce jointe)

    Est-ce que ce serait cela qui bloquerait ma validation ? si oui, comment basculer les liens en https
    le lien : https://carrosserie-des-brasses.fr/

    je suis en version 4.44.23

    Merci d’avance pour vos conseils
    Jérôme

    • Bonjour,

      Et en changeant de « tuile » cela fonctionne pas mieux ?

    • Salut, le problème vient du fait que le fond de carte osm blach & white n’est pas disponible en https à ce jour, essaye de basculer ta carte sur le fond CartoDB Positron qui lui ressemble pas mal et est bien disponible en https.

    • Bonsoir, Merci à tous les deux...c’était bien cela et j’ai utilisé le fond CartoDB Positron comme conseillé.
      Encore merci
      Jérôme

    Répondre à ce message

  • 4

    Bonjour,

    apparemment et contrairement à la doc, l’option

    default_layer

    n’est pas disponible. C’est automatiquement la valeur de la config qui est pris

    Répondre à ce message

  • 2

    Bonjour,

    Je constate un bug d’affichage de la carte lorsque je l’affiche dans un onglet (à partir du 2e) fabriqué avec « Découpe page en onglet » du couteau suisse. Sans doute un conflit de js ? Quelqu’un sait comment résoudre le problème ? Merci d’avance.

    • Salut, la question a déjà été abordée dans le forum ici présent, je te laisse y effectuer une recherche pour retrouver la réponse.

    • Trouvé ! Merci b_b

    Répondre à ce message

  • 1

    Salut,

    Juste je sais pas trop si c’est normal ou pas mais quand on insère un modèle du genre :

    <carte_gis2
     |objets=insee_o
     |cluster=oui
     |limit=450
     |clusterMaxZoom=10
     |maxClusterRadius=20
     |singleMarkerMode=oui
     |height=600px
     |width=100%
     |clusterSpiderfyOnMaxZoom=oui
     |fullscreen=oui
     |centrer_auto=non
    >

    Certaines options passent et pas d’autres (par exemples les clusters) donc faut écrire comme ça pour que tout passe, mais bon pas super lisible isn’it ?

    <carte_gis2|objets=insee_o|cluster=oui|limit=450|etc…>

    Répondre à ce message

  • 10

    Bonjour

    si je appelle le modelé carte_gis avec l’option tooltip=oui j’obtiens une erreur javascript .

    Must add layer to map before using getCenter()

    Les autres options actives sont

    autocenterandzoom=oui,centrer_auto=oui,zoom=5,

    C’est un bug ou j’inclus des options conflictuelles ?

    • Salut, il n’y a pas d’option tooltip cf le tableau des options du modèle.

    • Salut,
      Oui, je sais. Je l’avais réperé dans le modèle, ou ça figure comme option.

    • Je le vois aussi, kent1 qui a fait cet ajout a certainement oublié de le documenter...

      De mon côté, un test avec le code <carte_gis1|autocenterandzoom=oui|zoom=5|tooltip=oui> ne génère pas d’erreur javascript.

      Pour info, pas la peine de passer autocenterandzoom=oui et centrer_auto=oui puisque c’est la même option.

      Pour t’aider plus, il nous faut un lien vers ta carte en ligne.

      PS : j’ai ajouté l’option tooltip au tableau de la doc.

    • Salut,

      tu peux le voir ici

    • Salut, ton problème semble plutôt venir du fait qu’il n’y a aucun élément sur ta carte, ce qui fait planter l’option autocenterandzoom. De ce que je peux voir, dans ton json tu utilises un multypolygon et je crois bien qu’on ne gère pas ça dans GIS, essaye simplement avec plusieurs polygon.

    • Le script gère parfaitement les multipolygones. Si j’enlève l’option tooltip, la carte affiche bien ce qu’il faut

    • Et si tu vires l’option autocenterandzoom ?

    • pareille, même avec comme seul option le tooltip, l’erreur se maintient

    • Je reproduis en affichant autre chose que des points sur la carte, la version 4.44.23 corrige le bug cf https://zone.spip.org/trac/spip-zone/changeset/112246

    Répondre à ce message

  • 1

    Salut b_b,

    comment faire pour qu’un click sur un polygon ouvre une nouvelle page défini au lieu du pop up.

    Merci
    Rainer

    • J’ai trouve un moyen pas très propre en surchargeant « javascript/leaflet.gis.js ».

      j’ajoute d’abord l’url de redirection dans les properties de la feature du geojson

      puis dans le js à la ligne 269, j’ajoute

      // Redirige vers l'url du layer cliqué.
      					layer.on('click', function(e) {
      						self.location = e.target.feature.properties.url;
      					});

      il y a probablement un moyen plus « leaflet », mais ça marche

    Répondre à ce message

  • 2

    Bonjour,

    j’utilise GIS pour afficher des points associés à des articles depuis quelques années sans difficulté mais, pour un projet ponctuel, je suis amené à un utiliser un fichier GEOJSON.

    Je parviens sans difficulté à afficher les points dans une carte depuis un article dédié mais les infobulles n’apparaissent pas/ne s’ouvrent pas.

    Je pense que le contenu du GEOJSON doit être structuré d’une certaine façon pour que les modèles de GIS puissent afficher les titres et descriptifs des points mais j’avoue que je n’ai pas trouvé dans la documentation ni dans les commentaires...

    Quelqu’un est il en mesure de m’aider sur ce point ?

    Merci d’avance

    Répondre à ce message

  • 2

    Salut,

    je cherche le moyen de changer la direction d’affichage des infobulles.
    La doc indique que c’est faisable avec direction=’left’ (voir https://leafletjs.com/reference-1.3.4.html#tooltip ) mais je ne vois pas comment faire car il n’y a pas l’option dans le modèle carte_gis.hml.

    Est-ce que c’est faisable dans GIS ?

    merci

    Répondre à ce message

  • J’ai passé un bon moment a essayé de styler une carte Google Maps, j’ai peut être mal cherché mais j’ai pas trouvé d’infos à ce sujet, voici donc comment procéder.

    1/ Créer le fichier mes_fonctions.php si il n’existe pas déjà.
    2/ Créer un style ou le choisir (il y’a des outils pour ça comme par exemple : https://snazzymaps.com/style/72543/assassins-creed-iv)
    3/ On ajoute un nouveau layer qui pourra être sélectionné dans la config de GIS :

    $GLOBALS['gis_layers']['google_roadmap_gris'] = array(
    		'nom' => 'Google Roadmap Gris',
            'layer' => 'L.gridLayer.googleMutant({
            	type:"roadmap",
            	styles:[
    			    {
    			        "featureType": "all",
    			        "elementType": "all",
    			        "stylers": [
    			            {
    			                "visibility": "on"
    			            }
    			        ]
    			    },
    			    {
    			        "featureType": "all",
    			        "elementType": "labels",
    			        "stylers": [
    			            {
    			                "visibility": "off"
    			            },
    			            {
    			                "saturation": "-100"
    			            }
    			        ]
    			    },
    
    ...
    			]
            })'
    );

    4/ On sélectionne le nouveau style dans la config GIS

    Répondre à ce message

  • 3

    Astuce : Afficher plusieurs traces GPX avec des couleurs différentes.

    Comme indiqué dans la doc, il est possible d’afficher plusieurs traces gpx sur une carte, en précisant une liste d’items séparés par une virgule.
    exemple :

    gpx=#LISTE{102,103}

    (ou 102 et 103 correspondent à l’identifiant des documents)

    Si vous souhaitez bien distinguer ces différentes traces, vous pouvez avoir besoin de changer leur couleur.

    Pour chaque trace gpx, la librairie leaflet.js génère un svg avec la classe leaflet-interactive et y définit la couleur par défaut (#3388FF) dans un attribut stroke.

    En css, il est possible de sélectionner la trace souhaitée avec la pseudo-classe nth-child et de surcharger cette couleur.

    En insérant la ligne suivante dans votre feuille de style, la deuxième trace deviendra donc rouge :

    .leaflet-interactive:nth-child(0n 2) {stroke:#ff0000 !important;}
    • Salut et merci pour le partage, tu pourrais l’ajouter à la page des astuces pour GIS ?

      https://contrib.spip.net/Astuces-GIS

    • Bonjour b_b,

      C’est fait, astuce ajoutée.

      Pour se prémunir du risque de “perdre” cette précieuse page dans les commentaires, peut-être que le lien pourrait être inséré au pied de l’article ?

      Julie

    • Merci pour la remarque, c’est fait ;)

    Répondre à ce message

  • 1

    Bonjour,

    Est-il possible de lire des données wkb avec le plugin ? dans geoPHP on a un wkb_to_json mais je ne vois pas l’équivalent dans GIS ou je ne trouve qu’un wkt_to_json ?
    Sinon on pourrait appeler celui de geoPHP comment ? on fait une focntion dans mes_fonctions.php ?

    Merci :-)
    Pierre.

    • Salut, oui c’est la bonne piste, tu peux le faire dans un fichier mes_fonctions en t’inspirant de la fonction wkt_to_json().

    Répondre à ce message

  • 2

    Bonjour,

    j’ai un problème pour afficher en anglais des cartes chinoises avec Openstreetmap (pour l’instant que FR et DE si j’ai bien compris). Il serait peut-être bon de rajouter au moins l’anglais ;-)

    Plus globalement, si on choisit spécifiquement Openstreetmap (qui semble assez souple dans l’affichage des légendes), le plugin pourrait-il s’ouvrir à d’autres langues dans son affichage par défaut, et pouvoir transmettre la langue dans l’appel comme on le fait avec le zoom (genre « zoom=8, langue=fr, etc. ») ?

    Ce serait un vrai +++ dans les sites multilingues !
    Merci

    • Salut,

      Il serait peut-être bon de rajouter au moins l’anglais ;-)

      Pour info, le fond OpenStreetMap affiche les légendes dans la langue du pays concerné.

      le plugin pourrait-il s’ouvrir à d’autres langues dans son affichage par défaut, et pouvoir transmettre la langue dans l’appel comme on le fait avec le zoom

      Non, car les tuiles (images) affichées pour chaque fond de carte sont générées à l’avance, en bref, on n’a pas la main dessus.

    • Bonjour b_b,
      Merci pour ta réponse qui confirme ce que je craignais. Il faudra donc faire avec...
      Encore merci pour ta réponse rapide,
      Beno

    Répondre à ce message

  • 4

    Salut b_b,

    Petite question bête mais qui m’enquiquine la vie, pourquoi :

    - centrer_fichier = non            permet de ne pas centrer la carte automatiquement sur les fichiers kml/gpx surperposés

    …ne fonctionne que sur le kml/gpx et pas sur les geoson (en mode URL en tout cas). Du coup mon tracé geojson est vu en entier alors que je n’en veux qu’une partie (là où sont les points classiques).

    En attendant je vais chercher comment convertir le geojson en kml, mais ca va figer le fichier car à la base mon geojson est dynamique

    • Salut Fab, il faudrait en discuter avec la personne qui avait ajouté cette option, mais de ce que j’en vois, l’ajout de geosjon externe passe par parseGeoJson (qui est la même fonction qui gère l’affichage du geojson interne à GIS) qui ne centre automatiquement que si l’option autocenterandzoom est active, cf https://zone.spip.org/trac/spip-zone/browser/_plugins_/gis/trunk/javascript/leaflet.gis.js#L238 Tu devrais donc pouvoir contourner le problème comme ça.

    • Salut,

      Merci pour l’info. Cela étant, je ne sais pas très bien si le pb vient de là ou pas (j’ai l’impression que des fois ça fonctionne et des fois non). Mais comme je passe par un ajaxreload sur une zone l’inclure je me dit que ptet ça vient de ça aussi.
      Cela étant c’est normal qu’il n’y ait pas de référence à centrer_fichier sur ce if ?
      https://zone.spip.org/trac/spip-zone/browser/_plugins_/gis/trunk/javascript/leaflet.gis.js#L366

    • Justement je ne sais pas, il faudrait voir avec rasta qui avait fait cet ajout, le geojson est un fichier oui, mais il est parsé comme celui qui alimente la carte par défaut, donc pas certain qu’il doive répondre à autocenterandzoom ou centrer_fichier (un geojson externe devrait répondre à centrer_fichier au lieu de autocenterandzoom amha).

    • Ça fait très longtemps donc pas encore relu au niveau code, mais juste rapidement sur le principe : je suis bien d’accord, si on a mis explicitement « non », qu’on ne voulait pas, ça ne devrait pas le faire. Donc c’est un bug à mon avis, à corriger.

    Répondre à ce message

  • 1
    Laurent

    Bonjour
    J’aimerais afficher deux cartes sur une page article...
    -  Carte 1 avec le point GIS attaché à cet article
    -  Carte 2 avec le point GIS attaché à un auteur (générique sur toutes les pages du site)
    Est-ce possible ?
    Mes premiers tests ne sont pas concluants...
    Merci à vous...

    • Salut, oui c’est possible, qu’as-tu utilisé comme code dans ta tentative ?

    Répondre à ce message

  • 7

    Bonjour,

    j’ai un petit soucis avec le plugin, tout fonctionnait jusqu’a la mise à jour récente - mais c’est peut être moi qui ait fait un changement en même temps.
    Ce qui se passe : les cartes s’affichent sans problème sur mobile mais impossible de les afficher sur desktop, la zone reste vide (mais l’espace d’occupation sur la page est là mais blanc)

    Merci d’avance si vous avez une piste à suivre

    • Salut, il nous faut au moins deux infos pour t’aider : quel navigateur utilises-tu sur desktop et surtout, quelle est l’adresse du site en question ?

    • Hello

      merci de ta réponse. Je suis sous Safari mais le pb est récurent avec les navigateurs sur desktop par contre pas de soucis sur iOS et sur androïd sur mobile.
      l’adresse d’une des pages : http://www.fbia.be/assemblee-generale-de-la-fbia-1.html

      merci
       :-)

    • en regardant le source de ta page on voit bien que tu appelles plusieurs fois la carte avec le même identifiant, var map1;, ce qui génère logiquement une erreur JS. Corrige ça et ça ira mieux :p

    • Merci mille fois, effectivement ça règle le problème de ne définir qu’une seule fois la map cependant... elle ne s’affiche pas quand je la place dans une div cachée qui apparait qd on clique sur un bouton (c’est toujours sur la meme page, j’ai mis du temps à répondre désolé le temps de retrouver l’ordi et de faire les corrections)

    • Merci mille fois, effectivement ça règle le problème de ne définir qu’une seule fois la map cependant... elle ne s’affiche pas quand je la place dans une div cachée qui apparait qd on clique sur un bouton (c’est toujours sur la meme page, j’ai mis du temps à répondre désolé le temps de retrouver l’ordi et de faire les corrections)

    • Ce sujet a déjà été abordé plusieurs fois dans ce forum, je te laisse retrouver le fil et la réponse que j’y apportais.

    • Bonjour,

      merci beaucoup pour ton aide et ton plugin génial !

      je fais remonter l’info depuis la page... pouf 25 je crois :-)

      il faut ajouter en bas de page :

      script type=« text/javascript »
      $(document).ready(function()
      $(’#carte_onclick’).on(’click’, function()
      map1.invalidateSize() ;
      ) ;
      /script

      ou map1est le numéro de la carte et #carte_onclick l’id du bouton déclencheur de la div cachée

    Répondre à ce message

  • 2

    Bonjour,

    Selon les warnings affichés par Leaflet il faudrait remplacer les appels à L.Mixin.Events, qui va être déprécié, par de appels à L.Evented.

    A priori dans les fichiers :

    -  gis_geocoder.js (ligne 7)
    -  leaflet.gis.js (ligne 5)

    Je n’ai pas testé plus que ça mais du coup plus de warnings js !

    Répondre à ce message

  • 2

    Je souhaite ajouter, dans mon formulaire d’encodage des évènements, une liste de lieux déjà encodés. Pour ça, j’ai créé une saisie lieux qui reprends cette fameuse liste à l’aide des plugins saisies et champs extras. Ça fonctionne bien, c’est un bon début.

    Maintenant, j’aimerais associer mon article au lieu correspondant à la sélection choisie. Je vois comment le faire en sql mais je ne sais pas comment incorporer ça dans mon squelette.

    Quelqu’un peut m’aider ? Merci !

    • J’ai fais des recherches par rapport à ma demande. Je n’ai rien trouvé de probant mais une réflexion intéressante sur la question datant de décembre 2015 à laquelle ont peut-être participé des gens qui lisent ce flux de commentaires.

      Je trouve le constat et la proposition posée intéressante. Quelqu’un sait-il s’il y a eu une suite à ce projet ? Ou peut-être un contournement de la situation ?

    • Je ne sais pas si j’ai oublié de mentionner le lien vers la discussion ou si ce lien a été modéré mais je le remets ici. Si jamais, on le retrouve sur mail-archive.com, mailing-list spip-zone, « Réflexions autour des plugins de localisation et comment les rendre AWARE ».

      https://www.mail-archive.com/spip-zone@rezo.net/msg38930.html

    Répondre à ce message

  • 3

    Bonjour,

    j’utilise actuellement GIS ave cun fond de carte Google ; mais je pourrais très bien passer par un autre fond si il fonctionne aussi bien.

    Cependant je souhaiterai pouvoir gérer moi même les couleur de la map (changer le ton de la mer, et la tonalité des route/ terre et autre comme su rles map google) Est ce possible avec l’une des options proposé ?

    Merci d’avance pour les tuyaux.

    • Non, le plugin utilise uniquement des tuiles de fond existantes, générées par leur fournisseur et donc non personnalisables.

    • Arf ok merci pour la réponse. b_b

      Et il n’y a même pas moyen en bidouillant à l’intérieur du plugin de trouver l’endroit où est appeler la map google et d’y ajouter un style ?

      Histoire de savoir si cela sert à quelquechose que je me plonge dans les entrailles du plugin dans l’espoir de trouver le bon endroit ou si c’est peine perdu :)

    • j’ai déjà tester de modifier le Leaflet.GoogleMutant.js mais sans succès :D

    Répondre à ce message

  • Jaseur Boréal

    Bonjour,

    Soit un événement étalé sur plusieurs journées, qui se déroule à trois endroits différents.
    3 points géolocalisés sont associés à cet événement.

    L’affichage des points géo de l’événement est réalisé avec l’inclusion :

    <!-- affichage carte gis du lieu -->
            <BOUCLE_test(GIS){id_evenement}{0,1}> 
            [(#INCLURE{fond=modeles/carte_gis,objets=evenements,zoom=17,zoom_molette=non, id_a_ouvrir, width=99%,scale=oui,autocenterandzoom=oui})]        
            </BOUCLE_test>      
    <!-- fin affichage carte gis du lieu --> 

    Or ce qui se produit, c’est une abondance d’affichage de tous les points géolocalisés existants sur les pays !

    Je ne trouve pas à quel endroit corriger mon erreur dans le code.

    Merci de toutes vos suggestions .
    @+

    Répondre à ce message

  • 9

    Choix d’ IcôneS pour les marqueurs
    il est possible d’avoir différents icônes pour les marqueurs : https://framacarte.org/fr/map/ieo-toponimia-occitana_6746#7/44.594/2.780 (très impressionnant) . Comment ?
    J’essaye de faire la même chose .
    (J’utilisais le plugin géoportail, pour +de1000 objets géotagués. On pouvait associer un mot clé et le logo du mot clé était utilisé comme icône. Une légende quoi. C’était très pratique, et la base pour de la cartographie quand on a des ensembles d’objets)

    • Bonne année !
      je n’avais pas vu Tutoriel : créer une carte interactive avec GIS4 , merci. Donc c’est possible et comment, je suis sur des rails !
      Peut être signaler le tuto dans cet article, et y mettre le lien de la carte framasoft !?

    • En fait je comprend rien au tuto, mais il m’a permit à peu prés de faire ce que je voulais (différents icônes pour les marqueurs, mais sans filtrable et interactivité)
      J’en ai chié ! (j’ai un rapport compétence / motivation pas vraiment favorable)
      Questions :
      -  est ce qu’il est possible d’avoir centrage et zoom correspondant au point gis quand il n’y en a qu’un ? ([j’ai un (#MODELEcarte_gis,objets=ruballmots,centrer_auto=oui,... inclu dans un squelette. Quand il y a plein de point c’est merveilleux : http://xxxx/spip.php?page=gisr&id_rubrique=4 . Moins quand il n’y en a qu’un)
      -  est-ce qu’il est possible d’avoir une carte geoportail en bidouillant ou il ne faut même pas y songer ?

    • Comme indiqué dans un message précédent https://contrib.spip.net/GIS-4?debut_comments-list=-1#forum474068 :

      « Version 4.19.2 : amélioration de autocenterandzoom
      Ne pas utiliser fitBounds si la carte n’affiche qu’un seul point et qu’on passe le paramètre autocenterandzoom. Ainsi on centre la carte sur les coordonnées du point et on zoom sur le niveau passé en paramètre (ou celui par défaut). »

    • Oui, ok. Je m’attendais à ce que le zoom par défaut soit celui du point gis, s’il n’y en a qu’un. (J’ai essayé d’ajouter #ZOOM à « geometry » : « type » : « Point », « coordinates » : [#LON, #LAT,#ZOOM], ...)
      Aucune importance ! le zoom par défaut ira très bien.
      Ce serai sympa (et valorisant pour gis) de signaler possible et de présenter un modèle permettant d’afficher icône selon mot clé (sans besoin d’aller voir le tuto sus-cité qui fait beaucoup plus).
      Je me risque à présenter cette ébauche (pour rubrique ayant mot clé dans le groupe 2) :

      <BOUCLE_gis(GIS){id_rubrique}>
      		{"type": "Feature",
      		"geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
      		"id":"#ID_GIS",
      		"properties": {
      			"title":[(#TITRE*|supprimer_numero|json_encode)],
      			"description":[(#DESCRIPTIF|sinon{#INTRODUCTION}|textebrut|concat{... <a href="#URL_RUBRIQUE">En savoir plus</a>}|replace{"'","\'"}|json_encode)][(#SET{logo_doc,''})]
      			<BOUCLE_mot(MOTS){id_rubrique=#ID_RUBRIQUE}{id_groupe=2}{par hasard}{0,1}>[(#SET{logo_doc,#LOGO_MOT|image_passe_partout{32,32}})]</BOUCLE_mot>
      			[(#GET{logo_doc}|oui)
      			#SET{icon_w,#GET{logo_doc}|extraire_attribut{src}|largeur}
      			#SET{icon_h,#GET{logo_doc}|extraire_attribut{src}|hauteur}
      			[,"icon": (#GET{logo_doc}|extraire_attribut{src}|url_absolue|json_encode)],
      			"icon_size": \[[(#GET{icon_w})],[(#GET{icon_h})]\],
      			"icon_anchor": \[[(#GET{icon_w}|div{2})],[(#GET{icon_h})]\],
      			"popup_anchor": \[1,[-(#GET{icon_h}|div{1.2})]\]]
      		}}
      </BOUCLE_gis>
    • N’hésite pas à proposer un mini article de doc à ce sujet dans la rubrique ici présente, ça pourra en aider d’autres :)

    • Ce serait avec plaisir, mais mon rapport compétence / motivation ↘0
      Il me semble qu’on devrait pouvoir se passer de javascript pour créer une carte interactive, avec un formulaire de choix et une BOUCLE_gis(GIS)objet ?id_objet ?
      Ce qui est curieux avec cette boucle c’est qu’on ne peut pas reprendre #OBJET #ID_OBJET dans une BOUCLE_mot(MOTS)objet=#OBJETid_objet=#ID_OBJET
      Après qcqs tentatives, potassant différentes choses et plugins, j’ai tenté un truc complètement idiot : [(#SETid,#ID_OBJET)] [(#SETobj,#OBJET)] , puis BOUCLE_mot(MOTS)id_objet=#GETidobjet=#GETobj
      Vraiment idiot ! mais pourquoi ça marche ???!!!

      Si vous pouviez me donner une raison à pourquoi ça marche, ça m’aiderait à ne pas croire que je suis trop nul pour essayer encore, là pour moi c’est comme si j’avais une fonction f non défini en x, mais défini en y=x .
      (J’ai aussi le plugin squelettesui ->art4756, à finir, j’essaye à chaque vacances scolaires.. Bref, j’ai oublié les facteurs temps et maux de tête dans mon rapport.)

    • pouf ! j’y suis, je crois. En généralisant un peu moins (en laissant tomber #OBJET, #ID_OBJET, mais si vous pouviez m’aiguiller sur la réponse à ma qt°, j’en mourrai moins bête). Avec #ENV(mots), un formulaire choix de mots, un #MODELE (carte_gis,objets=touslesmots,mots=#ENV(mots) ... et un « json » touslesmots.html BOUCLE_rub(RUBRIQUES) (gis)(id_mot IN #ENV(mots))(« , »)
      Je décante, et je livre fièrement ; dès que possible (faudra vérifier)

    • L’article promis est dans l’espace privé. Si vous voulez tester modifier compléter

    • Super, merci, je relis ça au plus vite :)

    Répondre à ce message

  • 3

    Bonjour,

    J’ai intégré le plugin GIS sur https://www.diocese49.org avec la couche Google Map mais en mobile il intercepte le scroll et ne propose pas d’utiliser les deux doigts pour scroller (comme le fait la carte Google Map intégrée nativement en footer).

    Avez-vous une idée ?

    Cordialement.

    • Aucune idée, je n’assure plus la maintenance du script pour les fonds de google et j’ai souvent recommandé ici de ne pas les utiliser. Je t’invite à voir avec l’auteur du script qui gère ça ici : https://gitlab.com/IvanSanchez/Leaflet.GridLayer.GoogleMutant

    • Je partage le point de vue sur google maps. Il est dommage que dans les mots clés de spip-contrib figure google maps et pas Open Street Map ! (Le mot clé google maps pourrait peut être être plus généralement et judicieusement changé pour ’’carte géo’’ ?... (ce qui conviendrait aussi bien aux 12 articles liés à mot clé)

    • Il est dommage que dans les mots clés de spip-contrib figure google maps et pas Open Street Map ! (Le mot clé google maps pourrait peut être être plus généralement et judicieusement changé pour ’’carte géo’’ ?... (ce qui conviendrait aussi bien aux 12 articles liés à mot clé)

      Ces mots clés ne semblent pas affichés dans les pages publiques du site (ou alors je suis passé à côté), ça doit de d’une vieille version de contrib.

      Tu as certainement remarqué que l’article ici présent est dans la rubrique nommée « Géo, carto, météo » :)

    Répondre à ce message

  • 3

    Bonjour,
    Je commence à utiliser GIS4 sur un site avec un squelette Ahuntzic.
    J’ai commencé à lier les évènements avec les points GIS
    Tout va bien dans l’interface privée, mais rien ne se passait lors de l’affichage dans la partie publique..
    Je pensais avoir trouvé la solution en insérant ceci dans une boucle événements sur la page article, qui ainsi affiche aussi éventuellement le ou les événements liés :

    [(#INCLURE{fond=modeles/carte_gis,objets=evenements,id_evenement,zoom=17,
    width=50%,scale=oui,autocenterandzoom=oui})]

    Ce qui fonctionne bien pour les événements avec point lié, mais pour les autres événements, il est affiché une carte par défaut, centrée sur Paris. Comment donc supprimer cette carte non désirée ?
    Merci de votre aide.

    • Salut, la question a déjà été abordée plusieurs fois dans ce forum, un boucle test et hop :

      <BOUCLE_test(GIS){id_evenement}{0,1}> le code de ta carte ici </BOUCLE_test>

    • Merci beaucoup pour cette réponse rapide. Et désolé , mais vu le nombre de message de ce forum, je n’ai pu tout lire.

    • De rien, et pas de problème, mais tente de faire un effort la prochaine fois en cherchant « un peu plus » avant de demander :p

    Répondre à ce message

  • 7

    Bonjour,

    Est-il possible, pour une personne qui s’inscrit sur le site, qu’il puisse se géolocaliser ?

    Le but étant de lister ces auteurs sur une carte.

    Actuellement, le formulaire #FORMULAIRE_EDITER_AUTEUR ne permet pas cette option (Du moins je n’ai pas trouvé).

    Merci.

    • C’est possible en utilisant la saisie de GIS pour l’insérer dans le formulaire d’inscription à l’aide du pipeline formulaires_fond par exemple, puis avec les pipelines formulaire_verifier et traiter pour attacher le point à l’auteur en question.

    • Oh merci :-)

      Existe-t’il un exemple pour m’inspirer ?
      Car je ne sais pas l’ajouter dans le formulaire d’inscription.

      Gil

    • Non je n’en ai pas en tête, ouille peut-être du côté de la zone...

    • Merci du retour.

      En fait ce que je souhaite faire est de mettre en place un formulaire complet pour les nouveaux visiteurs, qui pourront renseigner leurs coordonnées et leur geolocalisation.

      Cela devra être modifiable par ce dernier dans l’espace public.
      J’ai essayé la modification dans l’espace public avec le crayon mais visiblement ça ne fonctionne pas pour les visiteurs, juste pour mes redacteurs.

      Je suis donc bloqué pour cette fonction.

      Les inscrits n’ont pas besoin d’être redacteurs puisqu’ils ont juste leur fiche qui sera visible.

      D’où la complexité car il s’avère aussi que si ils essayent de modifier leur point géolocalisé, ils verront aussi les autres et c’est assez gênant.

      Je n’ai pas trouvé d’infos fonctionnelles pour ce que je veux faire.

      Donc : help :-)

      Merci.

    • Ton problème vient certainement des autorisations, mais tout ceci sort complètement du cadre de cette documentation adressée aux utilisateurs du plugin GIS et non aux développeurs qui souhaitent bidouiller des trucs plus complexes :)

    • Merci encore.

      Un contributeur - ou b_b - peut-il m’aider même contre rémunération ?
       :-)

      Envoyez vos propositions à gil@culturemediatic.fr

      Merci !!!!!

      Gil

    • C’est on pour moi, le visiteur peut mofifier sa fiche (cf https://forum.spip.net/fr_266781.html)

      Manque plus qu’ajouter la localisation GIS à l’inscription et donner la possibilité au visiteur de la modifier si besoin.

      Re-help ?

    Répondre à ce message

  • 2

    Bonjour,
    Pourquoi le plugin intégré Control.FullScreen.js n’est-il pas utilisable dans le secteur privé pour positionner les points ou définir des polygones avec GIS Geometries 1.11.1 ?
    En effet, la fenêtre utilisable est ridiculement petite, alors que cette fonctionnalité permettrait un travail plus précis et un plus grand confort.
    Sur d’autres, il existe également la possibilité de définir une zone circulaire autour d’un point, pour définir une zone, lorsque l’on ne peux pas positionner précisément un point, est-ce possible d’envisager cette fonction ? (exemple sur https://www.inaturalist.org)
    Bonne journée.
    Michel
    http://laccreteil.fr

    • Salut Michel, je t’ai déjà répondu sur ce point je crois bien : https://contrib.spip.net/GIS-Geometries#forum487023

    • Moi aussi... et je constate que de nombreux sites offrent cette possibilité, c’est pourquoi je pose à nouveau cette problématique sur la table. Car, si on utilise peu GIS ce n’est pas un problème, mais si on l’utilise fréquemment pour définir des secteurs et des points, cela devient vite un vrai problème !
      Mais le problème existe aussi en ce qui concerne le Backoffice (secteur privé) de SPIP (avec sa petite largeur fixe) qui est hérité d’une époque où les écrans étaient en 640X480 et les sites n’étaient pas encore « responsive », les écrans n’étaient pas de 27 pouces en 4K , d’ailleurs un questionnement semble avoir lieu à ce sujet au niveau du core de SPIP.
      Merci beaucoup, pour la réponse rapide et en espérant que ces évolutions arrivent rapidement pour que SPIP puisse donner toute sa puissance !

      Bien à toi.
      Michel (64 ans)
      http://laccreteil.fr

    Répondre à ce message

  • 6

    Depuis quelques temps, je constate que la fonction de Géocodage ne fonctionne plus pour OpenStreetMap FR. Le problèmes est-il connu ? Est-il prévu une amélioration ?

    La version de GIS est 4.44.10

    Bon début d’année

    Répondre à ce message

  • 3

    Bonjour
    J’utilise le plugin Agenda. Les évènements sont systématiquement liés à un article et tous sont dans la même rubrique.
    J’arrive sans problème à afficher tous les évènements de ma rubrique. Les articles donc.
    J’aimerais pouvoir n’afficher que les évènement pas encore passés. Chose que l’on peut faire avec la boucle évènement {evenement_a_venir}
    si vous avez une idée, j vous en serai reconnaissant.

    • Salut,

      1. copier le squelette json/gis_evenements.html dans squelettes/json/gis_evenementsavenir.html
      2. modifier la boucle evenements du squelette pour y ajouter le critère de ton choix
      3. spécifier à ta carte d’utiliser ce json avec le paramètre objets=evenementsavenir

      Et hop :)

    • Merci pour ta réponse.Je vais m’y remettre, j’ai avancé sur mon dev par ailleurs.
      Il me semble bien avoir suivi toutes ces étapes mais je vais réessayer.

    • Il va falloir que je m’y replonge à tête froide car là rien à faire ! Je n’arrive pas à obtenir le résultat souhaité. Le fichier des points ne s’active pas sur la carte !

    Répondre à ce message

  • Bonjour,

    Dans l’interface privée, la carte « Points géolocalisés » (ecrire/ ?exec=gis_tous) n’affiche rien, alors que la liste (?exec=gis_tous&afficher=liste) affiche bien l’ensemble des points. La config de GIS affiche quant à elle la carte correctement et il est possible de piquer des points sur les articles.

    Conséquence : pas d’affichage non plus sur le site public.

    Sur mon serveur de dev qui a la même config et les mêmes plugins, aucun problème. Peut-il s’agir d’un problème de version Json ?

    SPIP 3.2.0 / GIS 4.44.8 - php5.6 / json version 1.2.1

    Répondre à ce message

  • 1
    Michel Suquet

    Bonsoir,

    Suite de ma discussion, mais à propos du code dans la page
    https://www.sambaedu.org/Cartographie-des-serveurs

    Actuellement, j’ai ceci pour le code : <carte_gis1|cluster = oui|clusterMaxZoom = 11|maxClusterRadius = 80|clusterShowCoverageOnHover = oui|clusterSpiderfyOnMaxZoom = oui|centrer_fichier=non|overview=oui|zoom=1|kml=27>

    J’ai mis quelques paramètres mais je n’ai pas l’impression qu’ils remplissent tous leurs fonctions : peut-être n’y a-t-il pas encore assez de données ?

    Cordialement,

    Michel Suquet

    • Re, le clustering n’agit que sur les points générés par les fichiers geojson de GIS, pas sur ceux des KMLs. Par contre, la solution que je te propose dans l’autre fil de discussion permettrait de « clusteriser » les points de ta carte.

    Répondre à ce message

  • 3
    Michel Suquet

    Bonsoir,

    nous utilisons votre plugin pour cartographier l’utilisation de la solution libre SambaÉdu :
    https://www.sambaedu.org/Cartographie-des-serveurs

    Les utilisateurs notifient le code de leurs établissements :
    https://www.sambaedu.org/Recenser-un-serveur-SambaEdu

    Le formulaire est basé sur le plugin Formidable : nous récupérons le fichier des réponses au format csv, puis un collègue a mis au point une moulinette pour obtenir un fichier kml que nous mettons dans l’article de cartographie.
    https://git.backbone.education/ggekiere/csv2umap

    Je me demande si on peut automatiser tout cela en modifiant directement le fichier kml à partir du code UAI (ex-RNE) recueilli ? Qu’en pensez-vous ?

    Cordialement,

    Michel Suquet

    • Perso, je passerais par un fichier geojson généré à partir des réponses du formulaire formidable. Puis, pour l’afficher dans la carte, avec un squelette geojson dispo dans squelettes/json/gis_serveurs.html, utiliser le paramètre objets=serveurs pour que ce soit celui-ci qui alimente la carte.

    • Michel Suquet

      Merci pour votre réponse mais je ne vois pas comment la mettre en œuvre :
      → comment générer un fichier geojson à partir des réponses du formulaire ?
      → il faut écrire quoi dans la page gis_serveurs.html ?
      → le paramètre, il faut l’indiquer dans le code <carte_gis1|zoom=8|limit=100|scale=oui|objets=serveurs> ?

      Peut-être tout cela est documenté ?

      Cordialement,

      ichel Suquet

    • Salut,

      comment générer un fichier geojson à partir des réponses du formulaire ?

      En s’inspirant des fichiers fournis par GIS, par exemple https://zone.spip.org/trac/spip-zone/browser/_plugins_/gis/trunk/json/gis_articles.html

      le paramètre, il faut l’indiquer dans le code <carte_gis1|zoom=8|limit=100|scale=oui|objets=serveurs> ?

      Oui, comme expliqué dans la partie Le paramètre objets de cet article :)

    Répondre à ce message

  • 2

    Bonjour, j’ai un problème d’identification du champ #PAYS pour le Royaume Uni :
    -  en recherchant « Liverpool » avec géocodeur, le pays est « Royaume-Uni »
    -  en plaçant le marqueur à la souris sur « Liverpool », le pays devient « United Kingdom »
    Idem pour d’autres villes du Royaume Uni, ce qui me pose des problèmes de recherche par pays bien sûr.

    GIS 4.44.7 sur SPIP 3.1.3

    Merci de vos réponses

    • Cela vient des données renvoyées par le geocoder et on n’a pas la main là dessus. Essaye peut-être en utilisant le geocoder alternatif (nominatim) avec ceci dans mes_options.php :

      define('_GIS_GEOCODER','nominatim');
    • Merci de ta réponse rapide, United Kingdom devient UK seulement, mais le code pays est par contre bien renseigné dans les deux cas, je vais essayer de jouer la dessus.

    Répondre à ce message

  • 1

    Bonjour,
    Je souhaiterais savoir comment ne pas demander et ne pas géocaliser l’internaute.
    J’ai décoché geocoder dans la config admin mais toujours une demande du navigateur à l’affichage de la carte.
    Une idée, merci.
    lien vers la page

    • Salut, ça n’est pas le geocoder qui fait ça, tu peux continuer à l’utiliser, c’est l’option « Centrer la carte sur l’emplacement de l’utilisateur à la création » qu’il faut désactiver ;)

    Répondre à ce message

  • 2

    Bonjour à tous,

    Considérons la page suivante :
    http://www.systella.fr/contact/article/nous-rejoindre

    J’essaie de faire disparaître sans succès la bordure du pointeur de localisation. Je pense avoir tout essayé (depuis le fichier squelettes/perso.css). J’ai toujours .main img qui me rajoute une bordure de 1px.

    J’utilise spip 3.1.7 avec la dernière version de Multiflex.

    Une idée ?

    Bien cordialement,

    JB

    • Le problème vient de la CSS de ton squelette, cf :

      .main img  { border: 1px solid #969696; }

      http://www.systella.fr/local/cache-css/4de8bdc762b787428209d5c740a453b6.css

      La règle en question ajoute des bordure sur toutes les images, donc celle des marqueurs et des tuiles de la carte. Retire la, et ça réglera le pb. Sinon, tu peux tenter de la surcharger avec ceci :

      .carte_gis img { border: initial; }

    • Merci pour la réactivité.

      .main img border : 1px solid #969696 ; provient de Multiflex et non de mon CSS. En ajoutant .carte_gis img border : initial ; , ça fonctionne.

      Merci pour tout,

      JB

    Répondre à ce message

  • 3

    Bonjour,

    J’ai à créer une carte interactive avec les départements de France et une option pour l’international.

    Un secteur régional devra être modifiable (ajout ou suppression d’un département) et un lien vers le site web de l’agent devra être intégré.

    La problématique, est comment attribuer un « agent » à un ou plusieurs départements (cf image jointe) en utilisant les points géolocalisés de l’auteur ?
    Je peux le localiser par ville, mais par département, à part utiliser du XML je ne vois pas.

    L’idéal serait d’afficher une carte avec en couleur les départements liés à cet auteur, et une info qui s’affiche pour faire apparaître les coordonnées de cet agent (Surcharge GIS).

    Avez-vous vu passer de tels exemples ?

    Merci par avance.

    Gil

    • Correction : KML pas XML :-)

    • Perso je ne le ferais pas avec des points, mais plutôt avec des champs extras contenants le numéro du département, puis côté js faire une correspondance entre un json généré à partir des extras + un geosjon (ou toposjon) contenant les formes des départements et leur numéro.

    • Merci de ce retour.

      En effet pas très simple, mais je creuse :-)

      Effectivement, je voudrais au plus simple pour le client qui doit mettre à jour, en ajoutant un champ extra « départements » séparés par des «  ; »

      Ensuite, faire une carte avec une couleur (zone réactive) qui regroupe tous les départements d’une personne et affiche au clic les infos ce cet auteur.

      Mais là, je bloque...

      Même si cela nécessite un dev de votre part, merci de me transmettre votre offre. Ça me ferait gagner du temps, à moins que ce soit plus simple que je ne l’imagine :-)

    Répondre à ce message

  • 4

    Bonjour,
    Mon objectif, remplacer la framacarte mon site http://bdtopoc.org en passant par une imigration du site sous Spip.
    => https://framacarte.org/fr/map/ieo-toponimia-occitana_6746#7/44.590/2.785
    1-
    Il s’agit d’importer dans un premier temps 11 000 objets (points, lignes et polygones). [ importer avec le pluging import_csv]
    Donc autant d’ »articles_spip » a créer.
    2-
    Quel est/sont le(s) conteneur(s) de la geometrie pour Gis ? ( = champs à renseigner)
    Merci pour ce plugin, j’ai lu toute la doc, mais la synthèse n’est pas encore claire. merci de votre expérience...

    • Suite...

      j’ai bien vu que la geometrie est ds l’expressIon « kml=x »
      comme je ne me vois pas creer 11000 fichiers ni les charger,
      autre solution ?
      une variable ?
      🤗

    • Salut, si tu souhaites utiliser d’autres types de formes que des points il te faudra utiliser le plugin GIS Geometries en plus de GIS. Les objets de GIS sont stockés dans la table spip_gis, l’étude de ses champs devrait te renseigner sur le type de données qui y sont stockées ;)

    • Merci de la reponse rapide, je vais voir tout ça...

      bizarre, je me retrouve avec un plugin gis_geom et un autre gis_geometries, quid ?

    • gis_geom est le préfixe (identifiant technique) de GIS Geometries.

    Répondre à ce message

  • 7

    Bonsoir,

    Sur un Safari est 10.0.2 (12602.3.12.0.1) et Mac OS Sierra 10.12.2

    Le bouton rechercher ne fonctionne plus depuis peu de temps.
    Pas d’erreur en debug. Cache vider et ça change rien.

    Une idée ?
    Merci.

    • Bonjour, personne pour ce problème ?

    • Salut, le problème est-il toujours d’actualité ?

    • Laëtitia

      Bonjour,
      j’ai le même problème sous Windows,
      SPIP 3.1.4 + écran de sécurité 1.3.2, GIS 4.44.2

    • Salut, le plus efficace serait que tu passes sur IRC pour qu’on puisse régler ça en direct.

      http://irc.spip.net/

    • Laëtitia

      c’est résolu, après la mise à jour du plugin le bouton « Rechercher une adresse » à la création d’un nouveau point, il ne réagissait plus. Au final le lendemain tout était rentré dans l’ordre, sûrement un histoire de cache à vider.

    • Hello,
      Même comportement bouton « recherche » inactif !...
      Un vidage de cache dans l’interface privée et c’était reparti
      Wait and see ;-)
      Dans tous les cas top cette fonction :-D
      Amitié

    • hello,

      J’ai le problème sur chrome en ce moment, un vidage des caches ne corrige pas le problème.
      Et sur firefox pas de problème ....

    Répondre à ce message

  • 4

    Cher b_b, bonjour.

    Je viens tout juste de finir de traduire les fichiers lang du squelette Géodiversité ver le portugais du Brésil et bientôt je vais traduire les fichiers lang de GIS 4. Comment je peux vous envoyer les fichiers lang traduits ?

    Je voudrais savoir dans quel dossier dans l’arborescence de SPIP je devrais installer le squelette Géodiversité. Mon idée est de produire un Atlas de la biodiversité de Pernambuco, où j’habite actuellement au Brésil.

    Merci beaucoup pour ce merveilleux plugin !

    • Je viens juste de voir que GIS 4 a déjà été traduit vers le portugais du Brésil. :P

    • Salut Filipe, merci pour la proposition de traduction. Pour Géodiversité, tu peux partager ton travail depuis l’espace de traduction de la communauté, cf :

      https://trad.spip.net/tradlang_module/geol/

      Hésite pas à me contacter si tu as des problème pour ajouter tes traductions.

    • le plugin géodiversité est caché dans les plugins incompatibles. il n’est plus possible de l’activer. Celà vient peut être de la mise à jour de spip ?

    • Essayons de ne pas polluer le forum du plugin GIS avec geodiversite svp :p

      Géodiversité n’est pour l’instant compatible qu’avec SPIP 3.0, une branche pour SPIP 3.1 est en cours de test.

      Si tu souhaites en causer, passe sur http://irc.spip.net/

    Répondre à ce message

  • 1

    La question a sans doute déjà été posée mais comme je n’ai pas trouvé de trace, je réessaie.

    Peut-on proposer une iframe d’une carte pour aider à sa dissémination sur le web ?

    J’aimerais que les cartes de Bibliosurf se retrouvent ailleurs sur le web.

    D’avance merci pour le retour.

    • Salut,

      est-ce que tu as essayé en créant un squelette contenant uniquement ta carte et en faisant l’iframe avec ?

      jean marie

    Répondre à ce message

  • 2

    Bonjour,

    Je viens d’installer GIS4 sur un site (ce que j’ai déjà fait par ailleurs) en version 4.44.2.
    La configuration fonctionne bien.
    Je l’appelle dans mon squelette sommaire avec le code suivant

    [(#INCLURE{fond=modeles/carte_gis,zoom=13,  lat=46.18723623907256, lon=6.223551034927368, scale=oui })]

    mais il n’y a rien d’affiché à part la zone blanche prête à l’accueillir.
    Je vous donne l’URL actuelle : http://www.urgence-ophtalmo74.com/

    J’ai mis une clé API de google map mais m^me avec openstreetmap cela ne fonctionne pas

    Merci d’avance pour votre aide ou vos conseils
    Jérôme

    • Salut, ta page comporte une erreur javascript, le problème vient certainement de cela :

      Error: Syntax error, unrecognized expression: a[href^=#]:not([href=#]):not([role=tab]), .back_to_top 1 jquery.js:1502:8

      De plus, ta clé d’API ne semble pas valide cf "Google Maps API warning: InvalidKey https://developers.google.com/maps/documentation/javascript/error-messages#invalid-key" .

    • Bonsoir b_b,
      Merci pour ton analyse.

      J’avoue ne pas être une star en javascript...mais en appelant le fichier jquery.min.js inclus dans ce template cela fonctionne mais je suppose qu’il créée un autre conflit avec celui inclus dans SPIP.

      Si tu as une idée, je suis preneur. et encore une fois je te remercie pour ton suivi

      Pour l’API, j’avoue ne pas comprendre l’erreur car j’ai demandé une nouvelle clé pour ce projet. Bon je viens d’en générer une nouvelle et cela semble bon.

      Bonne soirée
      Jérôme

    Répondre à ce message

  • 1

    Bonjour à tous,

    J’utilise le plugin « Grappes » et je lie un point et un seul, à chacune de mes grappes.
    Je veux qu’apparaissent uniquement le point pour chacune de mes grappes.
    Dans une boucle grappe j’ai écrit :

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

    j’obtiens bien une carte mais avec les points de toutes les autre grappes.
    Si quelque’un à une idée ?
    Merci !

    • Résolu en utilisant :

         <BOUCLE_point(GIS spip_liens_gis){id_grappe}>
      #INCLURE{fond=modeles/carte_gis_objet,
          id_carte_gis=grappe,
          objet=grappe,
          id_objet=#ID_OBJET,
          zoom=10,
          zoom_molette=oui,
          fullscreen=non,
          centrer_auto=oui}
                    </BOUCLE_point>
                     

      Si ça peut aider.

    Répondre à ce message

  • 4

    Hello,
    Quelqu’un a reussi à ajouter la clé api_key_google dans la configuration du plugin GIS en 4.42.3. Il me propose de mettre que une clé pour Bing mais pas pour Google.

    Merci a vous :)

    • Tu dois avoir un problème avec un des fichiers du plugin, essaye de le supprimer du serveur puis de le réinstaller pour voir. Sinon, passe en discuter sur IRC pour qu’on voir ça ensemble, cf :

      http://irc.spip.net/

    • Merci pour votre réponse.

      J’ai essayé de supprimer le fichier en cache pour le forcer à se recréer mais ça n’a rien changé. Du coup j’ai modifié à la main le fichier en cache pour ajouter l’input permettant de renseigner l’api_google_key.
      C’est pas idéal mais au moins ca fonctionne :)

      Je verrais du coup si la réinstallation du plugin fonctionne.

      Bonne journée

    • Bonjour à tous

      Console sous Firefox et Chrome : « Une demande de géolocalisation ne peut avoir lieu que dans un contexte sécurisé. »
      L’API HTML5 Geolocalisation ne serait plus supportée par CHROME et FIREFOX

      Geolocation API Removed from Unsecured Origins in Chrome 50

      Est il dorénavant nécessaire d’utiliser un protocole https pour utiliser GIS4 ?

    • Salut,

      Est il dorénavant nécessaire d’utiliser un protocole https pour utiliser GIS4 ?

      Non, aucunement. Seulement si tu utilises l’option localiser_visiteur qui se base sur l’API HTML5 de géolocalisation qui impose le https dans beaucoup de navigateurs.

      PS : vu les changements récents du coté des navigateurs, à terme ils afficheront une alerte sur tous les sites non https et beaucoup de fonctionnalités ne seront disponibles que si https est présent.

      PS 2 : tu aurais du créer un nouveau fil de discussion spécifique à ta question.

    Répondre à ce message

  • Salut Bruno,

    Comment on doit faire pour afficher des petites images dans les infobulles des marqueurs d’une carte à la façon Géodiversité ou Les Taxinomes ?

    http://www.geth.zoo.bio.br/spip.php?article9

    Répondre à ce message

  • 2

    EMPLACEMENT DE LA SURCHARGE DES AUTORISATIONS

    J’ai plusieurs fois abordés le sujet, désolé de revenir sur un truc assez simple... mais je n’arrive pas à surcharger les autorisations de GIS d’une façon pérenne. A chaque fois, je modifie directement le fichier gis_autorisation.php, et donc cela repart à chaque mise à jour de GIS...

    J’ai bien lu l’article https://programmer.spip.net/Creer-ou-surcharger-des, mais je ne vois pas le truc exact à faire. Si je rajoute dans mes_options.php la même fonction (genre autoriser_gis_modifier_dist), php m’annonce que la fonction est en double...

    Si quelqu’un a un peu de temps en cette rentrée pour m’expliquer comment faire en détail...

    Merci à vous,
    Julien

    Répondre à ce message

  • 1
    jeromeD

    Bonjour,

    Je souhaite inclure une carte GIS dans ma page sommaire.html avec une grande hauteur : 920px. Jusque là pas de soucis.
    Toutefois en version mobile, j’aimerai que la hauteur revienne à 400px.

    J’ai essayé de ne pas indiquer de hauteur dans l’inclusion et de la mettre dans le css avec la version > à 768px et < à 768px mais la carte prend la hauteur par défaut de 400px du plugin.

    Alors je me suis demandé si je ne pouvais pas implanter deux fois la carte avec chacune la bonne hauteur et cacher l’une d’elle avec un display:none mais si cette solution est la bonne !!, comment implanter deux fois la cartes dans le code...lorsque je mets les deux inclusion, il n’y a plus de cartes.

    Merci pour votre aide
    Jérôme

    • jeromeD

      Re,

      J’ai trouvé comment insérer 2 cartes dans la même page...je ne cherchai pas au bon endroit.

      Toutefois, est-ce que quelqu’un a une solution plus pertinente pour l’objectif que je me suis fixé :

      Je souhaite inclure une carte GIS dans ma page sommaire.html avec une grande hauteur : 920px. Jusque là pas de soucis.
      Toutefois en version mobile, j’aimerai que la hauteur revienne à 400px.

      Merci d’avance pour le coup de main

      Jérôme

    Répondre à ce message

  • 5

    Salut,
    J’ai un comportement bloquant en 4.43.2 et 4.44.2.
    En allant dans les config, si je coche quelque chose dans « Activer la géolocalisation sur les contenus : », j’ai un noajax qui apparaît et ne prend pas en compte la modif, du coup, la carte ne s’affiche pas ;)

    Ce qui est étonnant, c’est que j’ai aussi un noajax qui apparaît dans la config du site (3.0.17) sauf si je désactive GIS4.

    J’ai désactivé tous les plugins, c’est uniquement lorsqu’il est activé que j’ai ce souci.

    • Ah oui, du coup, question bonus ;)

      Comment « Activer la géolocalisation sur les contenus » sur Article sans avoir accès au panneau de config de l’espace admin, mais en passant par du dur dans les fichiers ?

      Merci !

    • Salut, ce genre d’erreur est très souvent due à un fichier xxx_options.php endommagé (ou peut-être le .php du formulaire de config de GIS dans ton cas). Vérifie que tu n’as pas une ligne vide en tête d’un de ces fichiers, ça pourrait être la cause de ton problème.

    • Merci. Je ne trouve pas ça dans les options.php ou le fichier de config de GIS.
      En fait, j’ai transféré une carte existante vers un nouveau site.
      Du coup, Spip 3,0,17 est installé à neuf (histoire d’avoir la même version de spip), donc sans mes_options.php.
      Quand je désactive gis, je n’ai plus de problème de noajax en interface admin. Quand je le réactive, ça revient. Je n’ai fait aucune modif dans le code du plugin (test en 4,43 et 4,44).

      J’ai importé les tables spip_gis et spip_gis_lien de l’ancienne BDD vers la nouvelle BDD (spip_gis_lien restant vide)

      J’ai une liste des points qui apparaît bien

      #BLOC_TITRE
      Liste au format texte (Tri par code postal) <br/>
      #BLOC_DEBUT
      
      <BOUCLE_gis(GIS){par code_postal}>
      <h4>#TITRE</h4>
      #DESCRIPTIF
      </BOUCLE_gis>
      #BLOC_FIN

      Mais pas la carte en mettant le même code qu’avant dans l’article.

      
      

      Je ne suis pas sûr qu’en réglant cette histoire d’ajax, ça m’avancera...

      Merci en tout cas de m’avoir donné des pistes !

    • Le plus simple serait que tu passes en causer en direct sur IRC, comme ça on verra ça ensemble ? Je devrai être connecté demain ++

      http://irc.spip.net/

    • Merci b_b !

      Ça venait d’espaces devant le

      <?php

      d’un fichier de lang local (local_fr.php en l’occurrence).

      Donc, si j’ai bien fait le tour sr le net, noajax, apparaît quand il y a des espaces devant le

      <?php

      d’un fichier (à priori ajouté comme mes_options.php ou local_fr.php...) ou peut venir de l’activation de html 5 dans l’interface admin.

      Merci encore !

    Répondre à ce message

  • 5

    Bonjour,

    Comment bloquer l’interaction avec la carte et la rendre fixe comme une image ?
    Merci.

    • Cela n’était pas vraiment l’objet du plugin il n’y a pas d’option toute faite pour le faire, mais tu peux y arriver en passant toutes les options d’interaction de l’objet de la carte à false en javascript, cf :

      	zoomControl: false,
      		closePopupOnClick: false,
      		boxZoom: false,
      		doubleClickZoom:false,
      		dragging: false,
      		keyboard: false,
      		scrollWheelZoom: false,
      		tap: false,
      		touchZoom: false

      http://leafletjs.com/reference-1.1.0.html#map-option

      Amha, tu ferais mieux d’utiliser une API de carte statique sous forme d’image pour ce type d’usage.

    • Merci pour la réponse, je vais essayer d’intégrer ce script !
      Et non, car enfaite j’aimerai juste pouvoir désactiver l’interaction sur mobile et non sur desktop ;)
      Je pense personnellement que ça devrait être une option à intégrer dans cette API :)

    • Ok super ça marche en rajoutant les options que tu m’as donné !
      Par contre j’aimerais enlever ces options lorsque je suis sur desktop, aurais-tu une idée pour le faire ?
      Merci d’avance

    • Hop, de rien pour la réponse :)

      Je pense personnellement que ça devrait être une option à intégrer dans cette API :)

      Le besoin me semble à la marge, donc pas forcément nécessaire de « surcharger » le code avec cette option (pour l’instant). On verra si dans l’avenir la demande revient plusieurs fois pour l’intégrer ;)

      Par contre j’aimerais enlever ces options lorsque je suis sur desktop, aurais-tu une idée pour le faire ?

      Pas trop d’idée, à part utiliser une libraire javascript qui détecterait le mobile/desktop, mais tu peux aussi le faire sans lib assez facilement, il y pas mal d’articles en ligne à ce sujet, je te laisse les trouver :)

    • Super j’ai réussi ! :D
      Alors pour ceux qui voudraient faire pareil que moi (bloquer toute interactivité avec la carte lorsqu’on est sur mobile pour éviter de scroller la map à l’infini plutôt que de descendre dans la page) :
      Il faut créer un dossier dans squelettes/ du nom de « javascript » et dedans il faut copier/coller le fichier www/plugins/gis/javascript/leaflet.gis.js. Une fois ceci fait, il ne reste plus qu’à modifer le bout de code pour faire ce que l’on veux :)

      En haut du fichier rajoutez la fonction suivante trouvée à ce lien :

      window.mobileAndTabletcheck = function() {
      ...
      Allez cherchez la fonction dans le lien donné. La fonction est beaucoup trop longue !

      Il faut ensuite utiliser cette fonction pour savoir si on est sur mobile ou non. Si c’est le cas, ajoutez dans les options les arguments donnés par b_b pour figer la carte.

      J’espère que ça pourra être utile :)

    Répondre à ce message

  • 1

    Bonjour,

    Sur la dernière version (4.44.0), sur n’importe quelle page avec une carte affichée, j’ai ce warning javascript :
    Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.

    Ca n’empêche pas le fonctionnement mais je suis un peu maniaque et j’aime bien quand c’est propre sans erreurs ni warnings :)

    Merci !

    Répondre à ce message

  • 2
    Julien

    SUPERPOSITION D’UNE CARTE

    Est-il possible de superposer une carte dessinée, en lui indiquant les bornes en latitude et longitude, sur une carte GIS ? (carte trop compliquée pour en faire un kml).

    Voici l’idée : http://www.madeingouttedor.paris/Decouvrez-la-Goutte-d-Or
    (pour le moment, c’est fait avec un autre point qui à pour logo la carte... cela pourrait le faire, sans zoom, mais comment se gère la superposition des marqueurs ? Qui a le z-index le plus haut ? car là c’est la carte au dessus...)

    Merci.

    Répondre à ce message

  • spartefr

    Bonjour,
    Je souhaiterais pouvoir intégrer dans un article un lien vers un point géolocalisé, afin que l’internaute soit directement dirigé sur ce point de la carte ?
    Pour aller de la carte vers les articles, pas de problème, mais je ne vois pas comment faire l’inverse ?
    J’ai essayé ces deux syntaxes, mais ça ne fonctionne pas...

    <a href="#carte_gis1" onclick="javascript:gis_focus_marker(#ID_GIS,2);">Carte</a>
    <a href="#carte_gis/2">Carte</a>

    Merci pour votre aide !

    Répondre à ce message

  • 2
    Caille

    Bonjour

    Problème déjà remonté mais peut être pas assez documenté, dans internet explorer (tésté sous IE ) le plugin configuré pour utilisé GMAP n’affiche pas la carte mais seulement un bloc gris avec en bas à droite un lien vers leafletjs.com.

    J’utilise GIS 4.43.2 sur un spip 4.1.3, l’url d’une des pages concernée est : https://www.musees-normandie.fr/-musees-normandie-.html.

    L’erreur JS est remontée dans la console IE :
    « Promise » est indéfini
    eval code (11) (9726,1)
    dans le fichier #PRODUIREfond=javascript/gis.js

    En espérant avoir assez documenté.
    ++

    Répondre à ce message

  • 3

    Salut b_b,
    Je cherche toujours a supprimé un point GIS quand le visiteur est connecté au niveau du site public, j’ai bricolé ceci mais cela ne marche toujours pas

    NB : #ENVgis est l’id_gis a supprimé (je le récupére au niveau de l’url)

    <form class="bouton_action_post ajax bind-ajax" method="post" action="#URL_PAGE{profil_voir}&arg=auteur&arg=editer_lien_gis&arg=delier#ENV{gis}auteur#SESSION{id_auteur}" aria-live="off">
    <input type="hidden" name="var_ajax" value="1">
    <div>
    <input name="arg" value="auteur" type="hidden">
    <input name="arg" value="editer_lien_gis" type="hidden">
    <input name="arg" value="delier/#ENV{gis}/auteur/#SESSION{id_auteur}" type="hidden">
    <input name="redirect" value="./?page=profil_voir&amp;id_auteur=#SESSION{id_auteur}" type="hidden">
    <button type="submit" class="submit">
    Détacher<img src="../prive/themes/spip/images/supprimer-12.png" alt="X" width="12" height="12">
    </button>
    </div>
    </form>

    aidez moi a résoudre ce problème please

    Répondre à ce message

  • 13

    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 :

        <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}

    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 sujet a déjà été abordé maintes fois dans ce forum, une petite recherche devrait t’aider à trouver la réponse adaptée...

    • 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.

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

      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 :

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

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

    • 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 :

          #BLOC_TITRE
          Ajouter ou modifier votre point sur la carte
          #BLOC_DEBUT
          <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}
           <script type="text/javascript">
                          /*<![CDATA[*/
                                  ;(function($){
                                          $(function(){
                                                  $('#onglets_titre_1').on('click', function(){
                                                          map1.invalidateSize();
                                                  });
                                          });
                                })(jQuery);
                          /*]]>*/
                          </script>
          #BLOC_FIN 

      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.

    • 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

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

      </BOUCLE_test>
      #BLOC_TITRE
      Ajouter ou modifier votre point sur la carte
      #BLOC_DEBUT
      <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}
       <script type="text/javascript">
                      /*<![CDATA[*/
                              ;(function($){
                                      $(function(){
                                              $('#onglets_titre_1').on('click', function(){
                                                      map_editer_gis_oui.invalidateSize();
                                              });
                                      });
                            })(jQuery);
                      /*]]>*/
                      </script>
      #BLOC_FIN

      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é ?

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

    • 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.

    • Bonjour Jin,
      J’aimerai autorisé mes visiteurs a ajouter, modifier ou supprimer les markers sur la carte sur la partie public du site, j’ai cru comprendre que vous avez voulu faire la même chose, la seule différence vous localisez les articles et moi les auteurs (chaque auteur doit pouvoir se géolocaliser tout seul)
      b_b je suis vraiment désolé, mais les choses semblent être facile et évident pour vous, vous êtes FORT pas nous, nous sommes de pauvre intégrateur
      Vous dites de surcharger les autorités gis
      https://zone.spip.org/trac/spip-zone/browser/_plugins_/gis/trunk/gis_autoriser.php#L68

       [(#AUTORISER{modifier,gis,#ID_GIS})
      #FORMULAIRE_EDITER_GIS{#GET{id_gis},'auteur',#ID_AUTEUR,#URL_AUTEUR}
      ]

      ne me permet pas d’ajouter ou modifier, je séche, je tourne en rond, alors si quelqu’un l,a une fois réussit qu’il me donne un cou de main please !!!!

    • Salut a b_b et a tous les spipeurs,
      Le visiteur arrive a créer et a modifier un point, il reste juste la suppression ou délier un point, est ce quelqu’un peut m’aider a le faire ??? Merci

    • Bonjour ???

      c’est bein que tu sois arrivé à permettre aux auteurs de créer et modifier un point. Si c’est pas hyper simple ça pourrait servir à d’autres que tu indiques comment tu as fait. De plus le savoir pourrait m’aider à comprendre ce qui te manque pour délier ou supprimer un point.

      Quelles sont les permissions de tes auteurs ? ont-il un accés à l’espace privé comprenant GIS ?
      As-tu un message d’erreur ? Ont-ils accès à un formulaire d’édition de point ?
      Si tu fouille dans les fichiers du plugin il y a plein de formulaires il me semble, l’un d’eux te servira peut-être.

    • Bonjour et excuses moi Jin,
      Je viens de voir votre réponse, comme je suis resté plusieurs jours sans réponse et j’ai pratiquement fait tous les forums de spip, alors j’avais abandonné l’idée :)
      Pour la modification, dans mon skelette j’ai listé tous les points gis de l’auteur connecté avec cette boucle :

      <BOUCLE_artlieux(GIS spip_gis_liens){id_auteur=#SESSION{id_auteur}}{" &nbsp; "}>
      <a href="#SELF&id_gis=#ID_GIS" class="ion-ios-location">[(#CODE_POSTAL) ][(#VILLE)]</a>
      </BOUCLE_artlieux>

      et dans la meme skelette j’ai mis ce code

      <!-- Modifier un point -->   
      <BOUCLE_carte(AUTEURS){statut !=poubelle}{id_auteur=#SESSION{id_auteur}}>
      [(#AUTORISER{modifier,gis,#ID_GIS}) #FORMULAIRE_EDITER_GIS{#ENV{id_gis},'auteur',#ID_AUTEUR,#URL_PAGE{profil_voir}}
      ]</BOUCLE_carte>

      et #ENVid_gis c’est l’id_gis a modifié que j’ai récupéré dans l’url aprés avoir cliqué sur le lien

      et pour ajouter

      <!-- AJOUTER UN POINT-->
      <BOUCLE_carte(AUTEURS){statut !=poubelle}{id_auteur=#SESSION{id_auteur}}>
      #SET{idaut,#ID_AUTEUR}
      <BOUCLE_unpoint(GIS spip_gis_liens){id_auteur}{0,1}>
      </BOUCLE_unpoint>
      #SET{id_gis,nouveau}
      <//B_unpoint>						#FORMULAIRE_EDITER_GIS{#GET{id_gis},'auteur',#GET{idaut},#URL_PAGE{profil_voir}}
      </BOUCLE_carte>

      Il me reste la suppression, j y arrive toujours pas, j’ai pausé la question dans tous les forums mais j’ai toujours pas de réponse, moi même j’ai testé pas mal de chose mais RIEN. je continue si je trouve quelques choses je reviens en attendant si quelqu’un peut nous aidé a passé ce cap serait génial. Pour répondre a votre question mes visiteurs n’ont pas accès a l’espace privé, tout se passe sur le site public dés que le visiteur se connecte........

    • Tu as déjà accompli pas mal de choses en réussissant à faire fonctionner les autorisations.

      Pour enlever les points, as-tu essayé de t’inspirer des boutons dédiés à cette tâche dans le squelette de la partie privée ?
      Je n’ai pas de site sous la main pour te montrer, si tu n’y arrive pas j’irais fouiller dans mes squelettes pour voir si j’avais trouvé un moyen de faire ça (je suis pas sûr).

    • Bjr Jin et merci pour la réponse,
      J’ai tout essayé, peut être je regarde plus loin que je ne devrais :) mais bon si vous avez un truc a me montré, peut être a partir de là je peux réussir a le faire, il faut bien fouiller vous allez trouvé quelques choses :)

    Répondre à ce message

  • 2

    Bonjour,

    Je viens de parcourir tellement de messages que ... bref. J’ai un souci je pense d’interaction entre la librairie Isotope et GIS.

    Je veux afficher une petite carte dans des items Isotope (layout Masonry). La carte s’affiche bien mais elle se décale de sorte à ce que la pointe du seul marker soit exactement en haut à gauche du container de la carte, ce qui fait que je vois juste un bout de carte en haut à gauche, le reste un fond gris.

    Avec la main je peux attraper ce bout de carte et le décaler vers la bonne position ... plus rigolo, si j’ouvre « examiner l’élément » de Firefox, la carte apparait et se positionne correctement. J’ai bien sûr essayé je pense absolument toutes les combinaisons de paramètres qui semblent pouvoir influer sur ce genre de souci (zoom, auto.., style, supprimé cluster, width, heigth, ...), j’ai aussi encapsulé la carte dans un div que j’ai essayé de positionner de toutes les façons existantes, rien n’y fait ...

    Donc bouteille à la mer, si quelqu’un a déjà mis une carte GIS dans un item Isotope et que ça marche, je serai intéressé par une piste (déjà me dire si ça marche peut m’amener à penser que c’est possible, là j’ai perdu espoir).

    Merci. Pierre.

    • Salut,

      Comme toujours, un lien vers la page en question nous permettrait de t’aider :)

      Ton problème est un classique qui arrive aussi lorsqu’une carte (ou d’autres éléments « dynamiques ») est affichée dans un onglet géré en javascript, sujet à souvent été abordé dans ce forum. Je te laisse rechercher dans les messages pour l’explication détaillée.

      En résumé, il faut que tu utilise l’événement ready de la carte pour lui appliquer la méthode invalidateSize() quand elle est chargée, cf https://contrib.spip.net/Astuces-GIS#api_js

    • Bonsoir,

      Bon encore 2 petites heures de grenouillage mais ça a l’air bon. Le site n’est pour l’instant pas public donc pas visible.
      Pour ceux que ça intéresserait voici ce que j’ai fait donc pour combiner la librairie Isotope Metafizzy avec GIS/leaflet, sachant que j’ai potentiellement autant de cartes que de blocs affichés. Chaque carte a un id unique, elle est affichée grace à un modèle :

      [<div class="carteosm">(#MODELE{carte_gis, objets=articles, id_article=#ENV{id}, id_carte_gis=#ENV{id}, autocenterandzoom=oui, centrer_auto=oui, limit=10, scale=non, cluster=non, zoom=15, width=100%, height=200px})</div>]

      arrangeComplete est un event d’Isotope qui se déclenche lorsque les blocs ont été ré-arrangés, à partir de là j’applique invalidateSize() sur chaque carte en les sélectionnant par les id commençant par « map »

      $grid2.on( 'arrangeComplete',
      function( event, laidOutItems ) {
      $('div[id^="map"]').each(function() {
      var mapid = $(this).attr('id');
      var map = $("#"+mapid).get(0).map;
      map.invalidateSize();
      })
      }
      );

      Merci pour la piste invalidateSize().

      Pierre.

    Répondre à ce message

  • 3

    Bonjour,

    peut-être pourrez-vous m’éclairer sur la question... J’ai un soucis de lien dans mon infobulle, les : (deux points) de mon http:// disparaissent. Voici le code allégé :

    #SET{json, monfichier.json}
    
    <BOUCLE_carto(DATA){source json, #GET{json}}{datapath 0}{","}>
    
    {
    "type": "Feature",
    "geometry": {"type": "Point", "coordinates": [
    
    [(#VALEUR{LONGITUDE}|et{#VALEUR{LATITUDE}}|non) 0, 0]
    [(#VALEUR{LONGITUDE}|et{#VALEUR{LATITUDE}}|oui) #VALEUR{LONGITUDE}, #VALEUR{LATITUDE}]
    ]},
    "id":"#VALEUR{TUNERID}",
    "properties": {
    [(#SET{titre,<h4>[(#VALEUR{COMPANYNAME})]</h4>})]
    [(#SET{blabla,
    				<address>
    				[<a href="http://(#VALEUR{WEBSITE})" target="_blank">Site internet</a>]
    				<address>
    			})]
    
    "title":[(#GET{titre}|json_encode)],
    "description":[(#GET{blabla}|json_encode)][
    		(#CHEMIN_IMAGE{#ENV*{icone,0}}|sinon{#CHEMIN{#ENV*{icone,0}}}|gis_icon_properties)]
    }
    }
    </BOUCLE_carto>

    Comment puis-je contourner le problème. Je rappelle qu’en rajoutant http:// devant ma valeur WEBSITE (qui a elle aussi un http://) ça ne créé pas de doublon, juste un http//lesite.com

    Je comprend pas trop le soucis ? L’encodage Json supprime les : ?

    • Salut, comme toujours, un lien vers la page en question nous permettrait de t’aider.

      Un lien vers ton monfichier.json serait aussi utile.

      L’encodage Json supprime les : ?

      Non.

      Par contre, c’est normal d’utiliser la balise <address> en ouverture et fermeture ?

    • Pour la page web pas de soucis : lesite
      Le fichier n’est pas public, je ne peux donc pas le publier :/ mais ça ressemble à ça :

      [« TUNERID »:547,« COMPANYNAME » :« Milltek France »,« CONTACTNAME » :« Le nom »,« ADDRESS1 » :« the adresse »,« ADDRESS2 » :« »,« CITY » :« Trifouilli »,« POSTCODE » :« 01000 »,« LATITUDE » :« »,« LONGITUDE » :« »,« TELEPHONE » :« 00000000 »,« EMAIL » :« mail@site.com »,« WEBSITE » :"http://monsite.com« , »DATEADDED«  : »April, 30 2009 00:00:00"]

    • Si on regarde ton JSON, on voit qu’il comporte des urls de la forme http://http://www.m-automobile.fr, c’est voulu ? C’est certainement la source de ton problème.

      http://milltek.jacquemintuningonline.com/spip.php?page=gis_json&objets=dealers&limit=500

      Sinon, ta page génère une erreur js, cf :

      12:09:09,887 ReferenceError: MasterSlider is not defined 1 revendeurs:312:9
      	<anonyme> http://milltek.jacquemintuningonline.com/revendeurs:312:9

    Répondre à ce message

  • Salut les spipeurs,
    Le visiteur arrive a créer et a modifier un point, il reste juste la suppression ou délier un point, est ce quelqu’un peut m’aider a le faire ??? Merci

    Répondre à ce message

  • 2

    Bonjour,
    Est ce il ya possibilité de donner a un simple visiteur qui se logue un moyen d’ajouter, de modifier et de supprimer un marker sur la carte ?....J’ai mis #FORMULAIRE_EDITER_GIS dans mes page auteur, mais ya pas moyen de supprimer ou de creer un nouveau marker, il ya juste la possibilité de modifier.
    Merci de votre aide

    • Oui c’est possible, il faut pour cela surcharger les autorisations du plugin. Le sujet a je crois bien déjà été abordé dans ce forum (une petite recherche s’impose) et voici un lien de doc à propos de la surcharge des autorisations :

      http://programmer.spip.net/Creer-ou-surcharger-des

    • Salut b_b,
      Je suis vraiment désolé mais j’ai encore besoin d’aide, a la racine du plugin il ya bien gis_autoriter.php et c’est bien charger dans le pipeline...J’utilise cette boucle dans une squelette

       <BOUCLE_aut(AUTEURS){id_auteur=#SESSION{id_auteur}}{tout}>
                  #SET{id_aut,#ID_AUTEUR} 
                  <BOUCLE_unpoint(GIS spip_gis_liens){id_auteur=#GET{id_aut}}>
                  #SET{id_gis,#ID_GIS}
                  </BOUCLE_unpoint>
                  #SET{id_gis,nouveau}
                  <//B_unpoint>
      
          #FORMULAIRE_EDITER_GIS{#GET{id_gis},'auteur',#GET{id_aut},#URL_AUTEUR{#GET{id_aut}}}
      
                  </BOUCLE_aut>

      et jusqu’a présent je ne peux que modifier, NON ajouter ou supprimer un marker
      Merci de votre aide

    Répondre à ce message

  • 9

    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.

    • Salut, difficile de t’aider sans plus d’infos :\

      As-tu des erreurs dans les logs après avoir activé les logs de debug, cf :

      http://www.spip.net/fr_article4453.html?var_recherche=debuggage#infos_plus

      Sinon, le plus simple est qu’on regarde ton problème en direct sur IRC :

      http://irc.spip.net/

      ++

    • J’ai le même message d’erreur... un simple « Echec » dans le formulaire d’association d’un nouveau point à un article, utilisé dans l’espace public du site, avec un compte visiteur.

      Comme il me semble que le visiteur n’a pas le droit de modifier l’article (il passe par un formulaire maison pour cela), j’ai modifié deux fonctions dans gis_autorisation.php :

      function autoriser_gis_lier_dist($faire, $quoi, $id, $qui, $opts) {
      	if (is_array($opts) and isset($opts['objet']) and isset($opts['id_objet'])) {
      		return true;
      	}
      	return true;
      }
      
      function autoriser_associergis_dist($faire, $quoi, $id, $qui, $opts) {
      	return true;
      }

      Mais impossible de faire fonctionner le formulaire #FORMULAIRE_EDITER_GIS (alors que pour un compte administrateur, pas de problème...).

      Une idée ?

    • Je relance un peu, en espérant que b_b passe par là !

      L’ajout d’un point sur un article via le formulaire tout prêt est bien interdit à un visiteur ?

      Et si oui, comment l’autoriser ? A première vue mes modifications ne suffisent pas.

      Merci de votre aide.

      Julien

    • En fait ce n’était pas lié au statut de l’utilisateur, mais à un autre problème : voici les logs :

      2017-01-27 13:23:18 88.175.208.4 (pid 16431) :Pub:ERREUR : Erreur 1416 de mysql : Cannot get geometry object from data you send to the GEOMETRY field
      in /home/reneta/www/plugins/auto/gis/v4.43.0/action/editer_gis.php L41 [sql_insertq(),gis_inserer(),action_editer_gis_dist(),formulaires_editer_objet_traiter(),formulaires_editer_gis_traiter_dist(),call_user_func_array(),traiter_formulaires_dynamiques(),include()]
      INSERT INTO spip_gis () VALUES ()

      En installant GIS géometry, cela marche sans problème.

      On ne peut plus installer GIS sans GIS Geometry  ?

    • On ne peut plus installer GIS sans GIS Geometry ?

      Si, mais comme ivandps (que j’avais dépanné sur IRC) tu as certainement installé gis geometries, puis désactivé sans le désinstaller. Du coup, il te reste le champ geo sur la table gis, et celui-ci ne peut être vide lors de l’insertion de nouveaux items (limitation de mysql pour les champs de type geometry).

      Donc, pour t’en sortir, voici ce que j’avais fait sur le site de ivandps (qui aurait pu partager la solution ici) : installe gis geometries de nouveau et désinstalle le si tu n’en a vraiment plus besoin, ainsi le champ geo sera supprimé de la table et tout rentrera dans l’ordre.

    • Pour info, je viens d’ajouter un avertissement à ce sujet à la fin de l’article de documentation de gis geometries ;)

    • Merci beaucoup pour ces infos.

      J’en profite pour une question de plus : pour que la modification des autorisations (un visiteur doit pouvoir utiliser le formulaire d’édition de géoloc) soit pérenne, où faut-il mettre le code suivant : (dans /config/mes_options.php ? )

          function autoriser_gis_lier_dist($faire, $quoi, $id, $qui, $opts) {
          	if (is_array($opts) and isset($opts['objet']) and isset($opts['id_objet'])) {
          		return true;
          	}
          	return true;
          }
           
          function autoriser_associergis_dist($faire, $quoi, $id, $qui, $opts) {
          	return true;
          }

      car sinon à la prochaine mise à jour, adieu la modif !
      Merci encore,
      Julien

    • Cher b_b j’aurais bien volontiers publié si j’avais compris cela.

    Répondre à ce message

  • 2

    Bonjour,
    Je me demande s’il ya un moyen de mettre une image searchin.gif a l’attente d’un résultat sur la carte ? en gis3 fallait mettre attente=1 exist’il en Gis4

    Merci de votre réponse

    • Salut, non ce paramètre n’est plus disponible depuis la version 2 (il y a plus de 6 ans).

    • Merci pour la réponse, seulement parfois les markers tardent a s’affiché et l’image searching était un bon moyen de faire comprendre a l’utilisateur que c’est en attente :)

    Répondre à ce message

  • 8

    Bonjour,

    Je souhaite intégrer plusieurs KML sur une carte en passant par le modèle. J’ai téléverser les fichiers KML dans mon article et je les ai intégré comme cela :

    <carte_gis1|zoom=8|limit = 0|scale=oui|kml = 182,kml = 181,kml = 179,kml = 178,kml = 180>

    mais cela ne fonctionne pas, j’ai essayé de ne pas répéter « kml= » mais cela n’a rien changé, j’ai également séparé chaque KML par | mais seul le dernier s’affiche...quelle est la syntaxe correcte ?
    Merci pour votre aide.
    Jérôme

    • Salut, comme l’indique la doc, essaye plutôt comme ceci :

      <carte_gis1|zoom=8|limit = 0|scale=oui|kml =182,181,179,178,180>

      Et hop :)

    • Bonjour b_b est merci pour ta réponse.
      C’est bien ce que j’avais compris dans la doc mais cela ne fonctionnait pas.

      Sur le lien suivant : http://machilly.oak-webdesign.com/Les-sentiers-du-Foron il y a deux fois la carte pour observer le soucis.
      Sur la première carte je n’affiche qu’un KML

      <carte_gis2|zoom=8|limit = 0|scale=oui|kml =178>

      Sur la deuxième carte je souhaite afficher plusieurs KML et je mets

      <carte_gis3|zoom=8|limit = 0|scale=oui|kml = 182,181, 179,178,180>

      on voit d’ailleurs en dessous de la carte les fichiers KML à charger...
      Aurais-tu une idée ?
      Merci d’avance
      Jérôme

    • Essaye sans les espaces, ça devrait aller mieux...

    • Bonsoir,

      Hélas sans succès avec

      <carte_gis3|zoom=8|limit=0|scale=oui|kml=182,181,179,178,180>

      sans espace !

    • Les bras m’en tombent... je découvre que ta version de GIS est la 4.36.3... Je pensais que venant de la part d’un pro, tu aurais eu la bonne idée de mettre à jour tes plugins avant de poser une question à propos d’un éventuel bug, et bien non :(

      Bref, la possibilité d’ajouter plusieurs kml depuis l’appel du modèle est dispo depuis la version 4.40.0, cf : https://zone.spip.org/trac/spip-zone/changeset/99241

      Je pense que tu sais ce qu’il te reste à faire.

    • Oh le boulet que je suis...et oui j’ai récupéré la version de GIS 4 dans un de mes dossiers dans penser à la mise à jour...
      Je suis vraiment désolé du temps perdu pour toi et je te remercie pour ton suivi... je vais en effef faire la mise à jour tout de suite.
      Avec encore toutes mes excuses b_b.

      Jérôme

    • Hop,

      Oh le boulet que je suis...

      C’est pas moi qui l’ai dit :p

      En résumé : toujours mettre à jour ses plugins avant de chercher la cause d’un bug :)

    • Et je te confirme que cela fonctionne très bien.

    Répondre à ce message

  • Bonjour,

    Depuis une mise à jours récente de GIS la cartographie Google RoadMap ne fonctionne plus sous IE. Un cadre gris et un encart leaflet.js s’affichent à la place. Cela fonctionne nickel sous firefox et chrome...

    Oups ou je fais une fausse manip ?

    Répondre à ce message

  • 8

    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,

    • 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.

    • 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,

    • Quelle est l’url de la page en question ?

    • 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,

    • 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 ?

      ...

    • 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.

    • 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).

    • Bonjour,

      D’accord, merci de la réponse.

    Répondre à ce message

  • 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

  • 5

    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

    • 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 ?

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

    • 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).

    • 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

    • 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

  • 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

    <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

  • 1

    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

    • 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

  • 8

    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...

    • 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 ?

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

    • 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.

    • 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é

    • 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>
    • 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é.

    • On a posté en même temps !

      Merci ton option est très efficace !

    Répondre à ce message

  • 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

  • 3

    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.

    • 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 ?

    • 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...

    • 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

  • 8
    jeromeD

    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.

    [(#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

    • 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

      ++

    • 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

    • 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

    • 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

    • 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

    • 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

    • 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.

    • 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

  • 1

    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é

    <BOUCLE_gpx(DOCUMENTS){id_article}{extension=gpx}>
    [(#INCLURE{fond=modeles/carte_gis,id_gis=1,
    	centrer_auto = oui,
    	id_article=#ID_ARTICLE,gpx=#ID_DOCUMENT,
    	fullscreen=oui
    	scale=oui,
    	affiche_layers=acetate/openstreetmap_mapnik/openmapsurfer/mapquestopen_aerial,
    	fullscreen = oui,
    	point=non})]
    </BOUCLE_gpx>

    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

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

       fichier gpx contenant des éléments de type
      <trkpt/>
      et des éléments de type
      <wpt/>

    Répondre à ce message

  • 2
    Olivier

    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

  • Bonjour,

    Je ne trouve plus comment indiquer dans un squelette le champ GIS à éditer avec les crayons. J’ai préfixé les champs mais le clic sur le champ descriptif d’un point GIS ouvre le descriptif de l’article courant et pas le descriptif du point GIS rattaché et pour les points spécifiques GIS, rien n’est éditable.

    Voici ma boucle avec les #EDIT :

     <BOUCLE_gis(ARTICLES){gis}{id_article?}>
      [<div class="#EDIT{titre}"><strong>(#TITRE_GIS)</strong></div>] [
     <div class="#EDIT{ADRESSE}">(#ADRESSE_GIS)</div>] [
      <span class="#EDIT{CODE_POSTAL}">(#CODE_POSTAL)</span>] [
      <span class="#EDIT{ville}">&nbsp;(#VILLE_GIS)</span>] [
       <div class="#EDIT{descriptif} descriptif">(#DESCRIPTIF_GIS)</div>]
     </BOUCLE_gis>

    Si quelqu’un ici a la bonne syntaxe..
    Merci

    Répondre à ce message

  • 4

    Bonjour,
    je me suis beaucoup battu avec la fonction removeAllMarkers...(fonction jquery qui efface tous les points sur la carte)
    J’ai fini par repérer deux cas de bugs :

    -  incompatibilité d’humeur avec le plugin « Etiquettes » :
    TypeError : this.geojsons[i].clearLayers is not a function

    -  mais aussi quand on affiche les clusters sur la carte (cluster=oui), pas d’erreur javascript, mais rien ne s’efface.

    J’ai enlevé le plugin etiquettes, enlevé les clusters, et ça marche, ouf.
    Bonne journée

    • Bonjour,

      Pour ne pas afficher de point, pourquoi ne pas utiliser « point = non » ?

    • Salut et merci pour le signalement. Concernant l’erreur avec Étiquettes, il faudrait le signaler à l’auteur du plugin en question dans le forum sur contrib.

      Pour ce qui est du cas lors de l’utilisation du clustering, c’est « normal » car les clusters ne sont pas des marqueurs comme les autres. On pourrait certainement améliorer ça, en ajoutant une détection de l’usage du clustering dans la fonction removeAllMarkers() et dans ce cas lancer un simple map.markerCluster.clearLayers(); pour « vider » le cluster.

    • Et hop, c’est intégré dans la version 4.38.7 cf http://zone.spip.org/trac/spip-zone/changeset/98977

    • Super, merci !
      (Oui, j’ai aussi mis un message sur le forum Etiquettes)

    Répondre à ce message

  • 14

    Bonjour,
    Il semble que sous SPIP 3.0.20 et le plugin GIS remis à jour, quelques cartes ne s’affichent plus :
    -  Google (problème d’affichage)
    -  MapQuest (projet terminé ?)
    -  etc.
    D’autres cartes fonctionnent parfaitement (ESRI par exemple).

    • Salut,

      Il n’y a « normalement » pas de problème avec les couches google, mais bon, comme je ne les utilise jamais et que je recommande aux gens de ne pas les utiliser je ne peux t’en dire plus sans l’adresse de la page en question.

      Pour Mapquest oui, le bug est connu, ils ont fermé l’accès au service, et je laisse encore quelques temps aux gens pour s’en apercevoir et changer de fond au lieu de le supprimer sauvagement (ce qui pourrait générer des erreurs sur le site des gens qui utilisent ce fond).

      Pour « etc » je ne devine pas de quoi tu parles ^^

    • Bonjour B_B,

      Je pense pouvoir confirmer que les cartes Googlemap ne sont plus accessibles. Or ce sont les seules actuellement susceptibles de renseigner sur certaines régions un peu reculées. Les autres alternatives de cartes sont malheureusement incomplètes, ou tout simplement ne dispensent aucune information.

      Si j’ai bien compris, Google aurait changé quelque chose dans son protocole...
      Penses-tu qu’il soit possible d’arranger la chose pour GIS4 ?
      En te remerciant !

    • Ha oui je vois le bug, google ne permet plus d’utiliser ses tuiles sans clé... (une raison de plus de ne pas utiliser leur service).

      http://googlegeodevelopers.blogspot.fr/2016/06/building-for-scale-updates-to-google.html
      https://code.google.com/p/gmaps-api-issues/issues/detail?id=9975

      Je corrigerai ça en ajoutant un champ pour renseigner la clé en question depuis la page de config du plugin dès que j’aurai un moment.

      Les autres alternatives de cartes sont malheureusement incomplètes, ou tout simplement ne dispensent aucune information.

      Es-tu certain que les variantes OSM (notamment la variante HOT) sont moins complètes ? Et pour la vue satellite, il vaut mieux privilégier celle de BING (qui nécessite aussi une clé, mais qui est plus pérenne et complète).

    • Bonjour,

      Auriez vous une solution de contournement et/ou manuelle pour le bug lié à l’appel par GIS au script google map sans API key ? Comme renseigner manuellement la clé, insérer l’appel en dur ou un surchargement du plugin, une options dans mes_options.php pour ajout de la clé, ... ?

      Merci d’avance à vous...même si j’ai cru comprendre votre aversion pour Gmap

    • J’en profite pour vous faire remonter une autre alerte lancer par GMAP lors de l’appel,

      « Google Maps API warning : SensorNotRequired https://developers.google.com/maps/documentation/javascript/error-messages#sensor-not-required »

      Je n’ai pas l’impression que l’option sensor soit desactivable lors de l’inclusion de GIS dans les squelettes...?

    • Bonjour b_b,

      En ce qui me concerne, deux problèmes sur OSM HOT
      1) Problème pratique d’abord : certaines indications de lieux écrits en langue du pays. Pas pratique quand c’est du Laotien par exemple.
      2) Problème esthétique ensuite : c’est dommage, certaines couches élégantes de OSM (LYRC, SUNNY, Uni-Heidelberg) ne sont pas dispos.

      Donc quoique 100% pour toute alternative à Google, conserver l’option me semble au moins utile, sinon nécessaire ;-)

      PS : b_b, pour revenir sur OMS, je vois sur http://umap.openstreetmap.fr/ que l’on peut créer ses propres cartes/couches. Peut-on intégrer ces couches « personnelles » comme option ?

    • Salut,

      Pour le premier point, c’est aussi le cas de la variante par défaut d’OSM, comme tu peux le voir sur le site du projet ;)

      http://www.openstreetmap.org

      Pour le second point, la couche Uni-Heidelberg est bien dispo sous le nom OpenMapSurfer comme visible sur cette page de démo :

      http://labo.eliaz.fr/spip.php?page=carte

      Pour les couches LYRC et SUNNY, peux tu me donner quelques liens à leur sujet histoire que je vérifie si elles manquent bien dans le plugin et dans quel cas je verrai si on peut les ajouter.

    • Bonjour b_b,

      Pour préciser, la couche OpenMapSurfer ne s’affiche pas sous SPIP 3.0.19 et version mise à jour d’aujourd’hui. Ensuite, en visionnant le lien http://labo.eliaz.fr/spip.php?page=carte j’obtiens une carte effectivement élégante, chic, mais un peu terne.

      J’ai trouvé les alternatives de couches sur OpenStreetMap quand je me suis lancé dans la personnalisation d’une couche que j’ai sauvée à cette adresse :http://umap.openstreetmap.fr/en/map/lao-travel_99455#13/19.8960/102.1564 (qui pose toujours ce problème de légendes en alphabet non romain), m’enfin cétait un début, et la personnalisation permettait de compenser peut-être certaines limites par cette extraordinaire flexibilité sur d’autres fonctions de personnalisation...

      Est-il d’ailleurs possible d’appeler cette carte perso sur GIS4 ? Ce serait alors une fonctionnalité des plus puissantes, me semble-t-il.

      Quoiqu’il en soit, me semble qu’faut d’abord trouver une solution pour Googlemap, ou offrir une alternative « propre » et élégante et complète... PS : je suis en train d’écrire des réponses sur contrib... j’ai l’impression que ce n’est pas le bon canal...

    • Re,

      Pour préciser, la couche OpenMapSurfer ne s’affiche pas sous SPIP 3.0.19 et version mise à jour d’aujourd’hui.

      Elle fonctionne tr_s bien sur les sites où je l’utilise, il nous faudrait l’adresse de la page qui pose problème sur ton site pour pouvoir t’aider.

      Est-il d’ailleurs possible d’appeler cette carte perso sur GIS4 ? Ce serait alors une fonctionnalité des plus puissantes, me semble-t-il.

      Non, « pas de manière complète ». Mais tu peux certainement exporter les données des cartes umap en geosjon, kml ou gpx pour ensuite les afficher sur une carte GIS.

    • Et voilà, les couches google (qu’il ne faut pas utiliser) sont réparées dans la vesion 4.41.0 cf :

      http://zone.spip.org/trac/spip-zone/changeset/99250
      http://zone.spip.org/trac/spip-zone/changeset/99251

      La page de configuration propose un champ pour renseigner la clé nécessaire.

    • Bonjour b_b,

      Merci pour le retour de l’option Googlemap, ça fonctionne aux petits oignongs ! je vais de mon côté me pencher sur le sujet des carte umap et autres alternatives.
      As-tu pu voir au sujet des couches LYRC et SUNNY de OSM, qui sont vraiment très agréables esthétiquement ?

    • Re,

      As-tu pu voir au sujet des couches LYRC et SUNNY de OSM, qui sont vraiment très agréables esthétiquement ?

      Pour la couche Lyrk, j’ai lancé la proposition cf : https://github.com/leaflet-extras/leaflet-providers/issues/228

      Pou la couche sunny et ses variantes, je n’ai pas l’impression que ça soit possible. Celles-ci sont hébergées par une entreprise privée, et je ne trouve aucune info à propos d’accès libre à leurs tuiles sur leur site cf : https://www.jawg.io/

      Mais rien ne t’empêche de l’ajouter de ton côté en tant que couche perso (si tu as un compte chez eux) en déclarant la couche perso comme indiqué sur le wiki ici : http://contrib.spip.net/Astuces-GIS#fonds_persos

    • Bonjour b_b,

      Je vais effectivement faire des recherches, car ces cartes perso me semblent une excellente piste pour proposer une solution de cartographie sur-mesure.
      Petite information pour dire que sur un de mes sites, fonctionnant sous SPIP 3.0.16, le plugin GIS 4.20.3 continue de fonctionner sans clé...

    • Merci pour la mise à jours GMap ça re-marche parfaitement sans alert JS.

    Répondre à ce message

  • 2

    Bonjour,

    Ayant inséré une carte dans un article j’avais remarqué que sur ma tablette de type android quand je navigue vers le bas de la page et que le geste est capturé par la carte gis c’est la carte qui se déplace à l’intérieur de sa fenêtre de vue et non pas la page entière. Du fait, il est difficile de naviguer au dela de cette carte, a moins de glisser le doigt sur les marges.
    Bref, c’est pas idéal...

    Alors j’essaie d’utiliser le callback de leaflet (comme décrit ici) pour désactiver cette fonction de « swipe », tant que l’utilisateur n’a pas cliqué sur la carte, en mettant en bas de ma page html ceci :

    $(’#map1’).on(’ready’, function ()
    (this).dragging.disable() ;
    var enableMapInteraction = function ()
    (this).dragging.enable() ;

    $(this).on(’click touch’, enableMapInteraction) ;
    ) ;

    Mais cela ne désactive pas le swipe. Pourtant la fonction est bien effectuée car en mettant un alert à l’intérieur il s’affiche sur ma page. Je ne sais pas si c’est une erreur dans mon script ou GIS qui empêche de désactiver le swipe. Pourriez-vous m’aider ?

    Merci

    • Salut, as-tu bien passé l’option zoom_molette ou zoom_wheel à non pour ta carte ? Sinon, tu peux aussi tenter de bidouiller en passant l’option tap à false sur une carte leaflet pour voir si ça fixe le bug, cf :

      https://github.com/Leaflet/Leaflet/issues/2031
      https://github.com/Leaflet/Leaflet/issues/4051

      Tiens moi au courant, si ça fixe le bug j’ajouterai une option au modèle de GIS pour permettre de jouer avec ce paramètre.

    • Merveilleux :) ,
      ça fonctionne. Merci !

      J’avais bien mis zoom_molette=non dans mon article.
      Mais apparament il y a un bug dans leaflet 0.7.7.
      Dans le fichier css il faut enlever 2 lignes comme mentionnée dans le forum du second lien de ton message par « littleiffel ». Il faut aussi mettre les options dragging:false et tap:false dans le fichier leaflet.gis.js.

    Répondre à ce message

  • 5

    Bonjour j’utilisait précédement (SPIP2.1, Gis2) ce code pour ajouter un formulaire de lien d’un événement avec un point Gis

    [(#INCLURE{fond=prive/inclure/gis_objet_formulaires,objet=evenement,id_objet=#ID_EVENEMENT,ajax})]

    EN GIS4 et SPIP3.0, Le formulaire est proposé mais seulement si je suis admin. Or je voudrais l’ouvrir à tous les utilisateurs connus du système. Comment faire ?

    Répondre à ce message

  • 1

    Salut, je rencontre depuis peu les problèmes suivants (alors qu’à la mise en place ça fonctionnait) :

    SPIP 3.0.22
    GIS 4.24.1

    J’ai l’erreur suivante dans la console firebug :

    TypeError: L.KML is not a constructor
    map.kml[i] = new L.KML(map.options.kml[i], {async: true});

    => les point s’affichent mais les kml ne s’affichent pas, et il n’est pas possible de naviguer sur la carte

    Si je met à jour le plugin avec la dernière version :

    SPIP 3.0.22
    GIS 4.39.0

    J’ai l’erreur suivante dans la console firebug :

    TypeError: this._southWest is undefined
    (this._southWest.lat + this._northEast.lat) / 2,

    => les kml s’affichent mais les points ne s’affichent pas, il est possible de naviguer sur la carte

    Quelqu’un à déjà eu ça ?

    • Salut, comme toujours, un lien vers la page en question nous permettrait de t’aider...

    Répondre à ce message

  • 2

    Bonjour

    Je cherche à afficher une carte dans squelettes auteur.html que si l’auteur à un ou plusieurs points liés.. Je ne trouve pas la syntaxe à utiliser dans le squelette. L’auteur étant un visiteur simple

    J’ai essayé ceci

    Le code pour afficher la carte ici.

    Merci de votre aide.

    • Bonjour

      Je cherche à afficher une carte dans squelettes auteur.html que si l’auteur à un ou plusieurs points liés.. Je ne trouve pas la syntaxe à utiliser dans le squelette. L’auteur étant un visiteur simple

      J’ai essayé ceci

      <BOUCLE_carte(GIS){id_auteur}{0,1}>
      Le code pour afficher la carte ici.
      </BOUCLE_carte>

      Merci de votre aide.

    • Salut, la boucle que tu utilises est adaptée pour le test que tu souhaites faire. Si l’auteur est un visiteur, il faut peut-être simplement ajouter un {tout} pour l’afficher (puisque les visiteurs n’ont pas d’article publié).

    Répondre à ce message

  • 1

    Bonjour,

    Depuis ce matin, j’ai une erreur 204 No Content en retour de la requête de recherche par adresse (avec le plugin en 4.38.4 et après la mise à jour en 4.38.6).

    Le problème vient-il du plugin ? De leaflet ? D’ailleurs ?

    Merci d’avance !

    • Ah et bien j’ai écrit trop vite, c’est revenu à la normale.
      Désolé pour le bruit :)

    Répondre à ce message

  • 1

    Bonjour,
    je veux afficher plusieurs fichiers kml liés à un article.
    J’utilise le modèle carte_gis_objet.
    Je renseigne au minimum objet et id_objet

    <carte_gis_objet51|objet=article|id_objet=24>

    ça ne marche pas . Qui a une idée ? Merci !

    Répondre à ce message

  • Bonjour b_b et les autres spipeurs,

    Je cherche a faire Recherche multi-critères sur trois champs : pays, ville, région sur la carte gis4, de préférence le résultat s’affiche sans que la carte se charge.
    est ce que quelqu’un peut me donner une piste ? Merci de votre aide

    Répondre à ce message

  • 5

    Je lance un nouveau fil, cette fois-ci pour la cartographie d’événements... ou un agenda sous forme de carte.

    Actuellement, l’agenda de notre site de territoire affiche les événements en les regroupant par mois ou par commune.

    Jusqu’ici, nous utilisions les mots-clés, avec groupe de mots dédié aux communes.

    A l’usage (depuis 2013), nous avons décidé de rattacher les événements à des articles de lieux ou d’organisateur.

    Cela présente un avantage considérable  : lorsque plusieurs événements sont rattachés à un article de lieu ou d’organisateur, nous attachons une seule fois à cet article le mot-clé de la commune correspondante... Pour 10 dix événements rattachés à un même lieu ou organisateur, cela représente une économie de temps considérable.

    Ainsi, notre boucle cherche en priorité si un mot-clé de commune a été rattaché directement à l’événement. Si ce n’est pas le cas, elle prend le mot-clé de commune de l’article auquel l’événement est rattaché.

    Pour l’instant, en découvrant GIS, nous essayons de géolocaliser les mots-clés de commune pour bénéficier de tous les liens existants entre ces mots-clés et les différents objets du site, dont les événements et les articles.

    Ce n’est peut-être pas la bonne stratégie. Peut-être devrions-nous abandonner ces mots-clés de commune en géotaguant directement les articles et événements.

    Nous n’avons pas de recul avec ce logiciel : quelques conseils pourraient nous faire gagner du temps sur la stratégie la plus simple à prendre dès le départ.

    Quoiqu’il arrive, si l’on pouvait afficher les événements à partir du point géolocalisé rattaché à leur article parent... ou celui du mot-clé de commune lié à leur article parent, cela éviterait de tous les géotaguer un par un. Est-ce techniquement possible ? Si oui, quelle serait la piste la plus courte pour y arriver ? Une boucle conditionnelle, des SET/GET ?... A partir de quel modèle partir ?

    Désolé pour cette longue explication... en espérant qu’elle aura été suffisamment claire !

    Merci par avance

    • Après réflexion, je vais tenter de prendre le problème à l’envers : afficher simplement les mots-clés de communes liées aux événements, puis afficher au survol la liste des événements annoncés dans cette commune. Ce sera certainement plus simple... y compris pour la gestion de l’Agenda.

      Si j’arrive à quelque chose, je ferai signe ici...

      Merci !

    • Bonjour à nouveau ! Cette fois-ci pour la partie agenda carto... J’avance, mais j’aurais besoin d’un peu d’aide. Désolé, il va y avoir de la lecture...

      Objectif : Obtenir une carte des communes ayant un ou plusieurs événements à l’affiche (en cours ou à venir), avec en description d’infobulle le nombre total d’événements pour la commune.

      Prolégomène : Comme je le disais, avec le plugin Agenda, les événements sont nécessairement liés à des articles. Autant donner une utilité à cette contrainte, en faisant des articles de lieux ou d’organisateurs. Ainsi, en attribuant un mot-clé de commune aux articles, on peut se passer d’en attribuer systématiquement à chacun des événements rattachés. En effet, si aucun mot de commune n’est spécifié pour l’événement, on prend celui de son article parent (lien indirect). Cela n’exclut pas la possibilité de lier directement un mot de commune à un événement : dans les cas, par exemple, où un organisateur propose une manifestation dans une autre commune que la sienne.

      Pour obtenir la liste des mots-clés de communes où des événements sont en cours, il faut donc chercher en priorité les liens directs avec les événements, puis les liens indirects par le truchement de l’article parent.

      J’ai créé un squelette json « gis_motsevenements.html » qui se compose de deux parties :

      Première partie : sélection des mots de commune liés à des événements à l’affiche ou à des articles contenant des événements à l’affiche

      [(#REM) Je sélectionne tous les événements que je souhaite afficher dans ma couche : ceux qui ne sont pas finis ]
      <BOUCLE_evtpasfini(EVENEMENTS){age_fin<=0}{!titre_mot=z_invisible}{statut=publie}{doublons evtpasfini}>
      	[(#REM) Cette première boucle sélectionne  les mots de communes liés aux événements ]
      	<BOUCLE_communesevtpasfini(MOTS){id_evenement}{id_groupe IN 1}{par titre}{doublons communesevtpasfini}/>
      	[(#REM) Cette deuxième boucle sélectionne les articles parents des événements pas finis ]
      	<BOUCLE_articlesevtpasfini(ARTICLES){id_evenement}{doublons articlesevtpasfini}>
      		[(#REM) Et on attrape ainsi tous les mots de commune des articles parents ]
      		<BOUCLE_communesarticlesevtpasfini(MOTS){id_article}{id_groupe IN 1}{par titre}{doublons communesevtpasfini}/>
      	</BOUCLE_articlesevtpasfini>
      </BOUCLE_evtpasfini> 

      Deuxième partie : La boucle destinée à afficher la carte des communes, avec en descriptif d’info-bulle le nombre total d’évenements par commune.

      <BOUCLE_mots(MOTS){gis}{!doublons communesevtpasfini}{0, #ENV{limit}}{","}>
      	[(#REM) A. Sélection des événements directement liés à un mot-clé commune ]
      	#SET{evenementsparcommune2,#ARRAY}
      	<BOUCLE_sel_evtcommunes2(EVENEMENTS){!doublons evtpasfini}{id_mot}>
      	[(#SET{evenementsparcommune2,#GET{evenementsparcommune2}|push{#ID_EVENEMENT}})]				
      	</BOUCLE_sel_evtcommunes2>
      
      	[(#REM) B. Sélection des événements indirectement liés à un mot-clé commune par le truchement de l'article ]
      	<BOUCLE_sel_articlescommunes2(ARTICLES){!doublons articlesevtpasfini}{id_mot}>
      		<BOUCLE_sel_evtarticlescommunes2(EVENEMENTS){!doublons evtpasfini}{id_article}>
      			[(#REM) Astuce pour éviter de récupérer les évenements ayant un mot du groupe ]
      			<BOUCLE_test_commune2(MOTS){id_groupe=1}{id_evenement}>
      			</BOUCLE_test_commune2>
      			[(#SET{evenementsparcommune2,#GET{evenementsparcommune2}|push{#ID_EVENEMENT}})]
      			<//B_test_commune2>	
      		</BOUCLE_sel_evtarticlescommunes2>
      	</BOUCLE_sel_articlescommunes2>
      	
      	[(#REM) C. Je fais le total des événements à l'affiche liés à chaque mot trouvé par la boucle ]		
      	<BOUCLE_evtcommunes(EVENEMENTS){id_evenement IN #GET{evenementsparcommune2}}>		
      	</BOUCLE_evtcommunes>
      	#SET{totalevenements,#TOTAL_BOUCLE}
      	</B_evtcommunes>
      				
      {"type": "Feature",
      ["geometry": (#GEOMETRY|appliquer_filtre{wkt_to_json}|sinon{{"type": "Point", "coordinates": \[#LON, #LAT\]}}),]
      "id":"#ID_GIS",
      "properties": {
      	"title":[(#URL_MOT|lien_ou_expose{[(#TITRE_GIS*}|sinon{#TITRE*}|extraire_multi|supprimer_numero)]}|json_encode)],
      	"description":[(#GET{totalevenements})][
      	(#LOGO_GIS|gis_icon_properties)][,
      	"styles": (#GEOMETRY_STYLES|appliquer_filtre{geometry_styles_to_json})]
      }}
      </BOUCLE_mots>

      Voici comment j’appelle ma carte dans le squelette de l’agenda :

      		    [(#INCLURE{fond=modeles/carte_gis,
      		    objets=motsevenements,
      		    centrer_auto=oui
      		    })]

      Sur l’image jointe, un aperçu de ce que le test donne pour trois communes (je fais les tests en local). En cliquant sur un point, on obtient bien le nom de la commune, avec le lien vers la page de la commune, ainsi que le nombre total d’événements à l’affiche.

      Cela fonctionne donc presque... même si ma méthode est peut-être trop compliquée.

      Je viens te demander de l’aide pour deux trucs :

      • Un petit détail : Comment afficher le nombre d’évènement à la ligne (comme cela se fait tout seul pour le descriptif d’image, dans le modèle gis document), en ajoutant le texte « événements », pour que cela donne « Vézelay » puis à la ligne « 10 événements » ?
      • Un truc un peu plus complexe peut-être : afficher des couches avec des markers de couleur différente en fonction de l’imminence des événements. Je sais faire des boucles pour trier les événements selon leur imminence, mais je ne sais pas comment créer une couche distincte pour chacune d’elle. Par contre, j’ai créé des markers de couleurs différentes, que j’ai mis dans le dossier images.

      Sachant que ce travail servira à plusieurs sites de territoire comme le nôtre. J’ai donc l’intention, quand tout sera fonctionnel, de faire une contrib complémentaire à celle qui est déjà actuellement proposée en publication sur spip-contrib.

      Merci par avance pour ton aide...

    • Salut b_b, j’imagine que tu es très occupé en ce moment, mais dès que tu as deux minutes, peux-tu me donner un coup de main sur ce nouveau fil ? Il ne manque pas grand chose pour que je puisse mettre en place cet agenda carto. Une question de mise en forme... Merci !

    • Hello,

      Pour le premier « truc » : as-tu essayé :
      "description":[<p>(#GET{totalevenements}) <:evenements:></p>]

      dd

    • Oui, j’ai essayé... mais alors là c’est pire : j’ai la carte monde sans aucun point. Ce qui signifie qu’il ne géopositionne plus... Ce doit être tout simple, mais b_b doit être super occupé. Je vais attendre : il n’y a aucune urgence !

    Répondre à ce message

  • 25

    Bonjour, sur notre site de territoire, valleeducousin.fr, nous utilisions jusqu’ici le plugin géoportail, qui nous permettait d’utiliser les couches IGN, dont la carte topo 25.

    Mais ce plugin n’étant plus supporté par la nouvelle version de SPIP, nous nous orientons vers GIS, que nous sommes en train de découvrir.

    Il y a un seul souci, celui du géoréférencement automatique de nos photos géotaguées, qui semble ne pas pouvoir se faire sur GIS. Pourtant, sur le plugin de spip-géoportail, cela fonctionnait. Un test sur Google Maps (que nous ne souhaitons pas installer) nous a permis également de vérifier que les photos se plaçaient au bon endroit. Donc, cela devrait être possible sur GIS ?

    Merci de me dire si une amélioration dans ce sens peut-être apportée... ou si nous sommes passés à côté de quelque chose.

    Si besoin, je peux demander à Jean-Marc, l’auteur de spip-geoportail, comment les geotags étaient récupérés.

    Voici le lien de l’article contenant les photos géotaguées : http://www.valleeducousin.fr/spip.php?article253

    Merci par avance, Thiébaut

    • Salut, GIS permet de localiser automatiquement les images géotaguées à l’upload si la géolocalisation des documents est activée depuis la page de configuration du plugin. Peut-être est-ce l’info qui te manquais ?

    • Bonjour et merci pour la réactivité ! En fait, j’avais bien coché « documents » dans la config du plugin. Par contre, les images géotaguées étaient déjà dans la médiathèque avant l’installation de GIS.

      Du coup, j’ai uploadé à nouveau l’une des images de l’article en question... mais je ne réussi pas à obtenir un géopositionnement.

      Elle porte le numéro 2436 et l’article de test porte le numéro 405.

      J’aurais voulu créer une carte automatiquement avec les photos géotaguées associées à l’article, mais ne sachant pas comment faire, j’ai déjà voulu voir avec cette image test en faisant :

      
      

      Mais ça ne marche pas. Peut-être est-ce ma manière de faire qui est fausse ?

      La photo test en question, bien reconnue avec spip-geoportail et sous google maps est en pièce jointe.

      Merci par avance, cela nous sera fort utile !

    • Thiébaut

      Bonsoir, toujours pour tenter d’afficher la position de l’image en question, associée à l’article 405, j’ai tenté ceci, sans succès :

      
      

      Je dois mal m’y prendre...

    • Thiébaut

      J’ai bien mis « centrer » et non pas « center ».

    • Salut, le raccourci à utiliser serait plus de la forme suivante :

      <carte_gis1|objets=document|id_document=2436>

      Je viens de tester avec l’image que tu as posté, et cela génère une erreur dans la fonction qui récupère les données exifs : Warning : Division by zero in gis/trunk/gis_pipelines.php on line 130. Je regarde ce qui cloche et corrige au plus vite...

    • Ok, super, il n’y a aucune urgence. Mais c’est vrai que si ça fonctionne, la carte sera un outil indispensable... pour notre site de territoire. Alors peu importe le temps, du moment qu’on sache que c’est possible... !

      Pour le raccourci, si j’ai bien compris, si on veut juste le document 2436, indépendamment de ses liens avec l’article 405 :

      <carte_gis1|objets=document|id_document=2436>

      Et si on veut afficher tous les documents liés à l’article 405 :

      <carte_gis1|objets=documents|id_article=405>

       ?

      Quand cette question sera résolue, il me restera à ouvrir un nouveau fil pour la géolocalisation d’événements sur une carte (plugin Agenda). Mais chaque chose en son temps !

      Merci par avance.

    • Ok, j’ai un patch qui permet de ne pas générer l’erreur mais cela ne règle pas encore le problème...

      En effet, il semble que tu aies utilisé un logiciel d’Adobe pour localiser tes images, et certaines versions contiennent un bug qui provoque l’enregistrement de valeurs comme 10000/0 qui génèrent des divisions par zéro et des coordonnées invalides, cf :

      https://feedback.photoshop.com/photoshop_family/topics/exported_gps_coordinates_in_exifs_do_divide_by_zero
      https://bugs.kde.org/show_bug.cgi?id=246077

      Quel est le logiciel (et sa version) que tu as utilisé pour géolocaliser tes images ?

    • Je n’ai pas utilisé Adobe pour localiser mes images, mais j’ai laissé mon Nikon le faire avec l’aide du di-GPS.

      Une possibilité : j’ai peut-être compressé ensuite la photo avec Photoshop sur mon ordinateur... je ne l’en souviens plus. Voici autre une photo que je viens de faire, sans la compresser, pour voir le problème se repose.

      Toutefois, avec spip-geoportail, la photo se localisait bien. J’ai demandé à Jean-Marc comment cela fonctionnait, il m’a répondu ici..

      Et sur une GoogleMap, pareil, aucun souci, la même photo se met au bon endroit....

    • Re, la dernière image que tu viens de poster fonctionne, c’est bien ton logiciel adobe qui dégrade les exifs gps... En attendant qu’on trouve une parade pour contourner ce bug, tu sais qu’il faudra éviter d’utiliser ton logiciel (ou le mettre à jour).

    • Un problème de résolu ! Merci, je viens de voir avec la photo.

      Par contre, je n’arrive pas à utiliser les modèles pour
      -  afficher ce document sur la carte dans un article
      -  afficher dans article la carte de tous les documents qui lui sont liés...

      Merci par avance !

    • Voici ce que j’ai fait : dans la médiathèque, j’ai cliqué sur la photo. Cette fois-ci, j’ai effectivement constaté qu’elle se positionnait toute seule sur une carte. J’ai cliqué sur « ajouter un point géolocalisé » : automatiquement, le plugin a créé un point correspondant à la position de la photo, avec le nom de cette photo.

      Puis j’ai essayé ces deux raccourcis

      • Pour afficher uniquement la photo <carte_gis1|objets=document|id_document=2461>
      • Pour afficher tous les documents liés à l’article <carte_gis1|objets=documents|id_article=405>

      Aucun ne fonctionne... merci de me dire ce qui cloche...

    • Pour ce point, il me faut l’adresse en ligne de la page où tu fais tes essais, sans ça je ne peux pas te dire ce qui cloche.

    • Pour que tu puisses voir, j’ai publié ici :
      http://www.valleeducousin.fr/spip.php?article405

      La première partie, c’est des tests sur les événements, qui fonctionnent.

      La deuxième partie, c’est pour les images (en bas de l’article)

      A chaque fois, je mets le bout de code correspondant au-dessus de la carte, pour savoir de quoi on parle.

      Curieusement, je viens de voir que <carte_gis1|objets=documents|id_article=405> fonctionnait maintenant. Je constate donc qu’il lui a fallu quelques minutes pour cela. Il lui a également fallu un petit « temps de réaction » pour les raccourcis sur les événements plus haut.

      Donc peut-être que le premier raccourci fonctionnera tout à l’heure ? J’irai voir dans l’après-midi. Pour l’instant, rien de nouveau. Ce ne doit pas être le bon raccourci... On verra

    • Cela doit venir du cache, pense à le vider entre chaque essai.

    • Merci pour tout... je vais effectivement vider le cache régulièrement !

      Bonne journée

    • Je viens de trouver ce qui clochait pour le premier raccourci : il suffisait de mettre « documents » au pluriel, même si on en appelle qu’un. C’était tout bête ! ;-)

      Donc <carte_gis1|objets=document|id_document=2461>

    • Salut, résumé de mes (longues) recherches sur le sujet :

      Comme je le disais, la première image que tu as posté comporte des informations erronées dues à un décalage dans les exifs. Voici un extrait des données renvoyées par exif_read_data() sur l’image en question :

      'IFD0' => 
      array (size=14)
        'Make' => string 'if' (length=2)
        'Model' => string 'CORPORATION' (length=11)

      Et voici les mêmes infos après avoir effectué une copie des exifs sur une autre image à l’aide de l’utilitaire exiftool exiftool -TagsFromFile abd4.jpg good.jpg :

      'IFD0' => 
          array (size=14)
            'Make' => string 'NIKON CORPORATION' (length=17)
            'Model' => string 'NIKON D5100' (length=11)

      J’ai bien repéré le patch appliqué dans le plugin geoportail pour prendre en compte ce genre de bug, cf http://zone.spip.org/trac/spip-zone/changeset/88739#file1 et si je l’applique, il corrige le bug avec ta première image, mais en génère un pour ta seconde image (qui fonctionne bien sans le patch).

      Du coup, malgré mes recherches, je n’ai pas encore trouvé de solution à ce bug de lecture des exifs des logiciels adobe depuis PHP (alors que exiftool le gère sans problème). Ça me turlupine, mais comme je ne compte pas y passer la semaine, j’y reviendrai peut-être plus tard ;)

      PS : j’ai envoyé un patch pour régler l’erreur des divisions par zero cf http://zone.spip.org/trac/spip-zone/changeset/98143/

    • Ce n’est pas trop grave. Je vais essayer de compresser l’image avec un autre logiciel qu’Adobe. J’aurais préféré utiliser THEGIMP.... mais je n’ai jamais compris comment faire des scripts et des traitements par lot sur ce logiciel.

      Ce qui compte, c’est surtout de savoir d’où vient le bug, et de savoir qu’il ne vient pas de GIS4 !

      Spip_geoportail semblait ne pas avoir de problème pour positionner la photo compressée, ni google map. Je croyais donc que ça venait de GIS... Peut-être ont-ils intégré le bug d’Adobe ?

      Je reviendrai ici pour donner la liste des logiciels de compression que j’ai essayé pour éviter ce bug de positionnement.

    • Un test intéressant serait d’uploader la deuxième image que tu as fourni et de voir si le plugin geoportail la positionne bien, merci d’avance :)

    • Pas de soucis, je vais réinstaller en local la dernière version de spip avec laquelle geoportail fonctionnait... et je te fais le retour assez vite, d’ici ce soir ou demain.

    • Bon, je ne comprends pas ce qui se passe...

      Les photos compressées étaient bien géoréférencées par geoportail sur cet article : http://www.valleeducousin.fr/spip.php?article253

      Quand j’ai upgradé spip sans vérifier la compatibilité, ça n’a plus fonctionné. Jusque là tout est normal.

      Mais je viens de réessayer, comme tu me l’as demandé, dans une version de spip compatible avec géoportail... et bien, ça ne marche plus avec la version compressée.

      Par contre, pour la photo non compressée, la dernière postée sur ce fil, effectivement, ça fonctionne...

      Alors, comme l’article date un peu et que c’est la seule fois où j’ai utilisé cette fonctionnalité, je me demande si je n’ai pas d’abord chargé une première version des fichiers, qui ont été géolocalisés... puis changé les fichiers par des images plus légères... pourtant il ne me semble pas. Et puis en toute logique, cela aurait dû changer le géopositionnement ? TOujours est-il que ça fonctionnait.

      Quoiqu’il arrive, ça prouve qu’il faut se méfier de la compression pour les métadonnées SIG.

      Bref, je vais tenter d’autres mode de compression et je vais voir ce que ça donne...

    • Bonsoir, Je viens de faire plein d’essais différents... c’est à n’y rien comprendre mais, bonne nouvelle, tous mes essais fonctionnent autant sur geoportail que sur GIS.

      Je suis parti de la dernière photo originale postée sur ce fil.

      Résultat

      • Les deux premières ont été réalisées avec un script sur la même version d’Adobe que j’utilise depuis longtemps... l’une en 600 et l’autre en 800
      • Avec Conversion Magick : 800, qualité 80, option « conserver exif » cochée
      • Avec Graphic Converter : 800, qualité 80, option « utiliser les données exif originales non modifiées » (par contre si cette case n’est pas cochée, ça ne fonctionne pas)
      • Avec TheGIMP : 800, qualité 80, option "enregister les données exif

      Par contre, mes anciennes images qui fonctionnaient ne sont plus géoréférencées sur geoportail. Elle ne fonctionnent que sur GMap, qui les prends toutes. Mais je ne veux pas de G.

      Ci-dessous, au cas, où, je joins la versions réalisée avec Adobe.

      Merci pour tout.

    • Ok, merci pour le retour, il semble bien que les logiciels d’adobe dégradent les données exifs... Reste à voir si on trouvera une parade à ce bug à moins qu’adobe le corrige un jour.

    • Merci à toi. Pour info, ma version est CS3 10.0

      Ci-dessous, voici la version compressée avec Graphic Converter, le seul logiciel que je connaisse qui donne autant d’options pour la compression, tout en permettant des traitements par lots simples et efficaces.

      J’ai coché l’option ’utiliser les données exif originales non modifiées »

    • Aucun problème de localisation avec ta dernière image, content que tu aies trouvé le logiciel qui te convienne :)

    Répondre à ce message

  • 1

    Bonjour,

    Je viens d’installer la mise à jour 4.36.5 de GIS et j’ai perdu du même coup tous les markers sur les cartes qui ne s’affichent plus. Un problème de #CHEMIN probablement ?

    Je constate aussi un autre souci quand je veux ajouter un point géolocalisé dans un objet. La recherche ajax par formulaire ne fonctionne plus et il faut afficher tous les points pour retrouver celui qu’on cherche.

    Amicalement.

    • Salut, peux-tu nous donner l’adresse du site en question pour que je t’aide ?

      Hésite pas à passer sur irc pour en discuter en direct : http://irc.spip.net

    Répondre à ce message

  • 3

    Salut,

    De la même manière qu’il existe une fonction « gis_focus_marker », ne devrait-on pas créer une fonction « gis_open_marker » dans gis_utils.js ?

    function gis_open_marker (id, map) {
    	var carte = eval('map'+ map);
    	var i, count = 0;
    	for (i in carte._layers) {
    		if ((carte._layers[i].feature) && (carte._layers[i].feature.id == id)) {
    			carte._layers[i].openPopup();
    		}
    		count++;
    	}
    }

    Cette fonction permet d’ouvrir un popup sans centrer la carte sur le marker. C’est particulièrement utile lorsque l’on n’a pas beaucoup d’espace pour la carte et que l’infobulle que l’on veut ouvrir est grande.

    • Salut, j’allais envoyer un commit pour permettre de passer un troisième argument à la fonction gis_focus_marker() afin de permettre ce que tu proposes, mais cela ne fonctionne pas. En effet, les popups de Leaflet déclenchent l’autopan par défaut cf :

      http://leafletjs.com/reference.html#popup-autopan

      Du coup, il va falloir fourber, je te tiens au courant de l’avancée de la question...

    • Ok, c’est plus simple que prévu en fait, il suffit d’ajouter ceci aux items de ton json pour que l’autopan des popups ne soit pas actif par défaut :

      "popup_options": {"autoPan": false}

      Puis, en utilisant cette variante de la fonction gis_focus_marker() :

      function gis_focus_marker (id, map, center) {
      	if (center === undefined) {
      		center = true;
      	}
      	var carte = eval('map'+ map);
      	var i, count = 0;
      	for (i in carte._layers) {
      		if ((carte._layers[i].feature) && (carte._layers[i].feature.id == id)) {
      			if (center) {
      				carte.panTo(carte._layers[i].getLatLng());
      			}
      			carte._layers[i].openPopup();
      		}
      		count++;
      	}
      }

      Qui peut être appelée comme ça pour préciser qu’on ne souhaite pas l’autopan :

      gis_focus_marker(id,id_map,false);

      Vu le les modifs que ça demande côté utilisateur, j’ai un doute sur l’intérêt d’intégrer la nouvelle variante de la fonction dans GIS...

    • Hello,

      Je n’ai pas eu besoin d’ajouter "popup_options": {"autoPan": false} avec ma fonction (ça doit être pareil avec la tienne).

      Sur l’intérêt d’ajouter la fonction, je ne sais pas.

      Cela ma été utile pour une mise en page de ce type (carte en bas de page) :
      http://www.tep-tdm-hpa.com/new/

    Répondre à ce message

  • 1

    J’aimerais créer une carte rassemblant tous mes chantiers en cours de réalisation. J’ai donc une table des tâches qui contient les phases chantier et une table dossier qui contient la localisation.

    Il me faut une double boucle que je n’arrive pas à mettre en œuvre.

    J’ai un fichier gis_chantier.html comme suit

    <BOUCLE_tache(TACHES){titre_mot=chantier}{statut=publie}{","}>
    <BOUCLE_dossier(DOSSIERS){gis}{id_dossier}>
    .......
    </BOUCLE_dossier>
    </BOUCLE_tache>

    Le problème est cette double boucle, car sans la boucle tâche tout fonctionne.

    Merci pour votre aide.

    • Salut, la difficulté est au niveau de la gestion du séparateur virgule {","} entre tes deux boucles.

      Si la seconde ne renvoie qu’un résultat à chaque fois c’est facile, il faut que la boucle ne renvoie aucun caractère (espaces et saut de lignes compris) quand il n’y a pas de point attaché (le plus simple étant de coller la complète sur une seule ligne pour être certain du résultat).

      Dans le cas contraire c’est plus compliqué, il faut jouer avec une seule boucle et des jointures, ou utiliser un #ARRAY que tu alimente à chaque itération et sur lequel tu appliques un |json_encode pour finir. Voici un exemple pour te guider :

      https://github.com/geodiversite/geodiversite/blob/master/geodiversite/json/geol_markers.html

      Voilà de quoi avancer avec ton problème :)

    Répondre à ce message

  • 3

    Bonjour,
    Y a-t-il un moyen d’exécuter le géocodage « automatiquement » sans passer par l’interface manuelle de saisie de points ?
    L’idée est de peupler la table GIS avec des points dont l’adresse est renseignée, par import_csv par exemple, et de déclencher une baguette magique pour remplir les champs Lat et Lon...
    Oui, mais quelle baguette magique ?

    Répondre à ce message

  • 1
    Pascal

    Est il possible d’actualiser une carte en y ajoutant ou supprimant juste les points nouvellement créés ou détruits, sans raffraichir toute la carte ? C’est pour rejouer une carte en accéléré.

    Répondre à ce message

  • 4

    Bonjour,

    Merci pour ce plugins qui permet de continuer de penser que SPIP est un vrai bon outil.

    J’ai cependant des difficultés à rendre cliquable vers l’article, le titre du point géolocalisé.

    Ai bien tenté la manipulation : « 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 », mais sans résultat.

    Ai contrôlé l’absence d’un doublon de jquery, qui semble neutralisé les liens, sans résultat non plus.

    Une idée ?

    Le projet en cours se trouve ici : http://bit.ly/1pY1E5P

    Site en SPIP 3.0.22 / GIS4.36.4

    Merci.

    • Salut, ta carte ne précise pas quel type d’objet afficher, donc ton squelette json perso n’est pas utilisé. Il faut passer le type de d’objet à l’aide du paramètre objets.

      De plus, ton site utilise la compression HTML de SPIP, tu devrais la désactiver car celle-ci ets plus source d’ennui que de gain de performances (on l’a d’ailleurs retirée de SPIP 3.1).

    • Bonjour b_b, merci pour tes 4 lignes.

      Mon appel de carte était celui-ci :

      [(#INCLURE{fond=modeles/carte_gis,zoom=7,limit=100,scale=non,fullscreen=oui,zoom_wheel=non})]

      J’avais essayé différents codes d’appel pour la carte, mais cela faisait carrément sauter les marqueurs.

      J’ai désormais ajouté simplement « objets=articles » dans la ligne et c’est correct pour moi :

      [(#INCLURE{fond=modeles/carte_gis,objets=articles,zoom=7,limit=100,scale=non,fullscreen=oui,zoom_wheel=non})]

      J’ai testé avec et sans compression HTML, cela fonctionne correctement dans les 2 cas, mais je désactive l’option, pas de souci.

      Ce type de plugin et la réactivité de leur développeur fait assurément de SPIP, un très bon outil.

      Merci.

    • Pour information :

      La solution apportée par b_b fonctionnait en local avec une version de SPIP 3.0.19, alors qu’elle ne fonctionnait pas sur le serveur de test en SPIP 3.0. inférieur à 19....

      Après une mise à jour en 3.1.1, les marqueurs apparaissent correctement, ainsi que les liens cliquables vers les articles.

    • Cela devait juste être un problème de cache, pas besoin d’être en 3.1 pour que ça fonctionne ;)

    Répondre à ce message

  • 1
    Rémi Clavier

    J’ai un petit problème avec l’attribut point=non.
    Si celui est positionné, seuls les oints attachés directement à l’article sont cahés. Ceux attachés à des DOCUMENTS de l’article ne le sont pas.
    ma boucle est :

    <BOUCLE_gpx(DOCUMENTS){id_article}{extension=gpx}>
    [(#INCLURE{fond=modeles/carte_gis,
    id_carte_gis=1,
    	centrer_auto = oui,
    	id_article=#ID_ARTICLE,gpx=#ID_DOCUMENT,
    fullscreen=oui
    scale=oui,
    affiche_layers=acetate/openstreetmap_mapnik/openmapsurfer/mapquestopen_aerial})]
    </BOUCLE_gpx>
    • Je ne vois pas l’option point=non dans ton appel du modèle, un oubli ?

      Sinon, comme toujours, un lien vers la page en question est indispensable pour qu’on t’aide.

    Répondre à ce message

  • 2
    Chourak

    Bonjour,

    Existe t-il un paramètre, que je n’aurais pas vu, qui permet d’ajouter une fonction reset utilisable via un icone pour réinitialiser la carte à son état par défaut ?

    Merci d’avance ;)

    Répondre à ce message

  • 1
    Clavier

    Est-il possible de créer (afficher) des point géolocalisés aux point de départ et d’arrivée d’une trace GPX directement dans SPIP

    • L’affichage des GPX ne prend pas ça en charge, mais tu peux le faire comme ça par exemple : afficher ton fichier gpx avec l’option épnoyme + lier deux points à l’objet (article ou autre) depuis lequel tu affiches ta carte et les afficher.

    Répondre à ce message

  • 1

    Bonjour tout le monde,

    je viens de remarquer un truc sur SPIP 3.1.0 [22707] + écran de sécurité 1.2.2 :

    <carte_gis183|kml=6479|zoom=13|point=non>
    dans une rubrique affiche tout les points référencés dans spip ...

    Par contre :

    <carte_gis183|point=non|kml=6479|zoom=13> n’affiche bien QUE le kml ! ;)

    Si ça peut aider certains(es) !

    Répondre à ce message

  • Bonjour,

    ci-dessous le code de ma carte ;
    elle affiche les articles d’une branche.
    Je voudrais aussi qu’elle affiche les fichiers kml associés à un article spécifique.
    Je ne sais pas coder l’instruction.
    Pouvez-vous m’aider ? Merci !

    <carte_gis2|objets=articles_branche|id_rubrique=1|lat=44.894200737355725|lon=6.685489118099213|zoom=16|cluster=oui|clusterMaxZoom=12|maxClusterRadius=80|clusterShowCoverageOnHover=oui|clusterSpiderfyOnMaxZoom=oui|scale=oui|limit=40000>

    Répondre à ce message

  • 2

    Quelques petites remarques sur ce super plugin :

    1. Attention : ya un décalage de 1 dans la manière avec laquelle maxZoom et clusterMaxZoom sont compris
      puisque avec maxZoom le niveau de zoom indiqué est la limite INCLUE, tandis que pour clusterMaxZoom ce niveau de zoom est la limite EXCLUE
    1. Culture générale : l’action de clusterSpiderfyOnMaxZoom=oui est de permettre de discerner les points trop proches les uns des autres, même au plus fort niveau de zoom. Avec cette option activée, quand on est au plus fort niveau de zoom et qu’on clique sur un cluster, les divers points inclus s’écartent sur un petit cercle, ce qui permet de les distinguer et choisir celui sur lequel cliquer.
    1. En pratique : pour que la spiderification puisse se faire, il faut que clusterMaxZoom soit au moins aussi grand que maxZoom, mais en raison du décalage décrit dans le 1er point, il faut que ce soit strictement plus grand que maxZoom.

    Le point 1) est un peu zarbi mais bon...

    b_b si tu valides, je peux reporter ces éléments dans la doc.

    • Hop, le plus simple est de spécifier uniquement clusterMaxZoom, car les différents fonds de carte renseignent déjà la valeur max du zoom qu’elles prennent en charge.

      En bref, pas besoin de spécifier la valeur de maxZoom, à moins que tu souhaites volontairement bloquer à un zoom spécifique.

      Dis moi si c’est plus clair avec cette info.

    • Bah c’est surtout la découverte (avec l’aide de Rastapopoulos) de ce que j’ai reporté dans mon post plus haut qui a permis que le spiderify fonctionne. Dans mon cas il y a effectivement un maxZoom restreint.

    Répondre à ce message

  • 1

    Salut @b_b ... ça farte ?

    Répondre à ce message

  • 7

    Bonjour,

    Il semble manquer la fermeture ?> dans le fichier gis_options.php dans la version 4.32.5, mais à priori j’avais cela aussi dans des versions antérieures.

    Cela faisait bugguer mon flux rss avec une « Erreur d’analyse XML »
    Cela semble arriver quand il y a une ligne vide dans certains fichiers php utilisés par le RSS, en vérifiant, j’ai vu que gis était le fautif ;)

    Merci d’avoir développé ce plugin, il est fort pratique !

    • Ce n’est pas un oubli mais une bonne pratique :)

      Quelle version de PHP utilise ton site ?

    • Bonjour,

      J’utilise PHP Version 5.4.45-0+deb7u1.

      Je viens de me renseigner sur la bonne pratique, que je ne connaissais pas !

      Je remonte cela surtout, car ça génère des problèmes avec le RSS, mais peut être faut-il remonter cela ailleurs mais où, vu que c’est intégré à SPIP..

      Étant donné que les autres fichiers de GIS ont la marque de la fermeture je trouvais ça bizarre, mais en fait, aucun ne devrait l’avoir et le fichier d’appel RSS devrait être re-codé, j’ai bon ?

      Ça fait un trace pour une solution provisoire pour celles et ceux qui cherche le problème avec le flux RSS.

      Merci b_b !

    • Je ne reproduis pas le bug sous 5.5.9+dfsg-1ubuntu4.14, es-tu certain que ça vient bien de GIS ? Quelle est l’adresse du flux en question ?

    • En désactivant GIS, ça disparaît, en le réactivant, ça réapparaît (testé plusieurs fois). Autant pour moi, je croyais que ça marchait avec la fermeture, mais ça marchait surtout parce que j’ai désactivé GIS.

      En cas d’erreur, ça indique
      Erreur d’analyse XML : instruction de traitement XML ou texte pas au début d’une entité externe
      Emplacement : http://www.asso-linux.org/spip.php?page=backend
      Numéro de ligne 1, Colonne 5 :

      <?xml version="1.0" encoding="utf-8"?>
      ----^

      Je viens de le réinstaller et ça rebuggue.
      http://www.asso-linux.org/spip.php?page=backend

      Peut être un conflit avec autre chose...

    • Hmm c’est bien étrange ça, je n’ai jamais observé ce problème avec GIS. Tu dois avoir un problème dans un des fichiers du plugin, essaye de le supprimer du serveur et installe une version propre pour voir. Cela pourrait venir d’un fichier php « corrompue » peut-être.

      Hésite pas à passer en discuter sur http://irc.spip.net on devrait pouvoir régler le pb rapidement.

    • Bonjour,

      C’était le plugin propre, mais je l’ai quand même effacé et réinstallé (idem pour saisies) , c’était pareil.

      Par contre sur www.ordi-linux.org un spip neuf, et le même plugin, pas de soucis !

      Du coup, si l’activation entrait en compte, le plugin n’est pas le fautif ! Un truc obscur des méandres du code...

      Bon, j’en profites pour dire qu’ordi-linux parle de reconditionnement d’ordis sous Linux et de changements de pratiques en France en termes législatives, si il y a des intéressé-e-s.

      Merci b_b pour avoir suivi ça, même si on saura jamais le pourquoi du comment... Sans doute lié à une modif dans squelette, mais je vois pas quoi...

    • Du coup, j’ai mis le lien vers l’autre site pour pas faire doublon de carte (Je n’avais pas trouvé comment exporter tous les points en kml de toutes façon, juste un par un).

      Merci encore b_b

    Répondre à ce message

  • 4

    je n’ai pas forcément compris le fonctionnement de GIS.

    je comptais l’utiliser pour mettre une carte locale pour chaque article décrivant un lieu quelconque sur la planète.

    or, la saisie des « points » semble bien trouver un lieu et l’afficher en privé
    mais en public, rien (sinon un grisé) sauf si je saisie des coordonnées dans la configuration du plugin
    alors, je me retrouve toujours centré sur cette [partie de] carte (seul, la présence on non d’un signet change)

    un [(#INCLURE{fond=modeles/carte_gis,zoom=17,limit=100,scale=oui,fullscreen=oui,zoom_wheel=non})]
    dans mon article.html
    j’ai rajouté un argument ,id_article ou id_gis et même un id_map —> pas mieux

    • En lisant entre les lignes j’espère deviner que ta question est :

      Comment afficher le ou les points liés à un article ?

      Réponse, à placer dans la boucle articles de ton squelette article :

      [(#INCLURE{fond=modeles/carte_gis,id_article,zoom=17,limit=100,scale=oui,fullscreen=oui,zoom_wheel=non})]

      peut-être mieux :

      [(#INCLURE{fond=modeles/carte_gis,objets=articles,id_article,zoom=17,limit=100,scale=oui,fullscreen=oui,zoom_wheel=non})]

    • salut et merci,

      Je me sens de plus en plus neuneu. Bon, je n’avais déjà rien avec le premier.

      je vient d’essayer le second, en local, j’ai cru le voir fonctionner mais non, tout est redevenu gris (il doit y avoir un autre problème). C’est la même chose en ligne si sur la page de configuration je ne donne pas de coordonnées, je n’affiche — en public seulement — qu’un carré gris.

      En ligne ces deux articles avec un point différent donnent la même chose (la carte autour du point mis en configuration) :
      http://ficedl.info/article42.html (point lié 46.526251 6.645313) id_gis=2
      http://ficedl.info/article44.html (point lié 46.186946 9.019205) id_gis=3
      mais : http://ficedl.info/?page=test_gis qui force l’article 44 va bien avec

      [circolo-test(#INCLURE{fond=modeles/carte_gis,
          	autocenterandzoom=oui,
          	id_article=44})]

      Au fait, est-il possible de lier un id_gis existant à un article ? J’en avais détaché un par erreur et il reste orphelin.

    • bon, je me réponds

      avec

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

      je résous le truc mais sans comprendre, c’est frustrant :-(

    • ça semblerait être le critère autocenterandzoom=oui qui manquait à mes boucles et inclusion de modèle.

      Même en local, c’est bon SI on choisi un point autre que le 0 0 par défaut dans la configuration du plugin, et pas seulement le type de fond. Ce n’était pas intuitif dans mon usage mais qui est surement utile pour construire un parcours.

    Répondre à ce message

  • 5

    bonjour,

    2 sites en spip 3.1.0

    le code <carte_gis1|zoom=18|limit=100|scale=oui|fullscreen=oui> dans un article

    sur un site chez l’hébergeur A, pas de problème

    sur un site sur l’hébergeur B, juste un espace correspondant à la carte :
    #map1.carte_gis Largeur = 503px Hauteur = 400px
    mais pas d’affichage

    Y a t’il des extensions à prévoir ?

    merci,

    Claude

    • Rien de spéciale à prévoir, mais comme toujours, un lien vers la page en question ne ferait pas de mal pour t’aider :)

    • voici donc le lien : http://ficedl.info/article42.html

      j’ai comparer rapidement les php info, qq différences et pas d’imagick sur l’hébergeur B

      j’ai mis le code dans le PS de l’article et aussi le #INCLURE dans le squelette (ceinture et bretelles)

    • en complément, un oubli important :

      la carte s’affiche bien en privé (choix d’OpenStreetMap), mais pas du tout en public.

    • Ok, je vois les bugs :

      -  tu as trois fois le de la carte dans ta page, ce la ne pose pas de problème, mais dans ce cas il faut bien que les cartes aient un id différent, cf le paramètre id_carte_gis / id_map  : id unique de la carte (à définir si plusieurs cartes sont affichées sur une même page).
      -  ton site utilise une vieille version de jQuery (1.2.1) qui est dans ton dossier squelettes alors que SPIP 3.1 utilise normalement la version 1.12.0. Il faut rétablir l’usage de la version proposée par SPIP en supprimant celle présente dans squelttes/javascript

      Après ces modifs, tout devrait fonctionner comme prévu ;)

    • diantre !

      un dossier javascript dans mon dossier squelettes !

      maintenant, c’est tout bon

      mille grazie

    Répondre à ce message

  • 1

    limit=100 permet d’afficher un maximum de 100 marqueurs. Mais si je veux afficher les 100 derniers articles géolocalisés comment dois-je procéder ?

    D’avance merci.

    Répondre à ce message

  • 2

    Bonjour et pour commencer, bravo. Superbe plugin.
    Je l’utilise pour afficher une carte d’événements en l’intégrant dans un article avec la ligne suivante (j’ai supprimé les options d’affichage) :

    <carte_gis1|objets=evenements>

    Est-il possible, dans ce code, de faire en sorte que seuls les événements à venir apparaissent ?
    Ou faut-il passer par les modèles ? (Comment ?^^)

    Merci par avance

    • Hop,

      Est-il possible, dans ce code, de faire en sorte que seuls les événements à venir apparaissent ?

      Oui, il suffit de :

      1. copier le squelette json/gis_evenements.html dans squelettes/json/gis_evenements_avenir.html
      2. adapter la boucle du squelette en question pour ne lister que les événements à venir
      3. utiliser ce nouveau json avec le paramètre objets=evenements_avenir dans l’appel de ta carte

      Et hop :)

    • Un bon plugin et une aide rapide et efficace. Ça marche très bien en suivant ces instructions et en ajoutant

      {age<=0}

      dans les critères.
      Merci encore.

      et zou !

    Répondre à ce message

  • 3
    Jmtconseils

    Je souhaite récupérer les données d’auteurs d’une table externe (existante dans la BDD utilisée par SPIP)

    Code employé :

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

    Rien ne s’affiche.

    Des idées ?

    Si je mets :

    <BOUCLE_simple(tableautre_auteurs) {par nom}  >
        #ID_AUTEUR - <b>#NOM<br />
    </BOUCLE_simple>

    J’ai bien la liste des auteurs de ma table externe.

    • Salut, il faut te créer un squelette json perso, le sujet a souvent été abordé dans ce forum :

      http://contrib.spip.net/GIS-4?debut_comments-list=-1#forum478364

      Tu trouveras aussi des infos intéressantes dans cet article :

      http://contrib.spip.net/Gis-4-Surcharger-les-infobulles

      En résumé, il faut copier le squelette gis/json/gis_auteurs.html dans squelettes/json/gis_autresauteurs.html et adapter la boucle à ta table perso. Ensuite, tu pourras utiliser ce json en passant le paramètre objets=autresauteurs à ta carte.

    • Jmtconseils

      OK, merci b_b,
      Pas de souci donc et ensuite pour surcharger si besoin les infobulles c’est pas compliqué.
      Merci de ta réponse.

    • Jmtconseils

      Désolé b_b mais je reviens à nouveau sur mon souci n’ayant pas encore pu le résoudre.
      Dans mon squelette j’ai

          [(#INCLURE{fond=modeles/carte_gis,
                  objets=auteurs,
                  height=700px,
                  width=100%,
                  cluster=oui,
                  clusterMaxZoom=15
                  
                  })]

      Dans mon fichier json/gis_auteurs.html

      		<BOUCLE_auteurs(AUTEURS)(matableexterne){gis}{id_article ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}>
       ... ici lecode ...
      		}}</BOUCLE_auteurs>

      et rien ne s’affiche

      Mes liens pour « voir »
      Je voudrais ça : http://ow.ly/X2ZgZ
      ici : http://ow.ly/X2Zor

      Un grand merci pour ton aide

    Répondre à ce message

  • bonjour
    premiere question de 2016 ;-)
    j’ai une boucle :

    <BOUCLE_b(GIS){gis distance<8}{par titre}>

    mais elle ne veut pas trier par titre ...
    c’est normal ?
    (si je met juste

    <BOUCLE_b(GIS){par titre}>

    ca marche )
    merci d’avance

    Répondre à ce message

  • 1

    Est-il possible d’afficher deux infobulles lorsqu’on utilise GIS avec les événements de l’agenda ? J’ai deux événements au même endroit mais à des dates différentes mais seul le dernier s’affiche dans une infobulle.
    Merci par avance !

    • Aie, veuillez m’excuser, j’ai trouvé la réponse dans le message de b-b du 7 décembre. Le Clustering est la solution :)
      Merci et bravo pour ce boulot.

    Répondre à ce message

  • 1

    Bonjour !

    petite question, peut-on créer une carte calculant un itinéraire (comme le faisait le plugin Itinéraire en fait mais pour Spip 3) ?

    Merci :)

    Répondre à ce message

  • 2

    Hello

    merci pour ce fantastique plugin !!!!

    j’ai trouvé une petite erreur de copier coller dans le calcul de modulo dans la fonction gis_modifier dans action/editer_gis.php (160) :

    while($c['lat'] <= -90){
    	$c['lat'] = $c['lon'] + 180;...

    il faut $c['lat'] partout...

    Répondre à ce message

  • 2

    Question propre à l’utilisation de GIS, prenons 2 points GIS (adresse - identique) mais malgré tout différents !

    J’explique :
    Jean Dupont rue du vent 15 bureau 2 75000 Paris
    Jacques Duval rue du vent 15 bureau 3 75000 Paris

    Mes 2 points existent mais se superposent parfaitement sur ma carte ! pour info c’est le dernier point créer qui cache le plus ancien... et mes 2 auteurs n’ont strictement rien à voir l’un avec l’autre... comment faire apparaitre mes 2 points ?

    J’ai essayé de ruser en trichant un peu sur les lat et lon... mais c’est pas très clean ni très visible ;-)
    Un autre truc ? Merci :-)

    • Salut Paulbe, une solution, utiliser les options cluster=oui,clusterSpiderfyOnMaxZoom=oui pour activer le clustering et l’effet d’éclatement pour les points qui se chevauchent (cf le tableau d’options du modèle de GIS sur cette même page).

    • Oh joie ! cela fonctionne... juste un conseil... attention aux coquilles :-D
      Merci b_b pour tes très bons conseils ;-)

    Répondre à ce message

  • 1

    Même problème que Paulbe, je pense ..
    Je voudrais créer une carte qui géolocalise les auteurs de mon site. Les auteurs qui apparaissent doivent être filtrés sur un mot clé : uniquement les « journalistes » doivent apparaitre sur la carte).
    Jusque là, pas de problème.
    Problème : certains auteurs ont exactement la même adresse et du coup, seul le dernier localisé apparait. Les autres sont cachés par le dernier encodé. Comment faire pour résoudre ce problème ?
    Merci
    Benoît

    Répondre à ce message

  • 3

    Bonsoir

    Depuis une mise à jour (l’avant dernière), je n’arrive plus à enregistrer un point (echec).
    Je viens de faire la dernière mise à jour, du coup j’ai retrouvé openmapsurfer (chic, c’est de celui là que je me sers) mais je n’arrive toujours pas à enregistrer les points...
    je peux par contre modifier les points existants.

    Merci d’avance

    • Bonjour

      J’ai désinstallé Gis puis ré-installé, ça remarche... ouf ;)
      J’ai 2 autres petites questions :
      -  où peut on trouver des explications sur les couches (ce qu’elles montrent) proposées par le plugin
      -  peut on rajouter une couche soi même dans le listing (ex : couche Bano) et si oui, comment faire

      Merci beaucoup

    • Salut,

      peut on rajouter une couche soi même dans le listing (ex : couche Bano) et si oui, comment faire

      Oui c’est possible, cf : http://contrib.spip.net/Astuces-GIS#fonds_persos

      Et hop :)

    • Merci b_b pour le lien :)

    Répondre à ce message

  • 4

    Bonjour,

    Ce plug-in marche parfaitement et je l’utilise régulièrement, mais impossible de superposer un kml si celui-ci comporte un « GroundOverlay » (image superposée) alors que ça fonctionne si ce sont des polygones par exemple.

    SPIP 3.0.17 avec GIS 4.19.5. J’utilise le modèle standard :
    [(#INCLUREfond=modeles/carte_gis, objets=articles, zoom=9, kml=X)] avec X = numéro du doc.

    Ce kml s’affiche parfaitement dans Google Earth.

    Merci de vos éclairages

    • Salut, « chez moi ça marche © » :

      http://www.geodiversite.net/media1300

      Quelle est l’url de ta page ? Quelle est l’url de ton kml ?

    • Bin té rapide !

      Ma page : http://www.imediadakar.com/cpch/spip.php?page=rubrique&id_rubrique=2

      Adresse kml : http://www.imediadakar.com/cpch/IMG/kml/rwanda-2.kml

      Code kml

      <?xml version="1.0" encoding="UTF-8"?>
      <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
      <GroundOverlay>
      	<name>rwanda</name>
      	<color>000000</color>
      	<Icon>
      		<href>http://www.imediadakar.com/cpch/IMG/png/rwanda.png</href>
      		<viewBoundScale>0.75</viewBoundScale>
      	</Icon>
      	<LatLonBox>
      		<north>-1.04713743877669</north>
      		<south>-2.843210806065836</south>
      		<east>30.90692790270576</east>
      		<west>28.76961475128698</west>
      	</LatLonBox>
      </GroundOverlay>
      </kml>
    • Ok, c’est la balise <color>000000</color> qui n’est génère une opacité à 0, donc ton image n’est pas visible, chez moi ça fonctionne bien si je vire cette balise :

      http://labo.eliaz.fr/article138.html

      Et hop :)

    • Ca marche ! Après avoir la dernière version de Spip et Gis. Té trop fort.

      Bravo et super merci pour ta célérité !

    Répondre à ce message

  • 2

    Hello,

    J’y ai déjà passé des heures et des heures et j’avoue toujours ne rien y comprendre !???
    J’ai déjà relu 20 fois cette page ... :-(

    Je voudrai simplement ajouter dans ce qui apparait lorsque l’on clique sur la bulle, l’adresse, le code postal, la ville et le pays renseigné dans le point géolocalisé ... :-p

    Donc dans mon dossier squelettes j’ai créé un dossier /json dans lequel j’ai gis_rubriques.html qui contient :

    <BOUCLE_rub(RUBRIQUES){gis}{id_rubrique ?}{id_secteur ?}{id_parent?=#ENV{id_parent}}{id_mot ?}{recherche ?}{0, #ENV{limit}}{","}>
    		{"type": "Feature",
    		["geometry": (#GEOMETRY|appliquer_filtre{wkt_to_json}|sinon{{"type": "Point", "coordinates": \[#LON, #LAT\]}}),]
    		"id":"#ID_GIS",
    		"properties": {
    			"title":[(#URL_RUBRIQUE|extraire_multi|lien_ou_expose{[(#TITRE_GIS*|sinon{#TITRE*}|supprimer_numero)]}|json_encode)],
    			"description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|concat{#PAYS_GIS}|json_encode)][
    			(#LOGO_GIS|gis_icon_properties)]
    		}}</BOUCLE_rub>

    Mais là rien ne change... on me dit relit, tu comprendras, mais là ... je suis perdu complètement !
    Un coup de main, de pied, qu’importe mais il faudrait que j’avance...
    Merci à la bande ou à l’âme charitable qui prendra sur son temps pour m’expliquer ;-)
    Amitié

    • Tu veux que ta carte utilise json/gis_rubriques, donc il faut passer objets=rubriques à la carte.

    • Après avoir cherché et tenté autre chose voici ma solution, depuis le texte de l’article ci-dessus a été également changé !

      Donc dans ma page rubrique j’ajoute

      [(#INCLURE{fond=modeles/carte_gis,objets=rubriques})]

      Et dans mon gis_rubriques.html j’y mets

      <BOUCLE_rub(RUBRIQUES){gis}{id_rubrique ?}{id_secteur ?}{id_parent?=#ENV{id_parent}}{id_mot ?}{recherche ?}{0, #ENV{limit}}{","}>
      		{"type": "Feature",
      		["geometry": (#GEOMETRY|appliquer_filtre{wkt_to_json}|sinon{{"type": "Point", "coordinates": \[#LON, #LAT\]}}),]
      		"id":"#ID_GIS",
      		"properties": {
      			"title":[(#URL_RUBRIQUE|extraire_multi|lien_ou_expose{[(#TITRE_GIS*|sinon{#TITRE*}|supprimer_numero)]}|json_encode)],
      			"description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|concat{#ADRESSE_GIS<br />#CODE_POSTAL_GIS #VILLE_GIS #PAYS_GIS}|json_encode)][
      			(#LOGO_GIS|gis_icon_properties)]
      		}}</BOUCLE_rub>

      Pour faire apparaitre l’adresse et la localité en 2 lignes ;-)

    Répondre à ce message

  • 4
    Spipmalion

    Bonjour,

    Le plugin peut-il fonctionner avec le critère mots ? (http://contrib.spip.net/Critere-mots)

    Comment adapter le code ?

    mot.html

    <BOUCLE_articles(ARTICLES){id_rubrique}{id_groupe}{mots_selon_id?}{par titre}>
    ...
    </BOUCLE_articles>
    ...
    [(#MODELE{carte_gis,objets=touslesmots,id_mot=#ID_MOT,height=600px,id_carte_gis=annuaire, minZoom=7, scale=oui,gpx=89, fullscreen=oui})]

    json/gis_touslesmots.html

    <BOUCLE_art(ARTICLES){gis}{id_mot?}{","}><BOUCLE_gis(GIS){id_article}{doublons}{","}>
    ...

    Objectif : transmettre à la carte le mots_selon_id ? utilisé dans la boucle articles

    Merci d’avance

    • Oui tu peux utiliser le plugin mots avec GIS, cf :

      http://zone.spip.org/trac/spip-zone/browser/_plugins_/gis/trunk/modeles/carte_gis.html?rev=#L49

      À toi d’adapter ton fichier json pour qu’il prenne en compte ce critère.

    • Spipmalion

      Merci b_b

      Donc j’ai crée

      #GET{listeMots}

      qui vaut dans l’exemple :

      #LISTE{80,1}

      Je passe le passe en param au modèle :

      [(#MODELE{carte_gis,objets=touslesmots,mots=#GET{listeMots}})]

      Ca le prend apparemment bien dans le js :

      json_points:{
      	url: 'http://www.monsite.fr/spip.php?page=gis_json',
      	objets: 'touslesmots',
      	limit: 500,
      	env: {"id_mot":"80","mots":["80","1"]},
      	titre: "",
      	description: "",
      	icone: ""
      }

      json/touslesmots.html :

      <BOUCLE_art(ARTICLES){gis}{mots}{","}><BOUCLE_gis(GIS){id_article}{doublons}{","}>

      Mais il ne prend pas tous les résultats, exemple suivant, un seul point est affiché au lieu de 3 :
      http://bit.ly/1WmP365

    • Héhé, tu te fais piéger par la balise modèle qui passe automatiquement des paramètres de l’environnement. Dans ton cas la balise passe un id_mot qui entre en conflit avec mots. Utilise plutôt la balise inclure, comme dans les exemples de cette page, et ça devrait mieux fonctionner.

    • Spipmalion

      Apparemment id_mot ne rentre pas en conflit avec mots (je suppose que ça écrit « AND id_mot = 7 AND id_mot 7 » ?)

      Ca fonctionnait bien depuis le début, ce sont les superpositions de points qui m’ont fait croire que ça ne sélectionnait pas tout.

      J’ai activé les clusters.

      Avec clustering activé, c’est gis_focus_marker qui ne fonctionne plus :-(

    Répondre à ce message

  • 1

    Bonjour, où appliquer les options pour les popups ?

    http://leafletjs.com/reference.html#popup-maxwidth

    Répondre à ce message

  • 3

    Bonjour, le problème avec les paramètres optionnels lors de l’utilisation du modèle GIS dans un article de SPIP 3 a t-il été résolu ou peut-il être résolu ?
    Sur mon site de test ( en local ), effectivement je remarque que ni |default_layer = bing_aerial, ni |zoom_wheel = non, ni |control_type = non ne sont pris en compte. Je suppose que c’est pour cette raison.

    • Salut, qu’entends-tu par paramètres optionnels ? Je pense que ton problème vient des espaces entre le nom du paramètre, le = et sa valeur...

    • Petite nuance, si je ne passe que |zoom_wheel = non, celui-ci fonctionne ( c’est le plus important pour moi même si j’aimerais bien accéder aux autres aussi ).

    • J’ai retiré les espaces et effectivement dans une certaine mesure cela fonctionne. Je sais qu’il est parfois bon de remixer les paramètres dans un ordre différent, j’ai essayé de le faire pour obtenir un modèle qui puisse fonctionner dans diverses situations de mon site.

      Pour te répondre b_b je lisais ton avertissement : « Attention : un bug de SPIP peut provoquer .. » plus haut. C’est de cela que je parlais lorsque j’évoquais les paramètres optionnels.

    Répondre à ce message

  • 4

    Hey b_b

    Comment ferais-tu pour afficher les coordonnées de la carte « par défaut » ? (Celle par défaut dans la carte du privé ?) J’aimerai utiliser ces coordonnées sur une balise Geo Meta Tags globale à tous le site, et aussi la glisser sur un accueil via un micro format.

    becs de la Yaute

    • Yo Stephan, ça faisait longtemps... Les coords par défaut sont des valeurs de config, donc tu peux les récupérer avec #CONFIG{gis/lat} et #CONFIG{gis/lon}, et hop :)

    • Yes que de lignes de codes depuis ces temps. :) Ca marche impec. J’ose une question subsidiaire ?

       p-post-office-box
      p-extended-address
      p-street-address
      p-locality
      p-region
      p-postal-code
      p-country-name 

      Y a des balises pour remplir ça ? http://microformats.org/wiki/h-adr Par défaut ?

    • Certaines oui (cf la partie geocoder du plugin, et l’option Afficher les champs d’adresse dans la page de config). Pour les autres, champs extras est ton ami :)

    Répondre à ce message

  • 1

    Hello

    Pour un marqueur de 32 le y de popup_anchor est 32/1.2 = 26.666666666667

    Dans gis_icon_properties, ne serait il pas référable d’arrondir les positionnements calculés ?

    $props .= "\n\"popup_anchor\": ". json_encode(array(1,-intval($h/1.2)));

    ou

    $props .= "\n\"popup_anchor\": ". json_encode(array(1,-round($h/1.2,1)));

    voire si jamais des devices le nécessitent :

    $props .= "\n\"popup_anchor\": ". json_encode(array(1,-round($h/1.2,2)));

    Répondre à ce message

  • 12

    Bonjour,

    Sous SPIP 3.0.17, GIS 4.31.2, j’ai fait une petite liste de 3 points, que j’ai associé à un article.
    Quel est la commande théorique pour faire apparaître une carte dans un article ?
    J’ai bien désactiver la compression html et vider le cache mais mes articles restents vides.

    <carte_gis1|objets=articles_branche|id_rubrique=1>

    Cordialement,

    • Salut,

      Sous SPIP 3.0.17...

      Première chose à faire, mettre à jour ton SPIP, ça mange pas de pain d’être à jour ;)

      Tu veux afficher les points liés à un article, il faut donc utiliser le paramètre objets=article dans l’appel du modèle (dingue non ? ^^). Puis, passer l’id_article au modèle, sauf si tu utilises le modèle depuis le texte de l’article en question (dans ce cas le paramètre sera passé automagiquement au modèle).

      Wala wala :)

    • J’ai eut le même problème avec le cache de mon site.

      Et finalement au lieu de vider le cacher j’ai fait « Désactiver temporairement le cache » et là. Oh miracle ! Tout marche !

      Je recommande à ceux qui ont un problème similaire d’éssayer ça ;)

    • Salut, amha c’est une mauvaise idée que de désactiver le cache ton site...

    • J’ai tenté <carte_gis|objets=articles>
      mais je n’ai toujours rien qui s’affiche dans l’article.
      J’ai cependant bien ma carte dans l’aperçu du dit article.
      Désactiver les compressions html/ scripts / css n’a rien changé.

    • Une idée ? Je veux juste mettre une carte toute bête dans un article quoi, la base de ce plugin ...

      Merci d’avance

    • Bonjour,

      Essaie <carte_gis1>

    • Bonjour,

      J’ai effectivement un bout de carte qui s’affiche mais avec encore un soucis (voir PJ)
      Toutes compressions désactivées.

      Cordialement,

    • On dit qu’une image vaut mieux que des mots, mais un lien c’est encore mieux :)

    • Voila j’ai monté le site test ici : http://81.252.169.3/?test

    • Il manque certainement la balise #INSERT_HEAD dans le <head> de ton squelette (celle-ci est nécessaire au bon fonctionnement des plugins et de pas mal d’éléments de SPIP).

    • Ca marche désormais, j’ai rajouté ceci dans le squelette des articles.
      Merci :)

    • Comment afficher le détail des points ? Par défaut, il n’affiche que le titre, pas les adresses exactes.

    Répondre à ce message

  • 2

    Bonjour,
    Je viens de découvrir ce plugin. Je voudrais l’utiliser simplement pour afficher une carte avec une épingle sur le lieu d’un évènement.
    Dans l’interface privée, tout va bien, je peux définir le point lié à l’évènement.
    Mais pour afficher la carte sur le site, en ajoutant ce qui est recommandé ici, a savoir par exemple <carte_gis1|zoom=8|limit=100|scale=oui> dans le descriptif de l’évènement, il y a un problème : toute les épingles des autres évènements sont affichées et non pas seulement celle de l’évènement en question. J’ai esseyé d’ajouter des paramètres mais rien n’y fait.
    Précision : je suis sous SPIP 3.0.17 squelette Ahuntsic.
    Désolé pour cette question de parfait béotien.

    • Salut, essaye ça :

      <carte_gis1|objets=evenements|id_evenement=X|centrer_auto=oui>

      Où X vaut l’id de ton événement à afficher sur la carte.

    • Merci pour cette réponse rapide et efficace.

    Répondre à ce message

  • 2

    Bonjour,

    Merci pour ce plugin !!

    Est-il possible, dans l’espace privé, de restreindre l’affichage de la géolocalisation à certaines rubriques.

    en clair, j’aimerai afficher la « boite » géolocalisation seulement sur une rubrique précise.

    D’avance merci
    Cordialement,

    Répondre à ce message

  • 4

    Bonjour,

    Sur 2 sites que j’ai développés et utilisant Gis4, je retrouve les mêmes problèmes : les boutons de zoom (et de plein-écran) se retrouvent au dessus de tout contenu (notamment des menus, pourtant en z-index : 9999).

    Y’a-t-il une manière de pallier à cet état de fait ?
    En vous remerciant.

    • Salut, on devrait pouvoir t’en dire plus avec un lien vers la page en question ;)

    • Bonjour B_B,

      J’ai l’impression que c’est une constante....
      Voici des exemples :
      http://www.luangprabang-laos.com/-rubrique85- (on voit le menu déroulant s’afficher au dessus de la page, mais les boutons de contrôle sont à la couche supérieure)
      http://www.southern-laos.com/newversion/spip.php?article1&lang=en (quand on clique sur le bouton menu en haut à gauche, on voit quand même les mêmes boutons apparaitre au dessus...)

      Merci B_B pour ton expertise ;-)

    • Salut,

      Sur la page du premier, lien, je ne vois aucune trace de z-index pour .menu ul dans tes css, si j’ajoute un z-index : 9999 ; à celui-ci, le menu passe bien au dessus des boutons de leaflet...

      Pour le deuxième lien, une valeur de 9999 pour le z-index de ton menu fixe aussi le problème.

      Wala pour mon « expertise » :)

      ++
      b_b

      ↑ j’insiste sur les minuscules :p

    • Bonsoir b_b (en minuscule ;-),

      MERCI !!! (en MAJUSCULE). Effectivement, il fallait placer le z-index : 9999 au bon endroit. Je pensais avoir TOUT essayé, mais non, puisque ton EXPERTISE s’est avérée payante.
      Encore MERCI, car sur le problème est résolu sur les 2 websites !

    Répondre à ce message

  • 4

    bonsoir

    après migration a gis4, les points ne s’affichent plus dans une carte
    en fait, on le voit tout simplement dans la gestion des points géolocalisés
    il y a bien une liste de points, mais ils ne s’affichent pas dans la carte..
    ...
     ??

    merci d’avance d’une piste...

    pam

    Répondre à ce message

  • 3

    Bonjour

    Je cherche à afficher une carte dans un article que si l’article à un ou plusieurs points liés.. Je ne trouve pas la syntaxe à utiliser dans le squelette.

    Merci de votre aide.

    • Salut, tu peux le faire comme ça :

      <BOUCLE_test(GIS){id_article}{0,1}>
      Le code pour afficher ta carte ici.
      </BOUCLE_test>

      ++

    • Merci pour cette réponse très rapide :)

      Solution tout simple et très fonctionnel pourquoi n’y ai-je pas pensé. (Je cherchais à faire un ’if" par habitude d’autres langages)

    • Un peu plus compliqué (du moins je pense), je cherche à faire la même chose dans les rubrique. N’afficher la carte que si un ou plusieurs articles de la rubrique contiennent un ou plusieurs point GIS.

    Répondre à ce message

  • Bonjour,

    avec SPIP 3.0.20 et plugin Gis et GisGeom à jour, je souhaite voir une vidéo directement dans l’info bulle. Pour cela un fichier json avec la ligne
    « description » :[(#TEXTE|video_responsive|json_encode)] : le code embed est dans le texte de l’article.

    On peut voir le résultat ici : http://moduloo.net/spip.php?rubrique45&var_mode=recalcul

    Tout marche bien mais la vidéo n’est pas visible, la console sort "Error : Permission denied to access property « toString »... Mais on entend le son ensuite, sans l’image !

    Une idée ? Je pense à un problème de sécurité, et donc pas lié au plugin !
    Mais on sait jamais !

    Merci
    Julien

    Répondre à ce message

  • 5

    Bonjour à tous,

    J’utilise la couche ESRI WorldStreetMap et j’ai un question à 2 balles : peut-on récupérer une couche avec les textes « génériques » en français ?
    J’entends par générique : « Bay of Biscay » (Golfe de Gascogne), « Atlantic Ocean », etc.

    Merci !
    françois

    Répondre à ce message

  • 2

    Bonjour,

    Je suis sous SPIP 3.0.20 [22255] avec GIS 4.26.12. J’ai modifié le htaccess du site pour que tout l’espace privé (../ecrire/) soit en https. Lorsque je me connecte à cet espace privé, mon navigateur m’alerte qu’il bloque le chargement de contenus mixtes actifs (ce sont des contenus appelés par la page qui ne sont pas en https). C’est le cas de l’URL http://maps.google.com/maps/api/js?sensor=false&language=fr qui est mise en place par GIS, et notamment par le fichier gis_pipelines.php.

    Pour corriger ceci, j’ai donc modifié une copie de ce fichier (qui se trouve dans /plugins/auto/v4.26.12) que j’ai placé à la racine du dossier /squelettes pour ne pas écraser celui du plugin.

    Je pensais que c’était la bonne méthode pour surcharger le fichier d’un plugin mais, dans mon cas, cela ne fonctionne pas. Il ne semble pas pris en compte. Pouvez-vous me dire où je dois placer ce fichier pour qu’il soit pris en compte ?

    Sébastien.

    • Salut, même si je déconseille toujours d’utiliser les couches de google (car celles-ci imposent l’insertion de script externes) voici qui devrait corriger le problème :

      http://zone.spip.org/trac/spip-zone/changeset/91218

      La version 4.27.1 sera dispo en zip dans l’après-midi, dis moi si ça corrige bien le bug de ton côté.

    • Je te remercie pour ta réponse, et tes corrections très rapides et efficaces. En effet, je viens d’installer la version 4.27.1 et cela corrige bien le bug signalé.

      Merci aussi pour le conseil concernant les couches de cartes : je vais tester et je te ferai un retour si je rencontre pour d’autres couches que celles de Google, des appels d’URLs en http au lieu de https.

      Merci encore pour ce superbe plugin.

      Cordialement.

      Sébastien

    Répondre à ce message

  • 1
    Urs Riggenbach

    Hello,

    thank you for this excellent plugin. I would like to ask users just an address field, and then geocode the address after sumbmitting the form and save it as coordinates in the database.

    I’ve been looking at formulaires/editer_gis.* files.

    I have a field « location » added to my articles. Upon submission I would like to take this address field, geocode it with php and save the coordinates via formulaires_editer_gis_traiter_dist from formulaires/editer_gis.php.

    If the verifier function can’t geocode an address, then it should give an error for the user to try a different address.

    How can I hook into the GIS geocoding system ?
    Thank you
    Urs

    Répondre à ce message

  • 1

    J’ai une question et un problème sur lequel je bute.

    Après avoir inclus l’appel suivant dans un squelette (content/annuaire.html, en l’occurrence, via Zspip)[(#INCLURE{fond=modeles/carte_gis,objets=organisations,limit=1000})]

    et modifier, dans le sens indiqué par b_b ( j’ajoute moi aussi un « grand merci » pour la création et le partage de ce formidable outil et toutes ces précieuses indications) le fichier json/gis_organisations.html
    pour y ajouter le code suivant :

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

    Mais à priori je ne fais pas ce qu’il faut et ces modifications ne sont pas prises en compte : je n’arrive pas à avoir de lien vers l’organisation dans l’info-bulle.

    Aurais-je du faire directement appel à un modèle plutôt que de passer par modeles/carte_gis ? modeles/carte_organisation par exemple ?

    Si quelqu’un a une piste, je suis preneur...

    Par ailleurs, pour info, le code suivant marche à priori pour les organisations (mais je ne sais pas s’il est optimal). J’ai limité la possibilité de modifier les cartes aux seuls auteurs et admin, car [(#AUTORISER{modifier,gis})] laisse apparemment à tous les visiteurs la possibilité de modifier les cartes.

    Bref, si ça peut aider (sans habillage) :

    <B_carte>
    <BOUCLE_carte(ORGANISATIONS){gis}{id_organisation}>
    
    [(#MODELE{carte_gis_objet,
    id_carte_gis=organisation#ID_ORGANISATION,
    objet=organisation,
    id_objet=#ID_ORGANISATION,
    zoom_molette=non,
    fullscreen=oui,
    zoom=15,
    centrer_auto=oui})
    ]
    
    	[(#SESSION{statut}|=={1comite}|oui)
    		[(#FORMULAIRE_EDITER_GIS{#ID_GIS,organisation,#ID_ORGANISATION,#SELF})]
    	]
    
    	[(#SESSION{statut}|=={0minirezo}|oui)
    		[(#FORMULAIRE_EDITER_GIS{#ID_GIS,organisation,#ID_ORGANISATION,#SELF})]
    	]
    
    </BOUCLE_carte>
    </B_carte>
    
    <B_ajouter_carte>
    <BOUCLE_ajouter_carte(ORGANISATIONS){id_organisation}>
    [(#AUTORISER{ajouter,gis})
    [(#FORMULAIRE_EDITER_GIS{new,organisation,#ID_ORGANISATION,#SELF})]
    ]
    </BOUCLE_ajouter_carte>
    </B_ajouter_carte>
    
    <//B_carte>

    Répondre à ce message

  • Bonjour à tous,

    bravo pour ce superbe plugin, bien fonctionnel !

    Nous avons repris la gestion d’un site Internet, utilisant ce plugin GIS.
    Cependant, nous constatons depuis quelques jours un dysfonctionnement d’affichage des points sur la carte Google.
    En effet, plus aucun point ne s’affiche sur la carte (côté internaute), malgré un bon fonctionnement côté console d’administration.

    Le développeur a « détourné » le module pour développer une partie à la « mano » côté internaute.
    Le code est très lourd à lire, avant de partir dans un audit complet de son développement, nous nous demandions s’il n’y aurait pas eu un changement de l’algo de Google, et/ou des urls à modifier dans son code ?

    Merci par avance, excellente journée

    Répondre à ce message

  • Bonjour,

    Je suis actuellement en test local, avec GIS 4.26.12 et SPIP 3.0.20.

    Outre que j’ai des petits soucis avec la syntaxe des paramètres (pluriel/singulier pour « objet » ), je cherche à faire quelque chose de précis et je ne sais pas comment m’y prendre, malgré plusieurs tentatives.

    Je cherche donc à obtenir une carte avec des auteurs et des événements (géolocalisés bien entendu), avec dans l’infobulle le lien vers la page de l’auteur ou l’événement.

    Actuellement, je passe une carte sans description de l’objet, et j’ai mes auteurs et mes événements qui apparaissent bien, mais sans titre (juste la description).
    Quand je fais le choix de passer un seul objet (auteur par exemple), outre le fait que je doive mettre tout au singulier pour voir quelque chose apparaitre (objets=auteurs ne fonctionne pas, je dois mettre objet=auteur), et que je modifie gis_auteur avec le petit hack précisé dans l’article, j’ai bien affiché mes auteurs, avec un lien sur le titre, mais qui est celui de la page en cours.

    Bref, je ne comprends pas tout ce qui arrive et j’aurais bien besoin d’une petite lanterne, merci d’avance !
    Mox

    ps : et merci pour ce plugin et son suivi !

    Répondre à ce message

  • 1

    Bonjour,

    Est-il possible d’utiliser plusieurs points libres dans le modèle ?

    Merci

    Répondre à ce message

  • 1

    Bonjour ;

    Je veux déclencher une action en appuyant sur le marqueur d’une carte mais j’arrive pas a le faire ; j’ai essayer avec :
    $(’.leaflet-marker-icon’).on(’click’, function ()
    alert( « alert !!!! » ) ;
    ) ;
    mais ça marche pas. Pouvez-vous m’aider SVP ??
    Merci d’avance.

    Répondre à ce message

  • 1

    Hello,

    Depuis quelques jours et sur plusieurs sites sur des serveurs différents la couche Openstreetmap black&white ne s’affiche plus (mais les marqueurs oui). Par contre la couche Openstreetmap de base (en couleur) est OK

    Ce problème est-il connu ?
    merci
    dd

    Répondre à ce message

  • 12

    Bonjour,

    Je suis néophyte dans l’utilisation de ce plugin.
    Mon premier objectif : sur la page mot faire apparaître une carte présentant les points liés à ce mot.

    J’ai essayer d’afficher une carte avec

    [(#MODELE{carte_gis}{id_mot}{recherche})]

    et aussi

    <BOUCLE_mots(MOTS){id_mot}
    [(#MODELE{carte_gis}{id_mot}{recherche})]
    </BOUCLE_mots>

    mais sans succès...

    Merci pour votre aide

    • Bonjour,

      Je suis néophyte dans l’utilisation de ce plugin.

      Après avoir installer le plugin, je ne peux pas le configurer via « Configurer ».
      Si je passe par ecrire/ ?exec=configurer_gis, la carte qui s’affiche dans mon test est la carte « configurer »
      un exemple : http://12watchmagazine.com/+-A-Lange-Sohne-+.html ?

      Mon objectif : sur la page mot faire apparaître une carte présentant les points liés à ce mot.

      J’ai essayer d’afficher une carte avec

      [(#MODELE{carte_gis}{id_mot}{recherche})]

      et aussi

      <BOUCLE_mots(MOTS){id_mot}
      [(#MODELE{carte_gis}{id_mot}{recherche})]
      </BOUCLE_mots>

      mais sans succès...

      Merci pour votre aide

    • Salut, premier conseil, désactive la compression HTML depuis la page de configuration avancée de l’espace privée. À l’inverse de la compression css + javascript, la compression html n’apporte pas grand chose en terme de performances et peut provoquer des bugs avec certains plugins.

      Le modèle de la carte ne reçoit pas d’id_mot à ce que je vois, quelle est l’adresse de ton squelette ?

    • Merci pour ta réponse.
      Effectivement, en désactivant la décompression HTML laisse apparaître les points côté espace privé.
      Par contre rien côté public.

      Comment fournir l’adresse du squelette ?

      Sinon, le [(#MODELEcarte_gis, zoom=8, limit=100, scale=oui)] doit il être inclus dans une boucle ?

    • En testant ça

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

      Tous les points de tous les mots s’affichent. Il y a du progrès... Par contre pour n’afficher que les points liés à un mot ?

      Merci

    • id_mot au lieu de ig_groupe et hop :)

    • déjà testé... mais non,

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

      n’affiche plus rien

    • id_mot fonctionnera s’il y a bien un id_mot dans l’environnement ou si tu es dans une boucle mots.

      Sinon, hésite pas à passer en discuter sur IRC, ça ira plus vite que dans le forum ;)

      http://spip.net/irc

    • Quand tu dis :

      sur la page mot faire apparaître une carte présentant les points liés à ce mot

      Tu veux les points liés au mot ou les points liés aux articles qui eux sont liés à ce mot ?

      Ton site génère pas mal d’erreur javascript, il faudrait les corriger dans un premier temps. Es-tu certain⋅e que tes squelettes comportent la balise #INSERT_HEAD (qui est quasi indispensable pour les plugins) ?

    • Je souhaite les points liés au mot et non aux articles liés à ce mot.

      Comment vois-tu ces erreurs javascript et comment les corriger ?

      Dans inclus dans mot.html il y a #INSERT_HEAD_CSS

    • Comment vois-tu ces erreurs javascript et comment les corriger ?

      Avec firebug, en débuguant les scripts qui posent problème, mais je pense qu’il suffit d’ajouter la balise insert_head pour corriger ces problème.

    • ok merci... je vais regarder.

      sinon quel serait le code exact pour présenter une carte avec les points liés à un mot

      (sans avoir besoin de préciser le n° du mot dans un squelette mot :) )

      que de maux.. parfois

    • Pour info :

      < b_b‎ >  ok
      < b_b‎ >  trouvé
      < b_b‎ >  un classique...
      < b_b‎ >  tu as 2 version de jquery insérées dans tes pages
      < SoirBleu‎ >  ah ?
      < b_b‎ >  celle de spip
      < b_b‎ >  et la v2
      < b_b‎ >  donc ça clash
      < b_b‎ >  http://12watchmagazine.com/bootstrap/js/jquery.min.js
      < b_b‎ >  faut virer ça

    Répondre à ce message

  • 9
    jeromeD

    Bonjour,
    J’utilise ce plugin sur plusieurs sites sans soucis. Sur 2 d’entre eux, avec spip 3.0.19 et GIS 4.26.11, lorsque je déclare un nouveau point avec un logo (marqueur) et lorsque j’appelle dans ma page le [(#MODELEcarte_gis, zoom=13, height=422px, scale=oui)] alors je n’ai aucun marqueur sur la page publique...

    Cela ne me le faisait pas avant ?
    Est-ce que quelqu’un a déjà vu cela ?

    Merci d’avance
    Jérôme

    • Salut, comme dirait Edgard sur IRC :

      la boule de cristal est en panne : on va avoir besoin d’une url pour voir ton site et comprendre le problème

      Merci d’avance de nous aider à t’aider :)

    • jeromeD

      Bonjour et désolé, j’ai oublié de la mettre : http://mapelli.oak-webdesign.com/spip.php?rubrique7

      Merci d’avance

    • Tu as deux erreurs sur ta page, cela vient certainement de là :

      TypeError : jQuery(...).parents(...).formulaire_dyn_ajax is not a function
      http://mapelli.oak-webdesign.com/prive/javascript/ajaxCallback.js
      Line 939

      TypeError : jQuery.spip is undefined
      http://mapelli.oak-webdesign.com/prive/javascript/ajaxCallback.js
      Line 21

      Une fois celles-ci réglées, la carte fonctionnera certainement mieux :)

    • jeromeD

      b_b, merci pour ton analyse rapide...mais j’avoue ne pas comprendre ce type d’erreur surtout sur un fichier venant de SPIP lui-même...

      Si tu peux m’éclairer, je t’en remercie d’avance.

      Jérôme

    • jeromeD

      Bonjour b_b,

      J’ai essayé de fouiller mais sans succès.

      Sur un autre site, j’ai reproduit le même soucis alors que je n’ai pas l’erreur qui s’affiche : http://brasier.oak-webdesign.com/spip.php?page=contact.

      Le point et son marqueur apparaissent dans l’espace privé mais pas dans l’espace public.

      As-tu une idée autre que l’erreur

      Merci d’avance

    • Le problème n’est pas le même, à ce que je vois tu tentes d’afficher le point associé à l’auteur n°1 et il semble bien qu’il n’y en ait pas, cf le json qu’appelle ta carte :

      http://brasier.oak-webdesign.com/spip.php?page=gis_json&id_auteur=1&limit=500

    • jeromeD

      Alors là je ne comprends pas car j’appel dans mon squelette la carte GIS avec le code suivant :
      [(#MODELEcarte_gis, zoom=14, height=422px, scale=oui)] comme je l’ai déjà eu fait.
      Il ne me semble pas que mon code appel spécifiquement le point associé à l’auteur 1 ?

    • Ton squelette appelle la carte en utilisant la balise #MODELE depuis une boucle auteur, et comme cette balise récupère automatiquement certaines valeurs de l’environnement, il y a bien un id_auteur de passé au modèle.

      Appelle la carte avec un #INCLURE{fond=modeles/carte_gis..})] plutôt, ainsi l’environnement de ton modèle ne sera pas pollué par cet id_auteur inopportun.

    • jeromeD

      Merci b_b, je n’avais pas vu cette contrainte...le problème est résolu pour les deux sites. Dans l’autre nous étions dans une boucle rubrique....

      Donc sincèrement merci pour le temps passé à m’aider et aider les autres...

      Bien cordialement
      jérôme

    Répondre à ce message

  • 7

    Bonjour,

    Bravo pour ce plugin très pratique.
    Je l’ai mis en place sur ce lien.

    Je suis en train de chercher comment faire pour géolocaliser l’utilisateur puis, à partir de la boucle distance, indiquer les points situés dans son entourage.

    Pour la géolocalisation, il y a la fonction leaflet locate() qui est appelée par le plugin GIS lorsque le paramètre localiser_visiteur est positionné à True lors de l’appel du modèle. Dans le fichier javascript\leaflet.gis.js, on peut ajouter le traitement de l’évènement ’locationfound’, généré lors de l’exécution de la fonction locate(), pour récupérer la latitude et la longitude du point obtenues par géolocalisation côté navigateur.

    Mais est-il possible de créer un point à partir de la latitude et de la longitude ainsi obtenues pour une utilisation ultérieure, par exemple dans une boucle GIS utilisant le critère distance ?

    Merci,
    Bien cordialement,
    Bruno.

    • Salut, le problème est que la localisation de leaflet à lieu côté client alors que les boucles sont côté serveur... Pour faire ceci, le plus simple est que l’utilisateur ait un compte auteur avec un point attaché.

    • Bonjour,

      Je remonte ce fil pour présenter la solution que j’aie adoptée. Cette solution comprend deux parties :

      • La première parie est l’adaptation de GIS à l’affichage simultané d’un point isolé dont on indique à GIS les coordonnées, et d’une liste de points obtenus au moyen d’une boucle, qui sont dans son entourage. En gros, il s’agit de fusionner les comportements de GIS pour objets=point_libre et objets=gis, articles, etc.
      • La seconde partie consiste simplement à fournir les coordonnées du point isolé par une géolocalisation réalisée en Javascript.

      Un exemple de ce que je décris figure sur cette page.

      1. Adaptation de GIS.

      Dans config\mes_options.php, on ajoute le code suivant pour pouvoir passer les paramètres gLat et gLon à GIS :

      $GLOBALS['spip_pipeline']['gis_modele_parametres_autorises'] .= "|geolocalisation";
          function geolocalisation($flux) {
         $flux[] = 'glat';
         $flux[] = 'glon';
         return $flux;
         }

      Puis on créé un fichier squelettes\json\gis_articles_distance_from.html pour alimenter les cartes GIS avec le nouveau type d’objets articles_distance_from, qui permet d’afficher un point isolé ainsi que les points qui se trouvent à moins de 1000 kilomètres du point isolé.

      On utilise le critère distancefrom de GIS pour sélectionner les x points les plus proches, la valeur de x étant fixée par le paramètre limit. On utilise également le critère par distance pour afficher ces points par ordre croissant de distance par rapport au point isolé :

      	<BOUCLE_art(ARTICLES){gis}{par distance}{distancefrom #ARRAY{lat,#ENV{glat},lon,#ENV{glon}}, <=, 1000}{id_article ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{id_groupe ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}>
      	{"type": "Feature",
      	"geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
      	"id":"#ID_GIS",
      	"properties": {
      		"title":[(#TITRE_GIS*|sinon{#TITRE*}|extraire_multi|supprimer_numero|json_encode)],
      		"description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|json_encode)][
      		(#LOGO_GIS|gis_icon_properties)]
      	}
      	}</BOUCLE_art>
      	,{
      	"type": "Feature",
      	"geometry": {"type": "Point", "coordinates": [[(#ENV{glon})], [(#ENV{glat})]]},
      	"id":"1",
      	"properties": {
      		"title":[(#ENV{titre}|?{#ENV{titre},''}|json_encode)],
      		"description":[(#ENV{description}|?{#ENV{description}|wrap{<p>},''}|json_encode)][
      		(#CHEMIN_IMAGE{#ENV*{icone,0}}|sinon{#CHEMIN{#ENV*{icone,0}}}|gis_icon_properties)]
      		}
      	}

      On peut utiliser l’objet articles_distance_from de la manière suivante dans GIS :

      [(#INCLURE{fond=modeles/carte_gis, glat=#ENV{gLatitude}, glon=#ENV{gLongitude}, objets=articles_distance_from, limit=3, titre=Visiteur, description=Vous êtes ici, icone=marker-icon-red.png})]

      On réutilise les paramètres titre, decription et icone définis pour l’objet point_libre. Ici pour indiquer le visiteur par un marqueur rouge qui se détache des marqueurs bleus des points les plus proches.

      Pour être complet, voici la boucle SPIP qui intègre cette carte :

      	<B_articles>
      		<ul>
      		<BOUCLE_articles(ARTICLES){gis}{0,3}{par distance}{distancefrom #ARRAY{lat,#ENV{gLatitude},lon,#ENV{gLongitude}}, <=, 100}>
      			
      			<li><a href="#map1" onclick="javascript:gis_focus_marker(#ID_GIS,1);">#TITRE / Distance à vol d'oiseau : [(#DISTANCE|couper{6})] km</a></li>
      			
      		</BOUCLE_articles>
      		</ul>
      		<br/>
      		[(#INCLURE{fond=modeles/carte_gis, glat=#ENV{gLatitude}, glon=#ENV{gLongitude}, objets=articles_distance_from, limit=3, centrer_auto=oui, scale=oui, fullscreen=oui, titre=Visiteur, description=Vous êtes ici, icone=marker-icon-red.png,ajax})]		
      	</B_articles>
      		<h3 class="spip">Pas de site de la Petite Ceinture présent à moins de 1000 kilomètres de votre localisation</h3>
      	<//B_articles>

      On affiche au-dessus de la carte la liste des points les plus proches. En cliquant sur un élément de cette liste, on va sur le marqueur correspondant et on affiche une infobulle. Cette infobulle contient un lien cliquable vers l’article associé au point.

      On utilise les même critères de sélection et d’’affichage des points que pour l’affichage des données dans le squelete json que l’on utilise : les points situés à une certaine distance max et affichés par distance croissante.

      Pour l’instant, je n’utilise pas ajax. Si vous avez des idées de comment l’utiliser dans ce contexte, je suis intéressé.

      2. Génération des valeurs de gLat et gLon

      On veut géolocaliser l’internaute qui accède à la page depuis un terminal mobile. Pour ce faire, on va demander à l’utilisateur de cliquer sur un bouton « Rechercher ma position ». Le clique sur ce bouton, grâce à l’évènement onclick, va lancer une fonction en Javascript qui va calculer la position de l’utilisateur, puis appeler la page qui va afficher la carte GIS au moyen du squelette que nous venons de présenter.

      Pour ce faire, on a créé un modèle géolocalisation décrit dans le fichier squelettes\modeles\géolocalisation.html

      Ce modèle admet deux paramètres : <geolocalisation|gPage=geo_articles_proches|gIdentifiant=234>

      • gPage décrit le nom de la page appelable (article, rubrique, etc.),
      • gIdentifiant décrit l’identifiant d’un objet de SPIP.

      Le script Javascript va utiliser ces deux paramètres pour appeler la page cible par spip.php ?page=geo_articles_proches&gIdentifiant=234

      Dans le squelette désigné par gPage, il faut prévoir d’assigner la valeur de gIdentifiant au critère de boucle utilisé. Par exemple

      {id_article=#ENV{gIdentifiant}}

      , ou

      {id_rubrique=#ENV{gIdentifiant}}

      L’idée dans cette approche est de permettre d’appeler des pages qui gèrent différentes catégories d’objets SPIP.

      Voici le code complet du modèle géolocalisation.html :

      <script type="text/javascript">//<![CDATA[
      var url_dest="";
      var identifiant="";
      
      function post(path, params, method) {
          method = method || "post"; // Set method to post by default if not specified.
      
          // The rest of this code assumes you are not using a library.
          // It can be made less wordy if you use one.
          var form = document.createElement("form");
          form.setAttribute("method", method);
          form.setAttribute("action", path);
      
          for(var key in params) {
              if(params.hasOwnProperty(key)) {
                  var hiddenField = document.createElement("input");
                  hiddenField.setAttribute("type", "hidden");
                  hiddenField.setAttribute("name", key);
                  hiddenField.setAttribute("value", params[key]);
      
                  form.appendChild(hiddenField);
               }
          }
      
          document.body.appendChild(form);
          form.submit();
      }
      
      function maPosition(position) {
      	// Envoi de la latitude et de la longitude recuperees vers le serveur Web (on est dans le navigateur)
      	post('./?page='+url_dest+'&gIdentifiant='+identifiant+'&gLatitude=' + position.coords.latitude + '&gLongitude=' + position.coords.longitude);
      }
      
      // Fonction de callback en cas d'erreur
      function erreurPosition(error) {
          var info = "Erreur lors de la geolocalisation : ";
          switch(error.code) {
          case error.TIMEOUT:
          	info += "Timeout !";
          break;
          case error.PERMISSION_DENIED:
          info += "Vous n'avez pas donne la permission";
          break;
          case error.POSITION_UNAVAILABLE:
          	info += "La position n'a pu etre determinee";
          break;
          case error.UNKNOWN_ERROR:
          	info += "Erreur inconnue";
          break;
         }
         alert(info);
      }
      
      function geolocalisation(gPage, gIdentifiant){  url_dest=gPage;  identifiant=gIdentifiant;  
        if(navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(maPosition, erreurPosition,{maximumAge:600000});
        }
        else alert("La geolocalisation n'est pas supportee par votre navigateur. Verifier sa configuration");
        return true;
      }
      
      //]]>
      </script>
      
      
      <div id='infoposition'>
      <form name="formGeoCeinture">
      <input type='button' onclick='geolocalisation("#ENV{gPage}", "#ENV{gIdentifiant}")' value="Rechercher ma position">
      </form>
      </div>
    • Merci, c’est super sympa de ta part de partager avec les autres :)

      Tu pourrais même proposer ce contenu dans un article de la rubrique GIS comme quelqu’un l’avait déjà fait pour cet article : http://contrib.spip.net/Utilisation-avancee-de-GIS-4

      ++

    • Merci pour cette contribution.

      Petite adaptation possible : charger la liste des articles et la carte en ajax juste après la géolocalisation, en évitant un rechargement de page entière.

      En tout cas, merci !

      Julien

    • Bonjour,

      Je viens enfin de retrouver mes identifiants ;-)
      Pour le tutoriel, pas de problème. Je vais juste modifier le fichier JSON pour ne plus être tributaire du code de GIS, chose que j’ai omise de dire dans mon intervention sur cette page. En effet, les paramètres titre, description et icone que j’ai utilisé sont ceux de point_libre. Et pour pouvoir les utiliser, j’avais modifié le code de GIS. J’ai dorénavant supprimer cette contrainte en modifiant le fichier JSON.

      Merci pour l’information concernant l’usage d’AJAX ! Je vais l’intégrer pour l’ajouter au tutoriel.

      Bien cordialement,
      Bruno.

    • C’est encore en test, il n’y a qu’une seule asso sur la carte (proche de Paris), mais voici le principe en ajax :

      http://carceropolis.fr/-Autour-de-chez-moi-

      Julien

    • Bonjour,

      Le tutoriel que j’ai écrit vient d’être publié.

      Bien cordialement,
      Bruno.

    Répondre à ce message

  • 2

    Bonjour, j’ai remarqué une anomalie qui se produit depuis plusieurs versions antérieures de Gis (j’utilise la dernière version maintenant) : lorsque je fais un dump du site (spip 3.017) en spécifiant « toutes les tables », la table spip.gis est systématiquement omise, ce qui complique bigrement les opérations de restauration.

    Suis-je le seul qui constate cela ? Merci.

    Marc

    Répondre à ce message

  • 3

    Bonjour

    Pour un projet personnel (site collaboratif sur la Guadeloupe) j’ai découvert dans un des posts de ce forum le squelette Géodiversité qui correspond bien à ce que j’ai envie de faire et je voulais savoir s’il était possible de rajouter sur la carte (dans calques) des géolocalisations par mots clés pour pouvoir trier (ex : afficher que les randonnées, que les plages, etc...) ?
    Je cherche et fais des essais depuis 2jours mais je n’y arrive pas, merci.
    http://host-ai.info/~geodiv/spip.php?page=carte

    Répondre à ce message

  • 2

    Superposition de marqueurs

    Bonjour,

    Un grand merci pour ce plugin très utile.

    J’affiche une carte avec plusieurs marqueurs à partir d’un tableau d’id_article. Certains articles sont géolocalisés au même endroit (ou très proches). Seul un marqueur est alors visible (les autres sont cachés en-dessous).
    Mon infobulle contient le lien vers l’article géolocalisé.

    Je souhaiterai indiquer les liens de tous les articles géolocalisés à cet endroit dans l’infobulle d’un seul et même marqueur.

    Une idée ?

    Répondre à ce message

  • 1

    Bonjour,

    je suis en train d’essayer d’utiliser le critère gis distance avec un #ENV comme paramètre (qui renvoie un nombre de km qui est dans l’url) et cela ne fonctionne pas. C’est normal ? Je précise que dans mon squelettes l’affichage du #ENV renvoie bien le nb de kilomètres...

    <BOUCLE_gis(GIS){id_gis}
         <BOUCLE_distance(GIS){gis distance<=#ENV{km}}>
                        #TITRE - #DISTANCE
         </BOUCLE_distance>
    </BOUCLE_gis>

    si quelqu’un a une petit idée :)

    merci

    • Salut,

      finalement j’ai réussi en utilisant plutôt le critère distance from :

      <BOUCLE_distance(GIS){gis}{distancefrom #ID_GIS, <=, #ENV{km}}>
           #TITRE - #DISTANCE
      </BOUCLE_distance>

      Si quelqu’un à quand même 5 minutes pour expliquer pourquoi ça ne marchait pas avec le critère distance, je suis preneuse.

      merci encore pour ce plugin, le boulot que vous continuez à faire dessus et l’aide aux utilisateurs !

    Répondre à ce message

  • 1
    apicultural

    Bonjour,

    suite a la création d’une carte de la manière suivante :

    [(#MODELE{
    carte_gis, 
    zoom=11
    centrer_auto=oui,
    height=450px,
    zoom_molette=non,
    fullscreen=oui,
    scale=oui,
    overview=oui,
    cluster=oui,
    clusterMaxZoom=15,
    maxClusterRadius=40,
    clusterShowCoverageOnHover=oui,
    clusterSpiderfyOnMaxZoom=oui,
    centrer_fichier=non,
    kml=[(#LISTE{
    		[(#CHEMIN{kml/chimay.kml}|timestamp|url_absolue)],
    		[(#CHEMIN{kml/17.kml}|timestamp|url_absolue)],
    		[(#CHEMIN{kml/86.kml}|timestamp|url_absolue)],
    		[(#CHEMIN{kml/79.kml}|timestamp|url_absolue)]})],
    })]

    est il possible de tracer un cercle automatiquement autour d’un point référencé ; car je ne voie pas comment a part creer un kml pour chaque point

    merci pour votre aide

    • apicultural

      bon j’ai trouvé la fonction, il me semble

      for (int i = 0; i < 360; i += Precision)
        {
           PointCercle.Latitude = Center.Latitude + (Radius / latConv * Math.Cos(i * Math.PI / 180));
           PointCercle.Longitude = Center.Longitude + (Radius / lngConv * Math.Sin(i * Math.PI / 180));
           cShape.NewNode(NumNode);
           cShape.Position = PointCercle;
           NumNode++;
      }

      Center est l’objet Position contenant les coordonnées du centre.

      me demander si je pouvez pas lui passer un id objet

      bon je continu de chercher ....

    Répondre à ce message

  • 9

    Bonjour, j’ai plusieurs personnes géolocalisés au même endroit, malheureusement, sur ma carte ne s’affiche que le dernier qui a été indexé !!! Est-il possible d’afficher dans l’infobulle toutes les personnes se référant à ce point ???
    Merci de votre réponse...
    PS : spip 3.0.17 et GIS 4.26.4

    • Salut,

      Est-il possible d’afficher dans l’infobulle toutes les personnes se référant à ce point ???

      Oui c’est possible en bidouillant, je le fais dans le squelette geodiversite dont le code source est disponible par ici : https://github.com/geodiversite/geodiversite/

      Mais il y a plus simple, il suffit d’utiliser l’option clusterSpiderfyOnMaxZoom = oui dans ton modèle de carte ;)

    • J’avais déjà essayer « clusterSpiderfyOnMaxZoom = oui » mais ça ne marche pas !!!
      Je ne sais pas pourquoi !!!
      Je suis pas un expert en langage !!!
      Merci de ton aide !!!

    • Salut, si tu nous donnes l’adresse de la page qui expose le problème on pourra t’aider plus :)

    • http://unsater86.com/spip.php?rubrique6
      Si tu prends le point « LAFOY Catherine » à droite, il y a aussi son mari « LAFOY Dominique » qui est lié à la même adresse !!! Je voudrais que les deux s’affichent dans l’infobulle !!!
      Pour l’instant, je n’ai qu’un seul point qui s’affiche dans l’infobulle !!!
      Merci de ton aide...

    • Salut, ta carte ne semble pas utiliser l’option que je citais, il faut passer ces deux paramètres à ta carte : cluster=oui et clusterSpiderfyOnMaxZoom=oui

      Je voudrais que les deux s’affichent dans l’infobulle !!!

      Pas la peine de crier :p Comme je te le disais, ça n’est possible qu’en bidouillant, donc en collant les mains dans le code, alors que la solution que je te propose fonctionnera directement. À toi de choisir ;)

    • DUPUY Arnaud

      Oh Yeeeeeeeeeeeeeeeeeeeeeeeees, ça fonctionne !!!
      Merci de ta réponse...
      Maintenant, j’ai effectivement le nombre de personne dans un rayon qui s’affiche mais lorsqu’il y a plusieurs personnes, ça ne m’affiche pas les noms !
      Du coup, je vais être obligé (je suppose) de mettre les mains dans le code !
      Je vaux juste que tous les noms des personnes s’affichent dans l’infobulle !
      Peux tu m’aider pour modifier le code ?
      D’avance merci...

    • Re,

      Oh Yeeeeeeeeeeeeeeeeeeeeeeeees, ça fonctionne !!!

      Et voilà, que demander de plus ? :)

      Peux tu m’aider pour modifier le code ?

      Non désolé, à toi de fouiller dans le code geodiversité que je citais dans mon premier message...

    • PS : il manque encore une option à ta carte, j’insiste : clusterSpiderfyOnMaxZoom=oui est le truc que tu cherches, c’est la solution à ton problème.

    • DUPUY Arnaud

      Merci merci merci merci !!!!!!
      En fait j’avais mis « clusterSpiderfyOnMaxZoom = oui » en croyant que c’était ce que tu me disais !!!
      Au final, ça marche comme je voulais !!!
      Bonne continuation et merci pour ton travail qui facilite la vie des novices comme moi !!!
      @+

    Répondre à ce message

  • Clément

    Hello !
    J’ai un bug un peu bizarre sur GIS4 : les boutons de zoom apparaissent sur la carte, mais une fois qu’on a cliqué sur + ou - une seule fois, le zoom ne fonctionne plus. Plus possible de zoomer ou dézoomer du tout sur ce modèle qui permet d’afficher sur une petite carte le point géolocalisé lié à l’article. Par contre, en utilisant la molette de la souris le bug n’apparaît pas !

    Le zoom fonctionne parfaitement sur un autre modèle, sur le même site, modèle faisant apparaitre la carte en grand format avec tous les points géolocalisés.

    Si quelqu’un a une idée..

    Répondre à ce message

  • 1

    Bonjour,
    J’ai installé spip 3.0.17 et gis 4.26.1 et le gis ne s’affiche pas à la liste de la configuration, par contre au menu édition j’ai le lien point géolocalisé....Est ce que quelqu’un a deja rencontré ce problème et me dire ou je dois chercher ?? Merci de votre aide

    • Hop,

      gis ne s’affiche pas à la liste de la configuration

      Oui, c’est normal. La page de configuration du plugin est accessible uniquement depuis la page de gestion des plugins.

    Répondre à ce message

  • est-il possible de défiinir plusieurs kml sur un meme gis ?
    *si oui, je n’ai pas trouvé la syntax

    <gisXX|kml=34|kml=39|....>

    ne m’affiche que la 39...
    Même chose dans l’espace privé....

    <gisXX|kml=34,39|....>

    ne semble pas marcher non plus...
    Merci

    Répondre à ce message

  • 1

    Bonjour
    J’ai un problème apparent de compatibilité entre GIS4 et GISGEOMETRY.

    Quand les deux plugins sont activés, la modification d’un point ne marche que si le changement de coordonnées est fait par déplacement de l’indes.
    Les valeurs entrées au clavier ne semble pas prises en compte, celle du zoom non plus.
    Si je désactive GIS GEOMETRY, tous marche bien, mais je perds la possibilité de gérer les chemins et les poygones...

    Quelqu’un d’autre constate-t-il le meme problème ?
    Merci

    • Salut, oui je vois le bug, je regarde si c’est améliorable dès que possible.

      PS : tu aurais pu poster ta question sur le forum de GIS Geometries vu que ça concerne ce plugin.

    Répondre à ce message

  • 20

    Bonjour,
    Merci pour ce plugin que répond à (presque) tous mes besoins.
    Lors de l’affichage de fichiers kml issus de mon android, je me suis apperçu que (malheureusement) seuls les « points » étaient affichés mais que les traces (éléments

    Placemark/gx:Multitrak/gx:Track/gx:coord*

    du fichier KML ne provoquait pas l’affichage de la trace du parcours.
    Le fichier kml semble pourtant correct comme vous pourrez le constater sur l’exemple suivant.

    Une modification simple du plugin est-elle nécessaire ?

    • Salut, le script que GIS utilise pour les KMLs ne prend pas en charge toutes les balises disponibles. En effet, ce format a des spécifications « mouvantes », et très souvent seules les applications de google permettent de l’exploiter à fond.

      Ton application ne permet pas de générer un fichier au format GPX ? Si oui, essaye avec ça, cela fonctionnera bien mieux.

    • Je réponds ici pour revenir dans le fil initial.

      J’ai ouvert un ticket à ce sujet sur le dépôt du script qui gère les KMLs, cf :

      https://github.com/shramov/leaflet-plugins/issues/157

      J’ai déjà un code en local qui fonctionne, reste plus qu’à le tester, l’envoyer en ligne et rapatrier tout ça dans GIS ;)

    • Et hop, la version 4.26.3 devrait régler ton problème, cf :

      http://zone.spip.org/trac/spip-zone/changeset/88116

      J’ai testé avec ton KML et la trace s’affiche bien maintenant :)

    • Merci beaucoup pour le travail effectué.
      Malheureusement chez moi, cela ne semble pas marcher

      • mise à jour plugin
      • effacement /tmp/cache
      • effacement /local/cache

      Rien ne semble agir...

      Je vais probablement me tourner vers une solution moins « belle »:traduction off-line des KML vers gpx et imports des gpx dans GIS spip...
      Mais tu as raison sur un point, le format KML ne semble pas être très stable... La DTD utilisée change au cours du temps et de mes enregistrements dont certains ont plusieurs années...

    • Hop,

      Malheureusement chez moi, cela ne semble pas marcher

      Si si, ça fonctionne, j’ai passé pas loin d’une journée à implémenter la fonctionnalité, je ne l’aurai pas annoncé sans vérifier ;)

      Voici une page qui affiche ton KML sans problème :

      http://labo.eliaz.fr/article134.html

      ++

    • IL doit donc bien s’agir d’une mauvaise installation des navigateurs chez moi car sur mon ihabituel , je ne vois pas la trace... (Chromium/ubuntu)

      Mais sous Firefox, cela marche...(!!!!!)

      Je vais donc continuer mes explorations du côté du navigateur...
      Il semble quand même y avoir un petit problème : les points de départ et d’arrivée de la trace ne sont pas « exactement » au départ et à l’arrivée de la ballade. Mais c’est, pour moi, un détail... et c’est peut_être dû au contenu du fichier KM, auquel cas, on ne peut pas faire grand chose......

      En tout cas un grand un grand merci pour ce travail effectué... et le temps que tu y as passé....
      Rémi

    • IL doit donc bien s’agir d’une mauvaise installation des navigateurs chez moi car sur mon ihabituel , je ne vois pas la trace... (Chromium/ubuntu)

      Ok, je vois le bug, je m’en occupe asap, à suivre sur le ticket @github.

    • Et hop, la version 4.26.4 fixe le bug pour chromium et safari, cf :

      http://zone.spip.org/trac/spip-zone/changeset/88128

      ++

    • Bonjour,
      des test semblent montrer qu’une erreur d’arrondi a lieu dans la procédure
      parsePoint de KML.js
      entre le var ll = el[0].childNodes[0].nodeValue.split(','); et

      return new L.KMLMarker(new L.LatLng(ll[1], ll[0]), options);

      .
      Des décimales sont perdues, sans doute par une conversion de type intempestive du javascript (je ne connais pas bien ce langage... et ne sait donc comment corriger cela

      Si cela est confirmé, cela expliquerait le positionnement incorrect de points de départ et d’arrivée de mes traces...

      A++

    • Oups, Rémi, tu as tout faux.
      Il s’agit d’un décalage « constant » entre la position du marker et le point qu’il indique. Le . Peut être ce décalage est du à une « mauvaise » interpretation du tag « hotSpot » qui indique où placer exactement le marqueur...

      <Style id="start"><IconStyle>
      <scale>1.3</scale>
      <Icon><href>http://maps.google.com/mapfiles/kml/paddle/grn-circle.png</href></Icon>
      <hotSpot x="32" y="1" xunits="pixels" yunits="pixels"></hotSpot>
      </IconStyle></Style>

      (x=32 est la moitié de la largeur de l’image...)

      Mais peut-être mon KML est bizaroïde...

    • Salut, oui, il y a un bug dans le script KML.js, j’ai un correctif en cours de préparation pour la prise en charge de la balise hotSpot exprimée en pixels.

      ++

    • Quelle réactivité...
      Super...
      Mais

      OK sous firefox
      NOK sous chromium...

      Merci

    • De mon côté ça fonctionne, je viens de tester la page ou j’affiche ton KML avec Chromium 41.0.2272.76 sans aucun problème :

      http://labo.eliaz.fr/article134.html

      ++

    • Oui ...
      Excuse moi, j’avais oublié de vider mon cache de chromium...

      Bien humblement

    • \o/ it works

    • J’ai un problème avec les fichiers KMZ.
      Le pire, c’est que je croyais avoir testé cette fonctionnalité et l’avoir vu marcher il y a quelques jours...
      Sur un article, je charge un document (type KMZ)

      Je le référence dans le texte de l’article

      <carte_gis1|zoom=8|limit=100|scale=oui|kml=9>

      rien ne s’affiche

      J’extrait « à la mano » le kml qu’il contient
      Je le télécharge comme doc (type KML)
      je le référence dans l’article

      <carte_gis1|zoom=8|limit=100|scale=oui|kml=10>

      et cela marche... (ce qui semble montrer que le kml dans le kmz est correct...

      Une idée ? Ou je fais une fausse manip ?

    • Oui, c’est normal, les KMZ ne sont pas pris en charge par le script car ils impliquent un dézippage côté client qui est plutôt lourd à gérer.

    • Rémi Clavier

      Bonjour,
      Pour mes besoins propres, je travaille à l’heure actuelle sur un plugin permettant d’extraire les informations des fichiers KMZ issus du logiciel « mes parcours » sous android (j’ai pas loin de 500 fichiers à traiter, ce qui exclut un import manuel dans GIS).

      L’essenciel des fonctions est actuellement codé en utilisant les informations contenues dans les sources des plugins « GIS4 » et « ODT2SPIP ».

      Il me reste quelques soucis mais sur l’un d’entre eux, je seche...

      Les points géolocalisés issus des photos contenues dans le fichier KMZ sont biens créés, attachés à l’article mais la visualisation des points se centre sur un marqueur en plein atlantique (lon=lat=0 ?).
      Lorque je demande l’édition du point, la carte pointe bien sur les coordonnées du point (en Bretagne !), mais le marqueur est toujours en plein atlantique.
      Les valeurs stockées dans les tables spip_gis et spip_gis_lien sont correctes...
      Le code utilisé est le suivant

       foreach ( $photos as $photo){
      	 	$titre = $photo['namePhoto'];
      		$id_gis = gis_inserer();
      		$set = array(
      				 'lon' => $photo['lonPhoto'],
      				 'lat' => $photo['latPhoto'],
      				 'id_objet' => $id_article,
      				 'objet' => 'article',
      				 'titre' => $fichier_zip."-".$titre ,
      				 'zoom' => 6 ,
      				 'id_gis' => $id_gis ,
      				 );
      	$err=	 gis_modifier($id_gis, $set)	;
      
      			}

      y-t-il une aopération que j’aurais oubliée ?

      Merci de toute aide...

    • Semble résolu en désactivant le plugin GIS GEOMETRY

    Répondre à ce message

  • 6

    Bonjour,

    Très pratique ce plugin.

    J’utilise CIRV mais GIS s’affiche dans une fenêtre en bas de la rédaction d’un article, dans l’espace privé des Rédacteurs après l’avoir enregistré.

    Comment empêcher d’avoir cette fenêtre dans cet espace ? J’ai cherché mais je planche :(

    • Salut, d’après ce que j’en lis, CIRV surcharge les autorisations de SPIP pour permettre certaines choses aux rédacteurs. GIS de son côté, vérifie bien les autorisations, le bloc est affiché, mais si l’auteur n’a pas les droits de modifications de l’objet en cours d’affichage, les actions ne seront pas effectives.

      Peut-être faudrait-il améliorer cela en n’affichant pas du tout le bloc si l’auteur n’est pas autorisé à modifier l’objet en cours, à voir et discuter.

    • Merci de cette rapidité de début de réponse.

      Justement comment ne pas afficher ce bloc que l’auteur (Rédacteur) n’est pas autorisé à modifier ni à s’en servir ?

      Seuls les Administrateurs pourront se servir de GIS.

    • Tu peux le faire rapidement en personnalisant le squelette prive/contenu/gis_objet et en y ajoutant un test d’autorisation par exemple.

    • 1. [(#SET{titre, #VAL{gis:info_geolocalisation}|_T})]
      2. [(#BOITE_OUVRIR{#CHEMIN_IMAGE{gis-24.png}|balise_img{'',cadre-icone}|concat{#GET{titre}}, 'simple'})]
      3. <div id="editer_gis_[(#ENV{objet})]_[(#ENV{id_objet})]" class="ajax-action nom_action">
      4. 	[(#INCLURE{fond=prive/inclure/gis_objet_formulaires,env,ajax})]
      5. </div>
      6. #BOITE_FERMER

      J’ai bien trouvé ça mais c’est quoi le test d’autorisation ? Je ne suis pas très féru en la matière…

    • Un truc simple à base de balise autoriser, cf http://programmer.spip.net/La-balise-AUTORISER

      Ajouter le code suivant à la première ligne [(#AUTORISER{modifier,article,#ID_ARTICLE}) et celui-ci à la dernière ].

    • Yesss ! Ça marche :-)

      1. [(#SET{titre, #VAL{gis:info_geolocalisation}|_T})]
      2. [(#BOITE_OUVRIR{#CHEMIN_IMAGE{gis-24.png}|balise_img{'',cadre-icone}|concat{#GET{titre}}, 'simple'})]
      3. [(#AUTORISER{modifier,article,#ID_ARTICLE})
      4. <div id="editer_gis_[(#ENV{objet})]_[(#ENV{id_objet})]" class="ajax-action nom_action">
      5. 	[(#INCLURE{fond=prive/inclure/gis_objet_formulaires,env,ajax})]
      6. </div>
      7. #BOITE_FERMER
      8. ]

      Après l’avoir dupliqué, j’ai mis le fichier gis_objet.html dans squelettes/prive/contenu/…

      Seul, le Webmestre peut donc gérer GIS. Les Administrateurs ne peuvent pas ni les Rédacteurs.

      Merci de l’aide et bon week ;-)

    Répondre à ce message

  • 6
    rclsilver

    Bonjour,

    Nous utilisons GIS 4.22.2 avec SPIP 3.0.16.

    Nous possédons sur plusieurs pages des cartes possédant des points. Sur certaines d’entre elles, les cartes se figent lorsque l’on utilise les boutons zoom (+ et -) ou si on déplace la carte. Ce comportement semble aléatoire, et toutes les cartes sont affichées de la même façon.

    Quelqu’un aurait une idée de là où ça peut venir ?

    • Salut, tu peux commencer par tester avec la dernière version du plugin, 4.26.1 à ce jour, cf :

      http://plugins.spip.net/gis.html

      Si le bug persiste après la mise à jour, avoir vider le cache du site et de ton navigateur, fais moi signe par ici. Il se peut qu’on bug de la librairie Leaflet soit en cause, cf :

      https://github.com/Leaflet/Leaflet/issues/2021

      ++

    • Bonjour,

      même problème. (spip 3.0.17, gis 4.26.1)
      un clic sur bouton zoom => la carte se fige.
      par contre, si j’utilise la molette de la souris puis le bouton zoom => pas de problème.

      Crdl

    • Salut,

      comme d’habitude, il nous faudrait l’url de la page en question pour pouvoir t’aider plus :)

      Merci d’avance.

    • sur un site de test
      http://workspace.factor-media.fr/ecrire/?exec=auteur&id_auteur=2
      login / mdp : demo / workspace
      le btn de zoom ne fonctionne qu’une fois puis blocage.
      si on utilise la molette de la souris pour agrandir / reduire la carte puis on clic sur btn zoom => ça fonctionne.

    • Ok je vois le bug, merci pour le lien.

      Le problème doit venir du fait que ton site utilise les fonds de carte de google, cf ce ticket sur le repo du script qui gère les fonds en question :

      https://github.com/shramov/leaflet-plugins/issues/62

      Normalement le bug ne devrait pas être présent avec un autre fond de carte, tu peux le confirmer ?

    • effectivement, sous openstreetmap le bug n’existe pas.

    Répondre à ce message

  • 3

    Salut b_b :-)
    J’ai un problème avec google satelite
    SPIP 3.0.17 [21515]
    ou
    SPIP 3.1.0-alpha [21961]

    php 5.6.6
    installation en MySQL
    prefix des tables : spipdev5
    gis 4.26.7
    saisie 2.1.1

    Quand je vais dans : ecrire/ ?exec=configurer_gis
    La carte ne s’affiche pas systématiquement, souvent, j’ai simplement une image grise.
    Quand cela fonctionne, le zoom ne fonctionne pas correctement et je ne n’ai pas les nom de rue qui s’affiche dans la partie public. :-(

    • Salut Francky, quelle est l’url du site en question ?

    • Hello b_b :-)
      J’avais fait mes tests en local, donc je viens de te faire une installation toutes neuve rien que pour toi
      Là, c’est en SPIP 3.1.0-alpha [21963]
      http://www.lien-d-amis.net/spip3/spipdev32/spip.php?article1

      Mais c’est pareil en 3.0.17, tu veux que je te fasses une instal également pour voir ?

    • Je ferme car il ne s’agit pas d’un bug de gis, mais de la lib (Leaflet) , il faut attendre qu’une prochaine version soit dispo :-)
      En plus, les cartes google sont « le mal », donc, le mieux est quand même de prendre autre chose :p

    Répondre à ce message

  • 5

    NOAJAX !

    Sur un spip 3.0.17, GIS 4 tout neuf, quand je valide la configuration GIS, la pave est remplacé par un noajax.

    Idem pour l’onglet identité de spip...

    Je me doute que cela ne concerne pas directement GIS, mais comme GIS est impacté, peut-être quelqu’un aura une idée du comment du pourquoi...

    Merci de votre aide.

    Julien

    • Ci dessus : « la pave »

      il faut lire « Le pavé » pour le fieldset contenant le formulaire de configuration de GIS.

      Désolé de la faute de frappe...

    • J’ai la même erreur « noajax », avec un GIS4 fraichement installé et un SPIP 3.0.17 (delui du paquet Debian).

      J’ai essayé de désactiver tous les plugins, et réactiver uniquement GIS4 et Saisies, et l’erreur persiste.

    • J’ai « contourné » le problème en désactivant javascript dans le navigateur, pour effectuer la modification dont j’avais besoin, puis en le réactivant ensuite.

      Mais c’est pas très pratique...

    • Sujet déjà abordé dans ce forum, voir ma réponse précédente :

      http://contrib.spip.net/GIS-4?debut_comments-list=-1#forum476937

      NOAJAX !

      Pas la peine de crier :p

    • Merci pour cette réponse !

    Répondre à ce message

  • 1

    Hello,

    J’ai un site en SPIP3 avec GIS 4.26.2 - stable
    et mes points sont en double. Si je supprime un lien, il supprime les 2 occurrences.

    La table gis_liens indique 2 liens pour le même objet site/syndic :
    id_gis objet id_objet
    13 syndic 3
    13 site 3

    Une idée du pourquoi ?

    Merci
    dd

    • Salut, désolé mais je ne comprends pas le problème... Il nous faudrait plus d’infos sur le contexte.

      Je viens de tester l’ajout d’un point sur un site, et je n’ai pas de lien en double dans la table spip_gis_liens.

      As-tu testé sur un site « vierge » ? Ton bug vient peut-être d’un autre plugin ?

    Répondre à ce message

  • 6

    Bonjour,
    J’essaie d’afficher une carte des réponses à un formulaire conçu avec le plugin formidable.
    Pour l’instant, je ne parviens à afficher un point que pour une seule réponse avec ce code :

    [(#INCLURE{fond=modeles/carte_gis_objet, id_carte_gis=2, 
    objet=formulaires_reponse, id_objet=5})]

    Comment faire pour afficher les points de toutes les réponses à un formulaire donné ?

    • Bonjour,

      objet = il manque un s => objets déjà

    • Merci pour ta réponse Pierre,
      Mais je ne crois pas qu’il faille de « s » à objet pour le modèle carte_gis_objet, contrairement au modèle carte_gis.
      D’ailleurs j’obtiens bien le point attendu sur la carte.

      Rudu

    • Ah oui mais je n’utilise pas ce modele, le modele carte est plus simple je pense.

    • Ok, mais alors il doit me falloir écrire un fichier json/gis_reponses_formulaire.html de manière à pouvoir l’appeler via :

          [(#INCLURE{fond=modeles/carte_gis,
          objets=reponses_formulaire,
          id_formulaire=3})]

      Mais j’obtiens une carte vide.

      Mon fichier gis_reponses_formulaire ;html :

      <BOUCLE_rep(FORMULAIRES_REPONSES){gis}{branche ?}{id_formulaire ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}>
      	{"type": "Feature",
      	"geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
      	"id":"#ID_GIS",
      	"properties": {
      		"title":[(#TITRE_GIS*|sinon{#TITRE*}|extraire_multi|supprimer_numero|json_encode)],
      		"title":[(#GET{titre}|json_encode)],
      		"description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|json_encode)][
      		(#LOGO_GIS|gis_icon_properties)]
      }}</BOUCLE_rep>

      Merci,
      Rudu

    • Salut,

      Ok, mais alors il doit me falloir écrire un fichier json/gis_reponses_formulaire.html

      Il te faut ce fichier perso quel que soit le modèle utilisé puisque GIS ne fournit pas (pour l’instant ?) de fichier json pour afficher les réponses à un formulaire de Formidable, cf :

      http://zone.spip.org/trac/spip-zone/browser/_plugins_/gis/trunk/json

      Sinon, comme d’habitude, il nous faudrait l’url de la page en question pour pouvoir t’aider plus :)

    • Salut b_b ,
      Malheureusement, je bosse en local, donc pour un lien ... :-(

      Je vais essayer de générer un fichier json à partir de boucles sur FORMULAIRES_REPONSES en m’inspirant des autres fichiers, mais j’avance un peu à l’aveuglette.

      Merci pour ton retour en tout cas.
      Rudu

    Répondre à ce message

  • 2

    Problème sur documents géolocalisés

    Dans un json, je fais la boucle suivante pour positionner des documents sur une carte (les numéros de documents provenant d’un PS d’un article) :

    #SET{listedoc,#PS*|explode{','}}
    
    <BOUCLE_lesdoc(DOCUMENTS){gis}{id_document IN #GET{listedoc}}{0, #ENV{limit}}{","}>
    .... code GIS des json ....
    </BOUCLE_lesdoc>

    Cette boucle fonctionne bien sans le critère gis , mais ne sort rien avec le critère gis.
    Les documents en question ont bien un point lié, et sont en statut publié, lié à une rubrique, contenant une image.

    Voici les liens :
    json : http://www.gouttedor-et-vous.org/spip.php?page=gis_json&objets=memoire&limit=500&id_article=1301&var_mode=recalcul
    article (avec le PS contenant les numéro des doc : http://www.gouttedor-et-vous.org/Plongez-dans-le-passe-du-quartier?var_mode=calcul

    Et pour exemple qui marche un exemple avec un CHAPO contenant des n° d’article : http://www.gouttedor-et-vous.org/la-decouverte-des-arbres-de-la-Goutte-d-Or?var_mode=recalcul
    La boucle est dans ce cas
    <BOUCLE_lesart(ARTICLES){gis}{id_article IN #GET{listeart}}{0, #ENV{limit}}{","}>

    Une idée ? Est-ce que l’on peut indiquer à la boucle avec gis directement le numéro des doc ? Dans gis_document.html, je ne vois pas ce critère...

    • Pour le moment contourné le problème, avec trois boucles :
      -  récupération des n° de documents
      -  recherche dans spip_gis_liens des points liés à un doc
      -  recherche dans spip_gis des infos sur le point

      Plus lourd.... mais du coup les liens ci-dessus marche. Mais la question demeure !

    • Salut, ton squelette json semble assez « complexe », du coup pas facile de voir ce qui pourrait y clocher :

      http://www.gouttedor-et-vous.org/squelettes/json/gis_memoire.html

      Je te conseille de créer un squelette de debug dans lequel tu isoleras uniquement la boucle qui pose problème afin de la décortiquer. Ensuite, poste nous le résultat de la requête SQL que tu pourras trouver à l’aide de var_mode=debug.

    Répondre à ce message

  • 2

    Bonjour,

    Est-il possible de coupler GIS avec le plugin Coordonnées ?

    c’est à dire, depuis l’adresse renseignée dans le plugin coordoonnées, afficher la carte.

    Merci

    Répondre à ce message

  • 1

    Bonjour,
    J’ai constaté que
    lorsque l’on remplace

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

    par :

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

    pour afficher les liens dans les bulles
    les marqueurs ne s’affichent plus
    quand on activer la compression du HTML dans les fonctions avancées de SPIP.

    Qui aurait une solution ?
    D’avance merci.

    • Oui, désactiver la compression HTML de SPIP :)

      Le sujet a déjà été abordé dans ce forum...

    Répondre à ce message

  • 1

    Hello,

    Pour permettre aux rédacteurs d’utiliser plusieurs kml uploadés dans la médiathèque sur une seule carte en utilisant l’écriture |kml=123,124,355 j’ai recopié modeles/carte_gis.html dans squelettes/modeles/ma_carte_gis.html et modifié les lignes kml : et gpx : dans le js (ligne 140 environ) :

    kml: [(#ENV{kml}|?{[(#ENV{kml}|explode{','}|gis_kml_to_urls|json_encode)],false})],
    gpx: [(#ENV{gpx}|?{[(#ENV{gpx}|explode{','}|gis_kml_to_urls|json_encode)],false})],

    Mes 2 sous.

    • Yo Suske, ça serait pas mal d’intégrer cette modif au plugin, tu ne penses pas ?

      Tu n’as pas eu d’effet de bord depuis que tu l’as intégré ?

    Répondre à ce message

  • 3

    Bonjour,

    J’aimerai savoir comme faire pour rajouter un élément (lien web) dans le formulaire édition.
    J’ai trouvé le fichier a modifier ( plugins/auto/gis/v4.26.1/formulaires/editer_gis.html ) mais je ne sais pas quoi faire...

    Merci pour votre aide

    Amicalement

    JP

    • Avec ce code, il me récupère l’url de la basse donnée (j’ai créé la colonne et remplie avec phpmyadmin).
      Les modifications ne sont pas validés

      [(#SAISIE{input,adresse_web,
      label=URL,
      obligatoire=non})]
    • J’ai installé Champs Extras 3 et ca marche !

    • Parfait, c’est exactement ce que j’allais te recommander de faire :p

    Répondre à ce message

  • 1

    Bonjour,

    est-il possible d’utiliser le geocoder de Google plutôt que celui de Mapquestapi (parce qu’il est vraiment pas terrible) ?

    Cordialement,
    Max

    • Salut,

      À ce jour non, car le contrat d’utilisation du geocoder de google impose que les données qu’il fournit doivent être utilisé au sein d’une application qui utilise l’API de google maps (alors que GIS permet justement de ne pas utiliser l’API de google maps).

      Une solution serait de modifier GIS pour qu’il utilise le geocoder de google uniquement si le fond de carte par défaut est celui de google. Mais cela permettrait toujours d’utiliser les données du geocoder avec un autre fond de carte par la suite.

      De ce côté, le geocoder de Mapquest qui utilise les données libre d’OSM est bien moins contraignant.

      ++

    Répondre à ce message

  • 1

    Bonjour, une question pour savoir si il est normal que les appel au JS situé dans /lib ne sont pas compressé avec les autres JS ?

    J’ai un site utilisant GIS et un fond google ; et je me retrouve avec 5 appel en plus du JS compressé.

    http://maps.google.com/maps/api/js?sensor=false&language=fr
    http://maps.gstatic.com/…s-api-v3/api/js/19/4/intl/fr_ALL/main.js
    http://www.monsite.com/lib/mxn-gis-2.2.2/mxn.js?(googlev3)
    http://www.monsite.com/lib/mxn-gis-2.2.2/mxn.core.js
    http://www.monsite.com/lib/mxn-gis-2.2.2/mxn.googlev3.core.js

    Est ce normal ?
    Est ce que si je fait appel à un autre fond de carte, j’aurai moins d’appel ?

    Dans l’absolu ce n’est pas dramatique, mais cela retarde quand même un peu le chargement de mes pages, alors que je n’utilise le plugin que sur 1 ou 2 pages d’un site qui en fait plusieurs centaine.

    • Salut, tu sembles utiliser la version 3 du plugin, ta question avait plus sa place dans le forum associé à cette version : http://contrib.spip.net/GIS-2-GIS-3#forum

      Est ce normal ?

      Oui c’est normal que ces scripts ne soient pas compressés avec les autres.

      Est ce que si je fait appel à un autre fond de carte, j’aurai moins d’appel ?

      Oui, les deux premiers appels de ta liste sont associés à l’API de google.

      Dans l’absolu ce n’est pas dramatique, mais cela retarde quand même un peu le chargement de mes pages, alors que je n’utilise le plugin que sur 1 ou 2 pages d’un site qui en fait plusieurs centaine.

      Si tu es sous SPIP 3, je te conseille grandement de basculer vers la version 4 de GIS qui améliore tout cela.

    Répondre à ce message

  • 6

    Bonjour,
    J’ai une carte qui affiche les articles d’une rubrique sans problème, mais j’aimerai afficher sur la même carte les articles qui proviennent d’une autre base de données. Voici l’affichage de ma carte

    [(#INCLURE{fond=modeles/carte_gis,
                objets=articles,
                 height = 600px,
                autocenterandzoom = oui,
                zoom_molette=non,
                fullscreen = oui,
                cluster=oui,
                controle_type=oui,
                clusterStyles=
                [(#ARRAY{url,#CHEMIN_IMAGE{bg_cluster.png},height,40,width,40,opt_textColor,#B9121B})],
                })]

    Pour les articles de la seconde base de données j’ai pensé récupéré l’id des articles et les mettre dans un tableau, ensuite les mettre sur la carte. Je peux créer une nouvelle variable dans mes_options.php

    Est ce possible ?? je me dis si on récupére tous les id alors on doit pouvoir les afficher sur la carte sans pour autan écrasé les articles qui s’y affiche déja ??? Merci de votre aide

    • Il serait certainement plus simple de déclarer cette autre base depuis l’espace privé et de te créer un squelette json perso qui boucle sur cette base.

    • Merci pour la réponse, mais j’ai encore besoin de votre aide
      1/ j’ai effectivement déclarer l’autre base de donnée depuis l’espace privé
      Mon problème il y’avait déja une carte qui existait avec des points gis et que je souhaite gardé, alors ma question est la suivante est ce possible sur la même carte d’ajouter d’autres points qui proviennent de la seconde base de donnéé ??? si oui comment ? qu’entendez vous par squelettes json perso ?
      Encore une fois je vous remercie pour votre aide

    • Salut,

      qu’entendez vous par squelettes json perso

      Regarde du côté de cet article de documentation : http://contrib.spip.net/Gis-4-Surcharger-les-infobulles

      Sinon, cherche dans ce forum, j’y ai souvent abordé le sujet.

    • Bonjour b_b,
      Tout d’abord je vous souhaite une excellente année 2015 et à tous les spipeurs...
      J’ai crée une squelettes jason perso mais j’ai toujours pas mon markeur sur la carte
      1/ j’ai créer un fichier jason_test dans mon squelettes dans lequel il ya un fichier gis_articles avec la boucle article
      <BOUCLE_art(spip_test:articles){gis}{id_article ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{id_auteur ?}{recherche ?}{0, #ENV{limit,500}}{","}>
      spip_test = nom de la seconde base.
      2/ l’affichage de ma carte n’a pas changé c’ets toujours :

      [(#INCLURE{fond=modeles/carte_gis,
                  objets=articles,
                    height = 600px,
                  autocenterandzoom = oui,
                  zoom_molette=non,
                  fullscreen = oui,
                  cluster=oui,
                  controle_type=oui,
                  clusterStyles=
                  [(#ARRAY{url,#CHEMIN_IMAGE{bg_cluster.png},height,40,width,40,opt_textColor,#B9121B})],
                  })]

      Est ce que j’ai loupé quelques choses ? le nom du dossier jason perso est il important ou on peut l’appelé comme on le souhaite ??? Merci de votre aide

    • Help please !

    • le nom du dossier jason perso est il important ou on peut l’appelé comme on le souhaite ???

      Oui, il faut placer ton fichier gis_articles.html dans l’arbo de dossiers suivante : squelettes/json/

    Répondre à ce message

  • Bonjour,

    Actuellement j’utilise des « champs extra » pour entrer manuellement la latitude et la longitude de mes magasins. Seulement aujourd’hui j’aimerais automatiser tout ça, que les coordonnées ce fasse automatiquement d’après le contenu de l’adresse lors de la création de l’article. Ce plugin me semble tout indiqué mais est ce quelqu’un a déjà été confronter a faire quelque chose de ce style ?

    Merci.

    Répondre à ce message

  • 4

    Bonjour,

    Est-il possible de géolocaliser sur une même carte les articles de deux rubriques différentes ?

    Qelque chose comme

    [(#INCLURE{fond=modeles/carte_gis,
    	id_carte_gis=_carte,
    	objets="articles_branche",
    	id_rubrique=#ARRAY{5,6},
    	zoom=1,
    	height=300px}
    )]

    Ou de mettre tout ces articles dans un tableau avec #SET et #GET

    #SET{mes_articles,#ARRAY{1,2,3,4}}
    [(#INCLURE{fond=modeles/carte_gis,
    	id_carte_gis=_scarte,
    	objets="articles",
    	id_article=#GET{mes_articles},
    	zoom=1,
    	height=300px}
    )]
    • Je me réponds moi même, ça peut servir à d’autres

      C’est possible mais il ne faut pas donner un tableau SPIP en argument. Il faut donner une liste d’i de la forme « id1, id2, id3, ... »

      Ça a marché en faisant comme ça :

      [(#INCLURE{fond=modeles/carte_gis,
      	id_carte_gis=_sejours_etrangers_2,
      	objets="articles_branche",
              id_rubrique="5, 6",
      	zoom=1,
      	height=300px}
      )]
    • Ben en fait non ça ne marche pas du coup si quelqu’un a une solution je suis preneur j’aurais vraiment besoin d’une solution.

    • OK cette fois ça semble marcher, s’il y en a dans le même cas je veux bien des retours.

      Il faut utiliser #LISTE plutôt que #ARRAY et remplir son tableau dynamiquement avec |array_merge plutôt que |push

      #SET{liste,#LISTE{}}
      <BOUCLE_test(ARTICLES) {id_secteur IN 1, 9}>
        #SET{liste,#GET{liste}|array_merge{#LISTE{#ID_ARTICLE}}}
      </BOUCLE_test>
      
      [(#INCLURE{fond=modeles/carte_gis,
        id_carte_gis=_test,
        objets="articles",
        id_article=#GET{liste},
        autocenterandzoom=oui,
        height=300px}
      )]
    • Hum... mais pourquoi ?

      J’ai pu le faire avec #ARRAY, pourquoi utiliser #LISTE de préférence ?
      D’autant qu’utiliser array_merge plutôt que push échappe à toute logique du coup...

      Une explication technique serait la bienvenue :-)

    Répondre à ce message

  • 1

    Bonsoir à tous,

    Complètement néophyte en la matière (la dernière fois que j’ai utilisé SPIP était en 2005...), j’essaie d’afficher une carte sur ma page sommaire, reprenant tous les points des articles ayant un localisation, quelque soit la rubrique. Version installées : SPIP 3.0.17, GIS 4.26.1

    J’ai beau lire la doc, parcourir les échanges, il n’y a aucune carte qui s’affiche entre le titre et le premier paragraphe de la page (http://www.1914-18.guide/). Bref, je sèche et je sens bien que je m’y prends comme un manche !

    Donc, comment arriver à afficher une carte dans la page sommaire, reprenant les points de tous les articles ?

    Merci d’avance !

    • Réponse à moi-même : #INSERT_HEAD doit être présent dans la page (cf contribution de 2013 du forum !)

      Voilà, voilà...

    Répondre à ce message

  • 1

    OUVRIR DIRECTEMENT UNE LIGHTBOX

    Je souhaite qu’un click sur un marqueur ouvre directement une lightbox. (pour le moment je passe par l’infobulle où le titre est un lien ouvrant la lightbox).

    Possible de le faire simplement en modifant le json ?

    Ou bien la fonction setGeoJsonFeaturePopup ? Mais je ne vois pas l’appel de l’event click...

    Merci !

    Répondre à ce message

  • 5

    Hello !

    J’aimerais utiliser GIS pour afficher une carte un peu spéciale..
    J’utilise le plugin Mes Favoris afin que les visiteurs puissent sélectionner et mettre de côté une liste d’articles, j’ai une page qui fait la récapitulation de cette liste (qui est en fait une boucle ARTICLES), et j’aimerais avoir une carte qui affiche en dessous les points de tous ces articles là.
    Est-ce possible ?

    • Salut, oui c’est possible. Voilà le plan :

      1. copier le squelette json/gis_articles dans squelettes/json/gis_articles_favoris.html
      2. ajouter le critère qui permet de filtrer les articles en fonction des favoris sur la boucle articles du squelette
      3. spécifier à ta carte d’utiliser ce squelette avec le paramètre objets=articles_favoris

      Et hop :)

    • Hello !! Je viens de tester avec du retard !
      J’ai bien copié le squelette, j’arrive à afficher la carte sur la page qui affiche les favoris mis de côté par le visiteur, par contre je bute sur le critère qui va me permettre d’afficher les points sur la carte.
      Que faut-il mettre en critère ? A l’heure actuelle ma boucle : <BOUCLE_art(ARTICLES){gis}{id_article ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{id_groupe ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}>

      Et faut-il inclure l’appel à la carte dans une boucle ?

      D’ailleurs je me suis planté dans mon premier message, ma boucle est une boucle FAVORIS et pas ARTICLES :
      qui liste les articles mis de côté par le visiteur.

      Merci d’avance !!

    • Ma boucle dans gis_articles_favoris :

      <BOUCLE_art(ARTICLES){gis}{id_article ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}
      {id_groupe ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}>

      Ma boucle qui liste les articles en favoris :

      <BOUCLE_2(FAVORIS){categorie ?}{id_auteur ?}{id_article ?}{id_rubrique ?}>
    • Hello !

      Je sêche complètement sur ce problème, j’arrive parfaitement à avoir la liste des articles mis en favoris par le visiteur mais pas la carto qui va avec.. Si jamais quelqu’un a déjà résolu ce problème je suis preneur !!

    • Merci à b_b pour son aide sur IRC..
      La solution : ajouter simplement le critère mesfavoris dans la boucle ARTICLES du squelette d’appel GIS..

    Répondre à ce message

  • 3

    Bonjour,

    J’ai un souci dont je ne comprends pas l’origine.. Le popup ne s’affiche pas quand on clique sur un point.

    J’ai des formulaires formidable, qui utilisent la saisie « carte » de GIS et qui sont liés à un « marker_icon » selon la technique indiquée dans la page d’astuces GIS.

    J’ai créé un modèle pour la visualisation des résultats, qui s’inspire bien sur de json/gis.html :

    <BOUCLE_reponses(FORMULAIRES_REPONSES){id_formulaire=#ID_FORMULAIRE}{gis}{","}>
    	<BOUCLE_liens(formulaires_liens){id_formulaire=#ID_FORMULAIRE}>#SET{url, /spip.php?page=#OBJET&id_#OBJET=#ID_OBJET}</BOUCLE_liens>
    	<BOUCLE_gis(GIS){id_formulaires_reponse=#ID_FORMULAIRES_REPONSE}{0, #ENV{limit}}{","}>
    		{"type": "Feature",
    		"geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
    		"id":"#ID_GIS",
    		"properties": {
    [(#SET{titre,<a href="[(#GET{url})]">#TITRE*</a>})]"title":[(#GET{titre}|json_encode)],
    			"description":[(#DESCRIPTIF|json_encode)]<B_logomot><BOUCLE_logomot(MOTS){id_gis=#ID_GIS}{type=marker_icon}>[(#LOGO_MOT_NORMAL|gis_icon_properties)]</BOUCLE_logomot></B_logomot>[(#LOGO_GIS|gis_icon_properties)]<//B_logomot>
    		}}</BOUCLE_gis>
    </BOUCLE_reponses>

    Tout ca fonctionne très bien, la carte s’affiche avec cet appel :

    [(#INCLURE{fond=modeles/carte_gis,id_map=map_results,objets=reponses_formulaire,id_formulaire=#ENV{id}})]

    Mais.. Quand je clique sur l’icone du point, aucun popup ne s’affiche, aucune erreur JS dans la console.. rien..

    J’ai comparé longuement les sorties de json/gis.html et de mon code

    mon script génère ce JSON :

    		{"type": "Feature",
    		"geometry": {"type": "Point", "coordinates": [6.4290103, 45.165058]},
    		"id":"37",
    		"properties": {
    "title":"<a href=\"\/spip.php?page=article&id_article=1307\">Point li\u00e9 \u00e0 r\u00e9ponse de formulaire<\/a>",
    			"description":"",
    "icon": "http:\/\/***********.fr\/IMG\/moton34.png?1412787520",
    "icon_size": [34,51],
    "icon_anchor": [17,51],
    "popup_anchor": [1,-42.5]
    		}},

    Celui qui fonctionne génère celui ci :

    		{"type": "Feature",
    		"geometry": {"type": "Point", "coordinates": [2.6658508, 48.5382918]},
    		"id":"22",
    		"properties": {
    "title":"<a href=\"-SAMU-77-.html\">SAMU 77<\/a>",
    			"description":"",
    "icon": "http:\/\/*********.fr\/local\/cache-gd2\/a926e5b2d3a4f05ecf2232dd1d6e78ab.png",
    "icon_size": [32,32],
    "icon_anchor": [16,32],
    "popup_anchor": [1,-26.666666666667]
    		}},

    Pourquoi le popup avec le titre et le lien ne s’affichent pas ? La je suis un peu perdu !

    • Hop,

      La je suis un peu perdu !

      Moi aussi je suis perdu quand on ne me donne pas de lien vers la page où l’on peut observer le problème :)

    • Le souci c’est que le site n’est pas encore en ligne et accessible uniquement avec login / password. Je vais voir si je peux te donner des codes d’accès au site, mais je te les enverrais par ton formulaire de contact plutôt.

      Merci de ton aide en tout cas, j’avoue que c’est pas simple à expliquer ni à comprendre.

    • Passe en discuter sur IRC si tu veux : http://www.spip.net/irc

    Répondre à ce message

  • 1

    Bonjour,
    Petit problème pour afficher des cartes et je ne trouve pas la solution dans la doc.
    Jusque là j’affichais les cartes avec le modèle

    [(#REM) Cartographie]
    <BOUCLE_cartes(GIS){id_article}{0,1}>
       [(#INCLURE{fond=modeles/carte_gis, autocenterandzoom=oui, id_article})]
    </BOUCLE_cartes>

    dans le squelette de l’article.
    Je souhaite utiliser dorénavant

    <carte_gis1|zoom=8|limit=100|scale=oui>

    avec les bons paramètres naturellement.
    Mon problème : je ne sais pas créer un id pour chaque carte (chaque carte affiche un certains nombre de points localisés et du coup j’affiche TOUS les points au lieu de ceux que j’ai choisi d(’afficher pour l’article.
    Un exemple : http://fonds-saintyves.fr/Paroisses-Saint-Yves-hors-de

    Merci d’avance (c’est sans doute tout bête mais... :-/ )

    Répondre à ce message

  • 2

    Bonjour,

    J’aimerais avoir plus d’infos sur le champ « geo » dans la DB.
    J’avais fait l’installation du plugin il y a quelques temps, le champ « geo » était un champ de type geometry. Suite à une mise à jour, le plugin ne fonctionnait plus, je l’ai desinstallé et reinstallé, il a recrée la table mais avec un champ « geo » de type text...

    J’ai ré-importé les anciens points en SQL, donc le champ « geo » est rempli mais de caracteres bizarres.. genre « Ͼ-ƨ-@D-(bOH@ »

    Maintenant quand j’insère de nouveaux points géolocalisés, ils ne renseignent plus le champ « geo », apparemment ? Ou j’ai un bug quelque part ? les autres champs, lat, lon, etc sont bien renseignés, mais geo reste vide.

    Ca semble provoquer un petit bug d’ailleurs au niveau des pages de modification du point. Quand je vais sur la page « gis_tous » en mode carte, les points sont bien placés. Par contre quand je vais dans la page «  ?exec=gis&id_gis=34 », la carte ne s’affiche pas correctement.. Par contre sur la page suivante, « gis_edit », le point apparait correctement..

    J’ai du mal a comprendre quel peut etre le souci.. ?

    • Salut, ce champ est ajouté par le plugin GIS Geometries, tu peux donc le supprimer si tu n’utilises plus ce plugin.

    • Merci ! je comprends mieux !

    Répondre à ce message

  • 2

    Bonjour,

    Petite remarque :
    J’ai ajouté un « logo du point » à un point (parmi 10 autres) qui s’affiche parfaitement quand je passe le paramètre objets=articles à mon #MODELE{}, mais si j’utilise objets=articles_branche, mon logo personnalisé ne s’affiche pas :-(

    Pas de logo personnalisé :

    [(#MODELE{carte_gis,objets=articles_branche,id_rubrique=4, zoom=8, limit=100, scale=oui})]

    Le logo personnalisé s’affiche :

    [(#MODELE{carte_gis,objets=articles,id_rubrique=4, zoom=8, limit=100, scale=oui})]

    françois

    SPIP 3.0.17 + GIS 4.26.0 + Z-Core 2.4.3

    • Salut, as-tu vidé le cache pour voir ? Quelles est l’adresse de la page en question ?

    • ... en fait tout fonctionne : en créant mon propre modèle basé sur le tuto « Surcharger les infobulles », je n’ai pas repris le code complet qui justement permet de gérer les personnalisations et en particulier :

      [(#LOGO_GIS|gis_icon_properties)]

      Désolé pour le bruit b_b

    Répondre à ce message

  • 17

    Bonjour,

    Visiblement, depuis quelques jours, la fonction rechercher de gis ne fonctionne plus. Avez-vous du retour par rapport à cela ?

    Merci à vous.

    • Visiblement c’est la fonction geocoder qui devient obsolète ?

    • Visiblement ça marche chez moi ^^

      Au hasard (car on manque un peu d’infos) as-tu bien activé le htaccess de SPIP ? Il est nécessaire au fonctionnement du geocoder.

    • Bonjour, merci de retour. Oui le htaccess est ok, mais quand je rempli le champ « rechercher » et ue je valide, rien ne se passe. Et même problème sur un autre site depuis 1 semaine.

    • Je remplis, je fais rechercher .... rien, que dalle, ça ne cherche pas ...

    • Il faut que tu vérifies que la page ne contient pas une erreur javascript, cela doit probablement venir de là (genre un autre script qui génère l’erreur et qui du coup bloque le geocoder).

    • C’est dans l’administration et je n’ai pas ajouté, supprimé ou modifié de plugin. Bizarre

    • Re, désolé mais sans plus d’info je ne peux pas t’en dire plus. Juste pour le fun, j’ai un peu l’impression d’être dans cette situation :p

      quand je dois faire du SAD avec une personne qui ne donne pas assez d’info

      http://ljdchost.com/6jThV3F.gif

    • Bon, ça refonctionne, je crois que j’avais un doublon de dossier gis.
      Merci de ton aide l’ami :-)

    • J’ai le même problème sur un seul site : pas de recherche par adresse (dans l’admin de spip, en désactivant tous les plugins, pas de doublons de gis, SPIP 3.0.17, GIS 4.25.0).

      Pas d’erreur sur la console, rien ne bouge...

      Que faut-il dans le htaccess, c’est peut être ça... ? Sinon un problème serveur (mais c’est du mutu OVH) ?

      Sinon le site est ici : http://www.gouttedor-et-vous.org/ (pour l’admin je veux bien donner un accès mais pas sur le forum !!).

      Merci de votre aide,

      Julien

    • Bonjour,

      J’ai également un problème sur un site SPIP 3.0.17 [21515] et GIS 4.25.0 SVN [85793]
      (je n’ai pas Fulltext) :

      Dans l’admin le clic sur "recherche’ sous la carte ne donne rien.
      Lorsque je pointe un point sur la carte et enregistre j’obtiens :

      Error 503 Service Unavailable Service Unavailable Varnish cache server

      Et je vois que dans la liste des points il a été créé un point « sans titre » avec pour identifiant 0.

      dd

    • Bonsoir,

      Quelqu’un aurait-il une idée de ce qu’il se passe ? La création d’un point retourne une erreur « échec » (par contre la recherche d’un point refonctionne).

      Je sèche complètement. La problème se pose uniquement pour ce site, en local et en distant.
      J’ai désactivé tous les plugins excepté GIS et saisies.

      Dans spip.log :

      Nov 12 19:41:22 127.0.0.1 (pid 11650) :Pub:ERREUR: Erreur mysql 1062
      Nov 12 19:41:22 127.0.0.1 (pid 11650) :Pub:ERREUR: Duplicate entry '0' for key 'PRIMARY' - INSERT INTO spip_jobs (fonction,descriptif,args,md5args,inclure,priorite,date,status) VALUES ('queue_watch','Tâche CRON queue_watch (toutes les 86400 s)','a:1:{i:0;i:1415817682;}','dd372e1508b9a46f4995c','genie/',0,'2014-11-13 19:41:22',1)
      Nov 12 19:42:36 127.0.0.1 (pid 11289) :Pri:ERREUR: Erreur mysql 1062
      Nov 12 19:42:36 127.0.0.1 (pid 11289) :Pri:ERREUR: Duplicate entry '0' for key 'PRIMARY' - INSERT INTO spip_gis () VALUES ()

      Dans mysql.log :

      Nov 12 19:41:22 127.0.0.1 (pid 11650) :Pub:ERREUR: Duplicate entry '0' for key 'PRIMARY' - INSERT INTO spip_jobs (fonction,descriptif,args,md5args,inclure,priorite,date,status) VALUES ('queue_watch','Tâche CRON queue_watch (toutes les 86400 s)','a:1:{i:0;i:1415817682;}','dd372e152b9a46f4995c','genie/',0,'2014-11-13 19:41:22',1)
      Nov 12 19:42:36 127.0.0.1 (pid 11289) :Pri:ERREUR: Duplicate entry '0' for key 'PRIMARY' - INSERT INTO spip_gis () VALUES ()

      Et la liste des travaux réduite à :

      Liste des travaux
      1 travail en attente
      Prochain travail dans 0 s
          il y a 2 secondes
          Tâche CRON queue_watch (toutes les 86400 s) | queue_watch(1415773860)

      Toute aide est la bienvenue !

      merci
      dd

    • Ta base semble contenir des objets avec un id=0, as-tu essayé de passer la page de maintenance de la base de données de SPIP ?

      Sinon, si le site est en dev et que tu n’as pas de données à perdre, tu peux tenter une désinstallation/resintallation de GIS. Attention cela supprimera les points existants.

      ++

    • Hello b_b,.
      Oui à chaque fois que je veux crée un point cela m’ajoute un point « sans titre » avec un ID 0 que je suis oblige de supprimer à la main dans la base.

      Et pareil pour la table spip_jobs : il crée un enregistrement 0
      malgré mes tentatives de réparation via / ?exec=base_repair

      J’ai des données à perdre...

      dd

    • Je suis complètement bloquée.

      Impossible de créer de nouveaux points (la modification d’un point existant est possible).

      j’ai réinstallé le site propre en local sans plugin sauf GIS et saisies, après avoir supprimé les tables spip_gis et spip_gis_liens puis en ré-installant GIS : nada,

      j’ai pris une version antérieure GIS 4.22.5 : pareil j’ai toujours « echec » à la création d’un point.

      D’autres part, et je ne sais pas s’il y a un lien, mais l’export via / ?exec=sauvegarder&status=status_dump_0_1 ignore les tables spip_gis et spip_gis_liens (mais ça c’est pas nouveau)

      merci
      dd

    • Hop,

      D’autres part, et je ne sais pas s’il y a un lien, mais l’export via / ?exec=sauvegarder&status=status_dump_0_1 ignore les tables spip_gis et spip_gis_liens (mais ça c’est pas nouveau)

      Non ce n’est pas nouveau, c’est de l’histoire ancienne ;) Ce bug sera résolu dans la future version 3.0.18 de SPIP.

      Pour ton problème principal, il semble que ta base soit endommagée. Il faudrait que tu passes sur irc pour qu’on en discute en direct.

    • Pas maintenant, je vais à la soupe.

      Pour info je peux copier un enregistrement spip_gis directement dans la base en lui donnant l’ID suivant pour créer un nouveau point. Donc la faille se situerait entre la formulaire d’ajout ecrire/ ?exec=gis_edit&new=oui et la base plutôt que dans la base elle-même ??
      dd

    • Hello,
      Pour info j’ai réussi à retrouver mes billes : j’ai sauvegardé en local à la main les 2 tables gis et gis_liens, j’ai désinstallé GIS puis je l’ai réinstallé et réimporté mes 2 tables.
      Tout refonctionne, merci.
      dd

    Répondre à ce message

  • 2

    Bonjour,

    J’ai un truc très bête certainement, mais j’ai beau faire le tour je ne comprends pas. Donc un petit coup de main serait le bienvenue.

    J’ai créé un carte dans l’espace privée, donc la super c’est beau ça fonctionne, c’est magique.

    Je passe en proposer l’article pour admirer le résultat sur l’espace public, mais je ne vois rien, juste un grand rectangle blanc en lieu et place de la carte.

    j’ai ajouté ça dans mon squelette, puis retiré
    [(#MODELEcarte_gis, zoom=8, limit=100, scale=oui)]
    et j’ai ça dans mon article
    <carte_gis1|zoom=8|limit=100|scale=oui>

    je vous pousse l’article si ça peut aider : http://direct.u2france.com/actu/le-leg-1-amerique-du-nord,58183.html

    Une explication ? un point de vu ? un coup de main ou pied ?

    Merci

    • Salut, ta carte ne s’affiche pas car ta page comporte les deux erreurs javascript suivantes :

      ReferenceError: twttr is not defined
      http://direct.u2france.com/actu/le-leg-1-amerique-du-nord,58183.html
      Line 335
      
      TypeError: $(...).prettyPhoto is not a function
      http://direct.u2france.com/actu/le-leg-1-amerique-du-nord,58183.html line 372 > eval
      Line 1

      ++

    • Tu es top
      Merci

    Répondre à ce message

  • 1

    Bonjour, existe-t-il un moyen de filtrer les résultats d’une boucle GIS en fonction de la distance (en kilomètres) par rapport à l’endroit géolocalisé par l’endroit d’ou provient l’internaute ?

    Merci pr vos réponses !

    Répondre à ce message

  • 6

    je viens d’effectuer la mise à jour 4.26.0.
    et je ne peux plus lier un mot clé à un nouveau point.

    Par ailleurs, j’ai dû créer un marker_defaut.png dans le dossier images de squelettes car il n’y a plus le maqueur par défaut.

    • Salut, quelle version utilisais-tu avant ?

      As-tu vérifié que les mots peuvent être associés aux objets de GIS dans la config des mots ?

      Quelle est l’url du site pour observer le bug ?

    • Pour la version, je ne connais pas le numéro exact mais c’était au moins une 4.
      J’ai bien vérifié dans la config des mots. Je peux géolocaliser des mots clés et des auteurs.
      J’ai la version SPIP 3.0.17 [21515]
      le plugin saisies 1.42.5
      et le site est visible ici http://www.ruedesboulets.com/
      je géolocalise depuis des années avec ce plugin.

      PS : il fut un temps lointain où j’avais même publier cette contribution http://contrib.spip.net/Geolocalise...

    • Plus exactement, c’est la fonction recherche qui ne marche plus.

    • Hop,

      et je ne peux plus lier un mot clé à un nouveau point.

      J’ai bien vérifié dans la config des mots. Je peux géolocaliser des mots clés et des auteurs.

      On est bien d’accord que tu as vérifié que les mots clés peuvent être attachés à des points depuis la page ecrire/?exec=groupe_mots_edit&id_groupe=X ?

      Plus exactement, c’est la fonction recherche qui ne marche plus.

      Quelle recherche ? Celle qui permet de rechercher un lieu sur la carte lors de la saisie (geocoder) ?

    • Le formulaire « Rechercher une adresse » est muet sur la page
      ecrire/ ?exec=mot&id_mot=XX&bloc_gis=editer&id_gis=nouveau

      Pour lier un nouveau point à un mot clé, je dois aller sur openstreetmap récupérer les données de géolocalisation et les copier dans le formulaire.

    • Hmm ça sent l’erreur javascript qui porvient peut-être du script d’un autre plugin. As-tu des erreurs affichés dans la console de firebug ?

      ps : hésite pas à passer en causer sur IRC http://spip.net/irc

    Répondre à ce message

  • 1

    Merci pour ce super plugin. J’ai un petit souci avec le paramètre default_layer, où peut-on trouver une liste des calques avec la bonne orthographe ? Je n’arrive pas à en trouver une et mes tentatives s’avèrent infructueuses.
    Merci par avance

    Répondre à ce message

  • 2

    bonjour,

    une question peut-être banale ... mais je ne trouve aucune discussion sur ce sujet...

    un point géolocalisé est-il un objet spip avec une URL comme un article ou une brève, donc accessible par cette URL ?

    après une migration spip2/GIS2 à spip3/GIS4, je me retrouve avec des erreurs d’exploration google dont... des points géolocalisés qui existent pourtant...

    merci d’avance d’une piste, notamment pour comprendre éventuellement le format d’url donnant accès à un point GIS...

    pam

    • Salut, les points GIS sont bien des objets SPIP, mais il n’ont pas de squelette public par défaut (donc pas d’url non plus).

      je me retrouve avec des erreurs d’exploration google dont... des points géolocalisés qui existent pourtant...

      Quel type d’urls sont listés par ton outil ? As-tu des exemples à fournir ?

    • voici qq exemples

      -  http://pam.venissieux.org/Parvis-Centre-Social-Eugenie
      -  http://pam.venissieux.org/Place-Leon-Sublet
      -  http://pam.venissieux.org/Place-Leon-Sublet?lang=fr

      je suppose que GIS 2 n’avais pas non plus de squelette de points...mais elles viennent peut-être d’un test de l’autre plugin de l’ign, geoportail ?

      cela dit, quelque soient les causes d’apparition de ces URL dans google, je ne vois que deux démarches
      -  expliquer à google que ces ont des erreurs qu’il ne doit plus chercher
      -  me débrouiller pour créer ces url, mais je ne maitrise pas le lien entre squelettes et url...

      pam

    Répondre à ce message

  • 1

    Hello,

    Est-il possible d’afficher un logo d’un article ou d’un auteur quand on clique sur un marqueur ?

    J’ai pas trouvé le truc ;-)
    Merci

    Répondre à ce message

  • Bonjour,

    Je reviens partager avec vous le résultat de mes recherches.

    Le contexte : je cherchais à afficher une carte dans une rubrique uniquement si la rubrique avait un point lié.

    Partant de la solution donnée par b_b ici pour les articles, j’ai adapté le code pour les rubriques et l’ai inclus dans une boucle reprise du modèle « carte_gis_objet » modifiée pour la circonstance.

    Voici le code sans mise en forme particulière :

    <BOUCLE_test_gis_rubrique(GIS){id_rubrique}>
    [(#MODELE{carte_gis, objets=rubriques, id_rubrique, zoom=16, centrer_auto=oui})]
    </BOUCLE_test_gis_rubrique>

    Les paramètres « zoom » et « centrer_auto » sont des choix personnels. Si cela peut servir à d’autres.

    Répondre à ce message

  • 7
    Lafontanelle

    Bonjour,

    Je tourne en rond sur un problème que je rencontre depuis une semaine : lorsque j’effectue une recherche de mot-clé (pas juste une sélection) pour le lier à une rubrique ou un article (par exemple « Haute-Normandie »), j’obtiens l’erreur suivante :

    Erreur SQL 1146
    Table ’xxx.spip_giss_mots’ doesn’t exist

    SELECT t.id_mot, t.titre, t.texte, t.descriptif, (MATCH(t.titre) AGAINST (’Haute-Normandie’)) * 8 (MATCH(t.titre,t.texte,t.descriptif) AGAINST (’Haute-Normandie’)) * 1.8 IF(SUM(o1.score) IS NULL,0,SUM(o1.score)) IF(SUM(o2.score) IS NULL,0,SUM(o2.score)) AS score FROM spip_mots AS t LEFT JOIN ( SELECT lien1.id_objet,MATCH(obj1.titre,obj1.titre,obj1.texte,obj1.descriptif) AGAINST (’Haute-Normandie’) AS score FROM spip_mots_liens as lien1 JOIN spip_mots as obj1 ON obj1.id_mot=lien1.id_mot AND lien1.objet=’mot’ WHERE MATCH(obj1.titre,obj1.titre,obj1.texte,obj1.descriptif) AGAINST (’Haute-Normandie’) > 0 ORDER BY score DESC LIMIT 100 ) AS o1 ON o1.id_objet=t.id_mot LEFT JOIN ( SELECT lien2.id_mot,MATCH(obj2.titre,obj2.descriptif,obj2.pays,obj2.region,obj2.departement,obj2.ville,obj2.code_postal,obj2.titre) AGAINST (’Haute-Normandie’) AS score FROM spip_giss_mots as lien2 JOIN spip_gis AS obj2 ON lien2.id_gis=obj2.id_gis WHERE MATCH(obj2.titre,obj2.descriptif,obj2.pays,obj2.region,obj2.departement,obj2.ville,obj2.code_postal,obj2.titre) AGAINST (’Haute-Normandie’) > 0 ORDER BY score DESC LIMIT 100 ) AS o2 ON o2.id_mot=t.id_mot GROUP BY t.id_mot ORDER BY score DESC LIMIT 0,500

    Si je désactive le plugins, plus d’erreur ! Alors que faire, car je souhaite garder cette extension ?

    Je suis sur SPIP 3.0.17 + écran sécurité 1.2.0, version GIS4 4.25.0 (cela le faisait également avec la 4.24.1), PHP Version 5.4.23-1, MySQL v5.5.31.

    • Salut, le bug est signalé sur la liste spip-zone :

      http://thread.gmane.org/gmane.comp.web.spip.zone/36799

      Le bug a été introduit par cette modification :

      http://zone.spip.org/trac/spip-zone/changeset/85089/

      Reste plus qu’à corriger :p

    • Lafontanelle

      Merci pour cette réponse rapide ;-)

      Du coup, je vais désactiver fulltext et réactiver Gis en attendant les corrections.

    • Et hop, Kent1 a corrigé le plugin fulltext sur ce point :) Tu peux tester avec la version 1.0.0 disponible par ici :

      http://zone.spip.org/trac/spip-zone/browser/_plugins_/fulltext/trunk

      Cette nouvelle version devrait être bientôt disponible en zip, on attend juste quelques retours de test (de mon côté ça fonctionne bien).

    • Bonjour b_b et merci à Kent1 !

      Le test est positif pour Fulltext version 1.0.0, du moins en ce qui concerne le problème évoqué ci-dessus, lequel a disparu. Les deux plugins sont activés et la recherche de mots-clés (en interne) tout comme la recherche sur la partie publique du site fonctionnent normalement.

      J’ai cependant un autre problème à régler maintenant : la carte ne centre plus sur le point géolocalisé créé et lié à un article mais sur la position de base définie dans la page de configuration de Gis, bien que des paramètres soient passés dans l’URL. Je précise que le plugins Fulltext ne doit pas être ici en cause, ni même Gis, c’est plus sûrement une erreur de ma part, mais laquelle ?

      Un exemple ici.

      Merci de votre aide ;-)

    • Hop, première chose à faire pour toi, désactiver la compression HTML dans la configuration avancée de SPIP. En effet, cette fonctionnalité (qui a été retirée de la future 3.1) n’apporte pas de réel gain côté performance et peut générer des bugs avec les plugins. Une fois que c’est fait, je regarde pour ton problème.

      Hésite pas à venir en causer sur IRC par ici : http://www.spip.net/irc

      ++

    • Avec le code d’appel que tu utilises je pourrais t’en dire plus. Comme je suis sympa j’ai cherché et je l’ai trouvé par ici :)

      http://echodesmots.info/squelettes/localiser.html

      On peut voir que tu appelles le modèle de la carte sans lui passer de paramètres afin de spécifier ce que tu souhaites afficher :

      [(#MODELE{carte_gis, zoom=16, centrer_auto=oui})]

      Avec un objets=articles,id_article ça devrait fonctionner « un peu » mieux ;)

    • Big up !

      Désactivation de la compression html, modification du fichier localiser.html avec

      [(#MODELE{carte_gis, objets=articles ,id_article, zoom=16, centrer_auto=oui})]

      et mes points géolocalisés apparaissent bien comme je le souhaite...

      Pour un novice comme moi, ce partage d’expérience est grandement appréciable, c’est vraiment cool :)

    Répondre à ce message

  • 1

    Bonjour :-)
    Cerdic à fait la correction d’un bug
    http://core.spip.org/issues/3023

    Je viens de faire un test avec SPIP 3.0.18-dev [21687] sous php 5.4 et firefox 33
    Le problème semble bien avoir disparut concernant le plug « formidable », mais semble toujours présent concernant « gis » 4.24.1
    En effet, quand je mets dans un article :
    <carte_gis1|zoom=8|scale=oui>
    Cela ne m’affiche plus comme dans la copie d’écran que j’avais fait, mais plutôt :
    A savoir que j’ai choisi « google satellite »

    <script type="text/javascript">/*<![CDATA[*/
    var map1;
    var jQgisloader;
    // Charger le javascript de GIS une seule fois si plusieurs carte
    if (typeof jQgisloader=="undefined"){
    jQgisloader = jQuery.ajax({url: '../local/cache-js/jsdyn-javascript_gis_js-118a787c.js', dataType: 'script', cache: true});
    }
    // et initialiser la carte (des que js GIS charge et des que DOM ready)
    jQgisloader.done(function(){
    jQuery(function(){
    map1 = new L.Map.Gis('map1',{
    mapId: '1',
    callback: (typeof(callback_map1) === "function") ? callback_map1 : false,
    center: [46.8045716365813,1.687774658203125],
    zoom: 8,
    scrollWheelZoom: true,
    zoomControl: true,
    fullscreenControl: false,
    scaleControl: true,
    overviewControl:false,
    layersControl: true,
    layersControlOptions: {
    collapsed: true
    },
    noControl: false,
    utiliser_bb: false,
    affiche_points: true,
    json_points:{
    url: 'http://www.lien-d-amis.net/spip3/spip3/spip.php?page=gis_json',
    limit: 500,
    env: [],
    titre: "",
    description: "",
    icone: ""
    },
    cluster: false,
    clusterOptions: {
    disableClusteringAtZoom: 0,
    showCoverageOnHover: false,
    spiderfyOnMaxZoom: false,
    maxClusterRadius: 80
    },
    pathStyles: null,
    autocenterandzoom: false,
    openId: false,
    localize_visitor: false,
    localize_visitor_zoom: 8,
    centrer_fichier: true,
    kml: false,
    gpx: false,
    geojson: false
    });
    });
    });
    /*]]>*/
    </script> 

    Donc, problème dans le plug, ou dans porte plume ?
    Franck

    • Si je me trompe pas cela est du à une fonction de sécurité de SPIP (comme je te le disais dans le ticket cité).

    Répondre à ce message

  • 12

    Il y a un problème avec l’import/export de base de donnée et la table spip_gis.

    Visiblement ça ne passe pas, quand on importe il note :

    table spip_gis absente.

    Du coup c’est casse-noix, car cela ne s’affiche qu’à l’import, on ne peut sauver les points...

    • Hop,

      • quel type de base mysql/sqlite ?
      • utilises-tu gis geometries ?
      • des erreurs dans les logs ?
    • Effectivement, j’aurais dû préciser un peu :

      C’est du mysql, sans gis geometries.

      Dans les logs, j’ai trouvé cela :

      Aug 07 16:08:48 109.131.36.110 (pid 1916) :Pri:ERREUR : BLOB/TEXT column ’pays’ used in key specification without a key length - query inconnue
      Aug 07 16:08:48 109.131.36.110 (pid 1916) :Pri:ERREUR : Erreur 1170 de mysql : BLOB/TEXT column ’pays’ used in key specification without a key length
      CREATE TABLE IF NOT EXISTS dlp3.spip_gis (
      id_gis bigint(21) NOT NULL auto_increment auto_increment,
      titre text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      descriptif text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      lat double,
      lon double,
      zoom tinyint(4),
      adresse text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      pays text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      ) code_pays varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      region text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      departement text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      ville text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      code_postal varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      PRIMARY KEY (id_gis),
      KEY lat (lat),
      KEY lon (lon),
      KEY pays (pays),
      KEY code_pays (code_pays),
      KEY region (region),
      KEY departement (departement),
      KEY ville (ville),
      KEY code_postal (code_postal)) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

      Aug 07 16:08:48 109.131.36.110 (pid 1916) :Pri:ERREUR : Table ’dlp3.spip_gis’ doesn’t exist - SHOW CREATE TABLE spip_gis

    • Ok, le problème pourrait provenir de cette modification :

      http://zone.spip.org/trac/spip-zone/changeset/78829/

      Et voici quelques infos à propos du bug en question :

      http://stackoverflow.com/questions/1827063/mysql-error-key-specification-without-a-key-length

      Todo, reste plus qu’à corriger :p

    • jeromeD

      Bonjour Phenix et b_b,

      J’ai eu le même problème après un import de mon site en local sur mon site en ligne. Comment est-il possible de corriger cela. J’ai toujours le message d’erreur
      Erreur SQL 1146
      Table ’xxxx.spip_gis’ doesn’t exist

      Merci d’avance

      Jérôme

    • @jeromeD en attendant tu peux faire des dumps sql en shell ou avec phpmyadmin.

      Pour la source du bug, je crois bien que ça se confirme sur le fait que cela vient de

      http://zone.spip.org/trac/spip-zone/changeset/78829/

      InnoDB has a limitation of 768 bytes per index key and you won’t be able to create an index longer than that. Note that the maximum value of the key size depends on the column charset. It’s 767 characters for a single-byte charset like LATIN1 and only 255 characters for UTF8 (MySQL only uses BMP which requires at most 3 bytes per character)

      Dans le commit cité, un index de longueur 500 est ajouté sur des champs de type TEXT, mais quand on est sur une base InnoDB en utf8 la longueur maxi autorisée serait de 255.

      Je fais des test et si c’est bon, je publie une nouvelle version qui fixera le bug.

    • @jeromeD en attendant tu peux faire des dumps sql en shell ou avec phpmyadmin.

      Plus simple encore, pour les dump SQL tu peux installer adminer :

      http://plugins.spip.net/adminer.html

    • jeromeD

      Bonjour à tous les deux et merci pour le suivi de ce problème.

      J’ai utiliser la technique de #Phenix en attendant la mise à jour du plugin.
      Très efficace.

      Merci encore

      jérôme

    • Du nouveau à propos de ce bug. Après avoir effectué un dump du fichier sqlite correpondant au dump SPIP, on peut voir que les index ne renseignent pas la longueur de caractères à utiliser, ex :

      CREATE INDEX spip_gis_lat ON spip_gis (lat);
      CREATE INDEX spip_gis_lon ON spip_gis (lon);
      CREATE INDEX spip_gis_pays ON spip_gis (pays);
      CREATE INDEX spip_gis_code_pays ON spip_gis (code_pays);
      CREATE INDEX spip_gis_region ON spip_gis (region);
      CREATE INDEX spip_gis_departement ON spip_gis (departement);
      CREATE INDEX spip_gis_ville ON spip_gis (ville);
      CREATE INDEX spip_gis_code_postal ON spip_gis (code_postal);

      Du coup, lors de l’import du dump, on obtient l’erreur suivante :

      ERREUR: Erreur 1170 de mysql: BLOB/TEXT column 'pays' used in key specification without a key length
      CREATE  TABLE IF NOT EXISTS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9qdWtlYm94PC9jb2RlPg=="></span>.spip_gis (
      		id_gis bigint(21) NOT NULL auto_increment auto_increment,
      		titre text  NOT NULL,
      		descriptif text  NOT NULL,
      		lat double,
      		lon double,
      		zoom tinyint(4),
      		adresse text  NOT NULL,
      		pays text  NOT NULL,
      		code_pays varchar(255)  NOT NULL,
      		region text  NOT NULL,
      		departement text  NOT NULL,
      		ville text  NOT NULL,
      		code_postal varchar(255)  NOT NULL,
      		PRIMARY KEY (id_gis),
      		KEY lat (lat),
      		KEY lon (lon),
      		KEY pays (pays),
      		KEY code_pays (code_pays),
      		KEY region (region),
      		KEY departement (departement),
      		KEY ville (ville),
      		KEY code_postal (code_postal))

      Le bug semble donc provenir du système de dump de SPIP. En attendant que celui-ci soit corrigé, je pense qu’il faut virer les index ajouté à la table spip_gis pour le confort des utilisateurs.

    • Pour info, après pas mal de recherche, je pense avoir ciblé le bug. J’ai ouvert un ticket à ce sujet par ici : http://core.spip.org/issues/3260

    • Salut, voilà le bug de SPIP est corrigé (cf le ticket cité ci-dessus), le correctif sera disponible dans les prochaines versions.

    • Dans la prochaine version de SPIP donc.

      Merci pour le boulot !

    • Super, merci pour le suivi de ce soucis.

      On attendra la prochaine version.

    Répondre à ce message

  • 1

    Bonjour tout le monde.

    Il y a une erreur de typo sur le fichier suivant

    /modeles/carte_gis_preview.html

    L’extension recherchée n’est pas la bonne ligne 97, il faut remplacer kml par gpx

    <BOUCLE_gpx(DOCUMENTS){tous}{objet}{id_objet}{extension=gpx}>

    Bravo pour cette belle extension.

    ++

    Répondre à ce message

  • 2

    Bonjour,

    Je viens d’installer SPIP 3.0.17 en local, avec GIS 4 et Agenda. J’ai coché les cases Evènements et Articles dans la configuration de GIS. J’ai bien la géolocalisation dans les articles mais rien n’apparaît dans les évènements.

    Ai-je manqué quelque chose ?

    • Salut, le formulaire de gis est affiché sur les pages de vue des événements, ecrire/?exec=evenement&id_evenement=1 par exemple (voir image ci-jointe).

    • Bonjour et merci. Je ne le cherchais pas là effectivement, pris dans dans l’ajout de multiples évènements sur un même article je n’ai pas pensé à cliquer sur le titre de mon évènement une fois ajouté...
      Si on pouvait envisager, pour une prochaine version, l’ajout du formulaire dans l’édition de l’évènement directement (à l’instar des mots-clés par exemple) ce serait un vrai plus en terme de fluidité.

      Grand merci en tout cas pour ce plugin essentiel et la rapidité de la réponse.

      Michel.

    Répondre à ce message

  • 3

    Bonjour,
    Je viens de mettre à jour le plugin et mes marqueurs personnalisés n’apparaissent plus dans le squelette article coté public.
    (la carte est bien positionnée et centrée).

    Voici mon code :

    		
    <BOUCLE_gis(GIS){id_article}>
    [(#INCLURE{fond=modeles/carte_gis,
      lat=#LAT,
      lon=#LON,
      objet=articles,height=200px,control_type=non,
      id_article})]
    </BOUCLE_gis>

    dd

    Par contre sur la page rubrique je vois bien tous les marqueurs.

    • Salut, ok je vois le bug, il a été introduit par cette modification :

      http://zone.spip.org/trac/spip-zone/changeset/84930/

      Je contacte l’auteur du changement en question pour lui demander de corriger ça au plus vite.

      ++

    • Après quelques tests et relecture de ton code, on peut voir que celui-ci comporte une erreur. En effet, tu passes le paramètre objet au modèle au lieu de objets comme indiqué dans la doc.

      Du coup, cela fonctionnait presque par hasard malgré ton erreur. Mais depuis la modification que je citais dans mon commentaire précédent, il existe un paramètre objet qui est utilisé par un autre modèle du plugin, du coup l’erreur que comporte ton code est mise au jour.

    • Bonjour,
      Merci pour ta relecture. Le hasard permet bien des choses !
      C’est corrigé et cela fonctionne.

      dd

    Répondre à ce message

  • 4

    Bonjour,

    j’ai mis à jour un site de la branche 2 vers 3.0.17 mais j’ai cette erreur dans l’administration :
    1 Erreur SQL 1054
    Unknown column ’maj’ in ’order clause’
    SELECT id_gis AS id, titre AS titre, 0 AS id_parent FROM spip_gis WHERE id_gis=97 ORDER BY 0+titre,titre,maj DESC

    J’ai ajouté les titres des points qui n’avaient pas été repris
    J’ai essayé de réinstaller GIS4 sans succès.
    Je ne vois pas de champ maj dans la base

    C’est un mystère..
    merci
    dd

    • Salut, la table spip_gis ne comporte pas de champ maj (en v2, v3 ou v4). Il nous faudrait plus d’info pour t’aider à trouver d’où vient ton bug :

      • quel type de base données est utilisé par le site ?
      • quelle version de GIS avant mise à jour et après ?
      • sur quelle page tu as cette erreur ?
      • as-tu rencontré des erreurs lors de la mise à jour ?
      • as-tu vérifié les logs mysql ?
    • Bonjour Bruno,

      C’est un site en local avec :
      SPIP 3.0.17 [21515]
      Version de PHP : 5.3.6-13
      mysql
      Après une mise à jour de SPIP 2.1.26 [21262] vers SPIP 3.0.17 [21515]

      J’ai cette erreur sur la page par exemple : ecrire/ ?exec=gis&id_gis=97 ; la carte et son marqueur s’affiche bien, dans la partie publique aussi.
      Mais ici : ecrire/ ?exec=gis_tous : aucun marqueur
      ici : ecrire/ ?exec=gis_tous&afficher=liste j’ai bien toute la liste

      merci
      dd

    • Spipmalion

      Même chose sur un SPIP 3.0.17 avec GIS téléchargé aujourd’hui Saisies mis à jour ce jour également

      rreur SQL 1054
      Unknown column ’maj’ in ’order clause’
      SELECT id_gis AS id, titre AS titre, 0 AS id_parent FROM spip_gis WHERE id_gis=1 ORDER BY 0+titre,titre,maj DESC
      / /
      2 Erreur SQL 1054
      Unknown column ’maj’ in ’order clause’
      SELECT id_gis AS id, titre AS titre, 0 AS id_parent FROM spip_gis ORDER BY 0+titre,titre,maj DESC

    • Bonsoir,

      J’ai résolu ce problème là par une re-installation propre de SPIP.
      dd

    Répondre à ce message

  • 5

    Bonjour,

    J’utilise GIS, formidable plug-in, mais le centrage de la carte est très aléatoire sur le site sur lequel je travaille actuellement. J’ai finalement réussi à le faire fonctionner, puis j’ai « installé » la librairie d3.js et mes cartes ne se centrent plus à nouveau.

    Ma balise est écrite comme ceci :

    [(#MODELE{carte_gis, id_map=3, zoom=12, autocenterandzoom, 
    height=214px, limit=100, scale=oui, point=oui})]

    Quelque chose vous semble-t-il étrange dans cette balise ? Ou bien, un problème de compatibilité ?

    Merci par avance !

    Répondre à ce message

  • 2

    Bonjour,
    Merci pour ce plugin très pratique. Je cherche à afficher le contenu d’une infobulle (un article ds mon cas) dans une div au sein de la page contenant la carte à la place de l’infobulle elle même. J’ai cherché pas mal sur les forums de leaflet mais je ne vois pas comment je pourrai réaliser ceci avec ce plugin, ni exactement quel fichier je devrai modifier.
    Le but est de faire une carte dont le contenu lié à un point serait complétement responsive (pour l’instant je modifie l’infobulle en fonction du support mais le résultat me satisfait à moitié...)

    Merci,
    Séb

    Répondre à ce message

  • 9

    spip 3.0.17
    gis 4.22.4

    quand je veux enregistrer la page de configuration, ça m’écrit ça :

    cfg titre gis
    noajax

    que puis-je, dois-je faire pour retrouver un fonctionner normal ?

    • Salut gornety, cela provient peut-être d’un script qui génère une erreur javascript dans le privé. En observes-tu dans firebug ? Essaye de désactiver les autres plugins du site pour trouver le fautif.

    • c’est vrai qu’en supprimant tous les plugins
      puis en re-installant dans l’ordre :
      -  Gis + Saisie
      -  tous les autres plugins
      on retrouve le fonctionnement normal de GIS

      de mon point de vue, il n’y a pas d’erreur javascript à proprement parler
      mais seulement un masquage de la fonction nécessaire à GIS pour s’afficher
      comme il se trouve que ce n’est pas la première fois que l’on constate ce truc, me semble-t-il, et particulièrement avec GIS, alors je préviens...

      pour l’exemple, les plugins suivants sont installés :
      Adminer - 4.0.3.4 - test
      AnythingSlider 2.0.0 - dev
      Galleria plugin pour SPIP 1.3.2 - stable
      GIS 4.22.5 - stable
      Le Couteau Suisse 1.9.0 - stable
      Saisies pour formulaires 1.40.7 - stable

    • Idem pour moi, même poblème. En désactivant les autres plugins ça ne suffit pas... et j’ai vraiment la flemme de tout désinstaller ! Donc quand une solution aura été trouvée, je suis preneur. Merci !

    • cfg titre gis
      noajax

      J’ai trouvé le moyen de réduire cet embarras :
      dans le fichier squelettes/contenu/configurer_gis.html
      il faut enlever class=’ajax’ dans le premier et unique div

      comme il semble que le core lance le formulaire directement ajaxé,
      (c’est toujours ajaxé même quand je supprime la classe)
      ce class=’ajax’ vient embrouiiler les choses

      en tout cas depuis que je l’ai enlevé, je n’ai plus de difficulté pour configurer le plugin

      je ne commite pas cette modif, parceque je ne suis pas certain de mon analyse

    • Ha, je savais bien que ce problème a déjà été abord. Une petite recherche dans les messages de cette page et hop :

      http://contrib.spip.net/GIS-4?debut_comments-list=-1#forum473959

      http://contrib.spip.net/GIS-4?debut_comments-list=-1#forum467878

      Deux pistes donc, un bug de saisies avec l’option HTML5 ou un fichier mes_options foireux. Cochez la bonne case :p

    • Précision :
      -  le site est en pure html5, responsive
      -  il n’y a pas de fichier mes_options.php

    • Hop, quand je citais l’option HTML5, je parlais de l’option disponible dans les pages de config de SPIP. Utilises-tu cette option ?

    • Oui
      je coche systématiquement cette case
      sur tout mes sites responsives

    • S’il n’y a pas de fichiers mes_options, il faut je pense vérifier les fichier options des différents plugins. Sinon, passe sur IRC pour qu’on regarde le problème ensemble :)

    Répondre à ce message

  • 2

    Bonjour,

    J’ai constaté un petit soucis sur un affichage d’une carte ans une mediabox au niveau de l’utilisation du zoom.

    -  Si j’utilise la roulette de la souris pour zoomer —> aucun problème
    -  Si j’utilise les boutons « zoom in + et zoom out - » affichés sur la carte, je peux faire un zomm d’un niveau en avant puis la carte est bloquée. impossible de zoomer plus ou de zoomer moins.

    Pour voir l’effet en ligne, cliquez sur la miniature de la carte sur cette url : http://www.alombredunchene.com/spip.php?page=contact

    Merci d’avance pour la personne qui aura un éclaircissement à me donner

    Jérôme.

    • Salut, oui c’est un bug avec le script qui permet d’utiliser les couches google, cf :

      https://github.com/shramov/leaflet-plugins/issues/62

      Perso je déconseille d’utiliser les fonds de carte de google « sur le principe ».

      Malheureusement il n’y a pas de solution technique pour l’instant, et comme je le disais déjà sur github, je n’ai pas spécialement envie de passer du temps sur les bugs des couches google, car on ne sait toujours pas si ce script est en accord avec leurs conditions d’utilisation...

    • Merci pour ta réponse. Je vais donc changer de fond de carte.

      Je comprends très bien ton point de vue mais nombreux sont les utilisateurs qui se sentent rassurer avec les cartes google.

      En tout cas merci pour tout.

      Jérôme

    Répondre à ce message

  • 2

    Bonjour ;

    J’ai intégré une carte GIS dans un accordion de bootstrap, et je rencontre un problème d’affichage pour la carte (Une image grise s’affiche !!) mais juste en redimensionnant la fenêtre du navigateur la carte prendra sa place. Donc, j’aimerais au moment de l’affichage de l’accordion de rafraîchir la carte. Est ce qu’il existe une fonction pour recharger la map GIS ou la rafraîchir ?

    Merci.

    Répondre à ce message

  • Bonjour, j’ai une carte qui est parfois un peu longue à charger (de nombreux points, traitements serveur, etc), est-il possible de faire afficher un message ou une animation de chargement par dessus la carte le temps que tous les points soient affichés ?

    Merci pour votre travail.

    Répondre à ce message

  • 4

    Bonjour,

    Je cherche simplement à afficher une liste d’articles qui sont liés à un point géolocalisé, ce qui semble facile à lire la doc, je cite :

    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.

    Ma question est : oui mais lequel de point ?? J’ai lu 10 pages du forum sans trouver la réponse, j’ai essayé 3 choses :

    -  mettre ma boucle dans une boucle de type GIS pour amener l’id du point qui m’intéresse au contexte de la boucle ARTICLES avec son critère {gis}, ici ça ne marche pas je récupère 1 article pour chaque point géolocalisé et ce pour tous les points géolocalisés, pas seulement celui du cotexte

    -  ajouté à ma boucle ARTICLES, en plus de {gis}, un critère {id_gis=#ENV{id_gis}} avec lequel j’ai eu une minute d’espoir, ça marchait sauf que si je lie 2 articles à un même point géolocalisé, ma boucle ne me produit que le dernier lié

    -  si je ne met rien (ni boucle ni critère), ma boucle ARTICLES avec le critère {gis} produit en fait un seul article pour chaque point géolocalisé, pas plus ni moins, ce fonctionnement semble quelque part logique en regard des tests précédents.

    Les résultats erronés que j’obtiens semblent conserver une logique sur le fait que j’obtiens toujours 1 seul article par point géolocalisé même si plusieurs sont liés, donc la seconde méthode semble presque bonne car elle sélectionne bien le bon article pour le point geolocalisé voulu mais elle retourne elle aussi 1 seul article ...

    Bref je suis dans la sauce, quelque chose doit m’échapper ... :-)
    Pierre.

    • J’aurai dû préciser, Spip 3.0.17 et GIS 4 à jour.

    • Salut, cette boucle doit être ce que tu cherches ;)

      <BOUCLE_articles(ARTICLES){id_gis=X}>
      #ID_ARTICLE
      </BOUCLE_articles>
    • Bonjour,

      Plus réactif tu meurs !!

      Merci oui c’est ça, ça marche. On est d’accord que la doc est un peu fausse là-dessus, le texte que j’ai cité dit bien qu’il faut utiliser {gis} pour trouver les articles liés à un point géolocalisé ... J’ai dû enlever {gis} 2 ou 3 fois pour à chaque fois me dire ... non, la doc est claire, il faut ce critère :-)

      Merci !
      Pierre.

    • Hop, de rien :)

      On est d’accord que la doc est un peu fausse là-dessus,

      Non :p Le critère gis est juste une aide ou une alternative à ce que je t’ai proposé.

    Répondre à ce message

  • 4

    bonjour

    après un passage en spip3 avec gis4, je n’arrive pas à mettre en oeuvre la surcharge de l’nfobulle décrite dans cette page. A vrai dire, j’avais déja eu des difficultés avec ces infobulles sous GIS2, mais je me disais vu la doc que ca serait mieux avec GIS4...

    j’ai donc surchargé gis_articles comme indiqué... mais ca ne change rien... (cache vidé bien sûr...) http://pam.venissieux.org

    En regardant ma page en debug, je m’aperçois que seul le squelette carte_gis est exécuté, puis passe la main à un js... et dans le resultat en debug, title et description sont vides...

    en utilisant skeleditor d’ailleurs, je ne vois pas le script gis_articles... pourtant, j’appelle bien carte_gis avec objet=articles...

    j’ai essayé pour voir de surcharger aussi gis_html puisque de toute façon, je n’utilise que des points sur articles, mais ca ne change rien... il semble que carte_gis n’appelle aucun gis_xx...

    j’avoue que ma lecture basique de carte_gis me dit que ce script ne crée qu’un div vide avec un id et une classe qui déclenche le js... donc que l’appel du reste est dans le js.. et là, je me dis que je m’enfonce...

    merci d’avance d’une piste...
    pam

    • Salut, pour commencer je te conseille grandement de désactiver la compression HTML qui est active sur ton site. Cette fonctionnalité pose souvent des problèmes et n’apporte pas grand chose du côté des performances d’affichage (d’ailleurs on l’a viré de la version de dev de SPIP).

      Pour ton problème de carte, il faudrait que tu nos donnes le code que tu utilises pour afficher ta carte, et celui que tu as collé dans des fichiers json/ afin de personnaliser le contenu des bulles.

    • merci de la réactivité....

      j’ai désactivé la compression html (et aussi pour js et css...)
      sans changement

      l’appel du modele carte_gis dans l’article

      <carte_gis1|zoom=15|lat=45.698342|lon=4.885041|overview=oui|objet=articles>

      et les surcharges sont des copies de ce qui est proposé..
      c’est peut-être là que je n’ai pas compris, car relisant inc_bulle... je me demande ce que ca fait... a priori, je n’ai pas besoin des distances et adresses... dans un premier temps !

      gis_articles

      		<BOUCLE_art(ARTICLES){gis}{id_article ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{id_groupe ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}>
      		{"type": "Feature",
      		"geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
      		"id":"#ID_GIS",
      		"properties": 
      			{
      				[(#SET{titre,<a href="#URL_ARTICLE">#TITRE*</a>})]
      				"title":[(#GET{titre}|json_encode)],
      				"description":[(#DESCRIPTIF|json_encode)]
      				[(#LOGO_GIS|gis_icon_properties)]
      			}
      		}
      		</BOUCLE_art>

      et inc_bulle

      <BOUCLE_GEO_LON_LAT_USER(spip_gis_liens){objet=auteur}{id_objet=#SESSION{id_auteur}}>
      				[(#SET{user_geo,#ID_GIS})]
      				</BOUCLE_GEO_LON_LAT_USER>
      <div style="width:200px;">
      
      [<a href="#URL_ARTICLE" style="text-decoration:none;"  title="<:suite:>">(#INFO_TITRE{article,#ID_ARTICLE})</a><br/>]
      [<a href="#URL_ARTICLE" title="<:suite:>">(#LOGO_ARTICLE|image_reduire{110}|image_recadre{80,80,center center})</a>]
      
      <BOUCLE_ARTICLE(spip_auteurs_liens){id_objet=#ID_ARTICLE}{objet=article}>
      		<BOUCLE_AUTEUR(AUTEURS){id_auteur=#ID_AUTEUR}{0,1}{tout}>
      
      			[<a href="#URL_PAGE{auteur,id_auteur=#ID_AUTEUR}" style="text-decoration:none;" title="<:contact:>">(#LOGO_AUTEUR|image_reduire{110}|image_recadre{80,80,center center}|sinon{Pas de logo auteur}|image_passe_partout{90})</a>]
      				[<a href="#URL_PAGE{auteur,id_auteur=#ID_AUTEUR}" style="text-decoration:none;" title="<:contact:>"><font style="font-size:10px; color:#FF6633;"><:auteur:>&nbsp;:&nbsp;(#NOM|couper{25})</font></a><br/>]
      
      		</BOUCLE_AUTEUR>
      </BOUCLE_ARTICLE>
      	<BOUCLE_GEO(GIS){id_article}>
      		<BOUCLE_DISTANCE(GIS){id_gis=#GET{user_geo}}{gis distance}>
      			[<font style="font-size:10px;">Adresse&nbsp;&agrave;&nbsp;(#DISTANCE|couper{5})&nbsp;<sup>km</sup></font><br/>]
      		</BOUCLE_DISTANCE>
      			
      			[<font style="font-size:10px;">(#ADRESSE|couper{25})</font>]
      	  		[<font style="font-size:10px;">(#VILLE|couper{20})</font>]	 
      			[<font style="font-size:10px;">((#REGION|couper{25}))</font>]
      	</BOUCLE_GEO>
      
      </div>
    • Salut,

      j’ai désactivé la compression html (et aussi pour js et css...)

      Tu peux laisser la compression css et js actives, elles ne posent pas de problème.

      Je ne comprends pas d’où sort ce fichier inc_bulle, il n’y en a pas dans GIS et tu ne sembles pas l’appeler dans ta surcharge de json/gis_articles, tu as plus d’infos à nous filer sur ce point ?

      Autre pointe, si je regarde la carte affichée sur la page d’accueil (on parle bien de celle là ?), je vois qu’elle ne reçoit pas de paramètre objets et du coup elle n’utilise pas ton fichier gis_articles. En fait c’est normal, tu passes un paramètre objet sans s, l’erreur est là :p

    • merci beaucoup...
      le diable est dans les détails !!

      et pour inc_bulle, c’est simplement une mauvaise lecture de la page http://contrib.spip.net/Gis-4-Surcharger-les-infobulles, j’ai mélangé la surcharge de la bulle avec le lien, et la suite avec cet inc-bulle qui concerne la distance d’un auteur avec un point...

      encore merci pour ce coup de main dominical

      pam

    Répondre à ce message

  • 4

    Bonjour

    sur plusieurs de mes sites j’ai une page publique par point GIS. Ça me sert à afficher diverses infos comme par exemple l’agenda d’un lieu. Depuis la révision 82852 (http://zone.spip.org/trac/spip-zone/changeset/82852/_plugins_/gis), cela ne fonctionne plus. Est ce que c’est possible de surcharger la fonction qui a été modifiée pour que la page gis.html ne soit plus générée ? Si oui comment ?

    merci

    • En relisant je me rends compte que c’est pas hyper clair comme question, alors je reformule :

      est-il possible de surcharger la fonction du plugin pour que celui-ci génère à nouveau une page gis.html ? Si oui, comment ?

      merci

    • Salut, tu dois pouvoir rétablir le comportement antérieur au commit en utilisant le pipeline declarer_tables_objets_sql ou plus simplement avec le pipeline declarer_url_objets :

      http://www.spip.net/fr_article5525.html

      http://programmer.spip.net/declarer_url_objets

      ++

    • Merci pour la réponse !

      Pour celles et ceux qui souhaitent aussi avoir une page publique par point géolocalisé, il suffit d’ajouter ceci dans le fichier config/mes_options.php :

      $GLOBALS['spip_pipeline']['declarer_url_objets'] .= "|gis_declarer_url_objets";
      function gis_declarer_url_objets($array){
          $array[] = 'gis';
          return $array;

      il ne reste plus ensuite qu’à créer un squelette gis.html pour afficher les informations que l’on souhaite.

    • Cool, content que tu aies réussi à faire ce que tu veux, et merci d’avoir partagé la solution avec les autres ;)

    Répondre à ce message

  • 1

    Le modèle carte_gis n’envoie aucun paramètre de langue au fichier JSON des points.

    C’est un peu gênant dans le cas des objets traduits, on se retrouve avec une carte en deux langues.

    Possible de passer ce paramètre ?

    Merci

    • La partie suivante de la doc présente sur cette page devrait t’être utile : Étendre la liste des paramètres du modèle carte_gis.

    Répondre à ce message

  • Spipmalion

    Bonjour, merci pour ce super plugin

    J’essaye d’ajouter un lien vers l’article sous la description un peu comme dans l’exemple, impossible, lorsque j’ajoute ce code plus aucun point ne s’affiche :

    <BOUCLE_art(ARTICLES){gis}{id_article ?}{branche ?}{id_mot ?}{id_groupe ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}>
    		{"type": "Feature",
    		"geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
    		"id":"#ID_GIS",
    		"properties": {[(#SET{mon_lien,<a href="#URL_ARTICLE">En savoir plus</a>})]
    			"title":[(#TITRE_GIS*|sinon{#TITRE*}|extraire_multi|supprimer_numero|json_encode)],
    			"description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|json_encode)][(#GET{mon_lien}|json_encode)][
    			(#LOGO_GIS|gis_icon_properties)]
    		}}</BOUCLE_art>

    Cette ligne ne pose pas de problème apparent :

    [(#SET{mon_lien,<a href="#URL_ARTICLE">En savoir plus</a>})]

    Le problème intervient quand j’ajoute cette ligne :

    [(#GET{mon_lien}|json_encode)]

    Merci d’avance

    Répondre à ce message

  • 2

    Plusieurs points EXACTEMENT au même endroit

    Bonjour,

    Sur une carte, le rédacteur a positionné 6 articles avec un point pour chaque article, mais exactement au même endroit. Le cluster montre donc un 6, mais impossible d’aller plus loin... Aucune fonction qui montre les six points décalés (éclatés avec des traits) pour pouvoir cliquer sur chaque point ?

    Sinon comment faire ? détecter les points identiques dans le json ?

    Merci de votre aide.
    Julien

    • Salut, l’option clusterSpiderfyOnMaxZoom du système de clustering permet de pallier ce type de problème.

    • Merci ! (un peu honte, encore une fois il suffisait de bien lire la doc...)

    Répondre à ce message

  • Bonjour,

    Lorsque j’affiche la carte de tous les points d’un site, elle inclut les points rattachés à des objets non publiés.
    J’ai cherché comment filtrer sur le statut,mais rien trouvé qui fonctionne.

    Mon modèle :

    [(#INCLURE{fond=modeles/carte_gis,zoom=8,id_carte_gis=1})]

    merci
    dd

    Répondre à ce message

  • 1

    Nouveau défi :).

    Je cherche à trier mes résultats.

    Ca marche avec

    #SET{defaut_tri,#ARRAY{
    titre_gis,1,
    ville_gis,-1,
    pays_gis,-1
    <p>#TRI{titre_gis,'Trier par nom',ajax} | #TRI{ville_gis,'Trier par ville',ajax} |
    #TRI{pays_gis,'Trier par pays',ajax}</p>
    <BOUCLE_art(AUTEURS){gis}{tout}{tri titre_gis,#GET{defaut_tri}}>

    Mais je n’avance pas lorsque je veux le mettre dans un menu déroulant :

    <form id="tri" action="#SELF" method="get" name="tri">
    <input type="hidden" name="page" value="liste" />
     <input type="hidden" name="" value="tri_art" />
    <select class="" name="tri" onchange="submit(); " class="spip_bouton">
                   
    <option value="titre_gis"[(#TRI|=={titre_gis}|?{' selected="selected" class="selected"'})] ></option>Trier par nom</option>
    <option value="ville_gis"[(#TRI|=={ville_gis}|?{' selected="selected" class="selected"'})] ></option>Trier par ville</option>
    <option value="pays_gis"[(#TRI|=={pays_gis}|?{' selected="selected" class="selected"'})] ></option>Tri par pays</option>
    </select>
    <input type="checkbox" name="ordre" [(#ORDRE|=={on}|?{'checked '})]onchange="submit();">[(#ORDRE|?{&uarr;,&darr;})] </input>
    <noscript>
    <input type="submit" value="<:trier:>" class="spip_bouton" /></noscript></form>

    . Une idée ?

    • Bonjour,

      Je te mets ce que j’ai dans un formulaire qui fonctionne (c’est pas moi qui l’ait fait..)

      	#SET{villes,#ARRAY}
      		<B_villes>
      		[(#REM)
      			Ici on liste les villes possibles que l'on met dans un tableau
      			fusion permet de les retourner qu'une seule fois (GROUP BY)
      		]
      		<BOUCLE_villes(GIS){ville != ''}{fusion ville}{par ville}>
      		#SET{villes,#GET{villes}|push{#VILLE}}
      		</BOUCLE_villes>
      		<B_gis_villes>
      		<li class="editer editer_ville">
      			<label for="ville" class="invisible"><:gis:label_ville:></label>
      			<div class="styled-select">
      			<select id="ville" name="ville">
      				<option value=""><:gis:label_ville:></option>
      				[(#REM)
      					Là on boucle sur nos villes possibles 
      					On test si au moins un article est lié à cette ville
      					On fait deux boucles, une si on a un id_mot_force, une sans (cas d'une page mot)
      				]
      			<BOUCLE_gis_villes(DATA){source tableau,#GET{villes}}{valeur != ''}{par valeur}>
      				<BOUCLE_article_ville(ARTICLES){si #ENV{id_mot_force}|non}{id_secteur ?}{gis}{gis.ville = #VALEUR}{gis.ville != ''}{0,1}>
      				<option value="#_gis_villes:VALEUR"[(#_gis_villes:VALEUR|=={#ENV{ville}}|oui) selected="selected"]>#_gis_villes:VALEUR</option>
      				</BOUCLE_article_ville>
      				<BOUCLE_article_ville_force(ARTICLES){si #ENV{id_mot_force}|>{1}}{id_secteur ?}{gis}{id_mot=#ENV{id_mot_force}}{gis.ville = #VALEUR}{gis.ville != ''}{0,1}>
      				<option value="#_gis_villes:VALEUR"[(#_gis_villes:VALEUR|=={#ENV{ville}}|oui) selected="selected"]>#_gis_villes:VALEUR</option>
      				</BOUCLE_article_ville_force>
      				</BOUCLE_gis_villes>
      			</select></div>
      		</li>
      		</B_gis_villes>
      		</B_villes>
      			
      	

      Il y a aussi un tri par mot selon le secteur donc à toi de voir pour l’adaptation.
      dd

    Répondre à ce message

  • 4

    Le système qui permet de mettre des points libre (point_libre) ne fonctionne pas correctement, il n’affiche aucun marqueur.

    [(#MODELE{carte_gis,
    id_map=1,
    objets=point_libre,
    zoom=16,
    scale=oui,
    lat=50,
    lon=4,
    titre=Beau Titre})]

    Quelqu’un sais pourquoi ?

    Répondre à ce message

  • 1

    Bonjour,
    est il possible d’afficher plusieurs carte sur une meme page spip ? Dans mon cas, je cherche à lister les auteurs et à coller une carte avec leur info de localisation.

    MERCI à vous !

    • Salut, oui c’est possible, il faut juste faire attention a bien utiliser un id_carte_gis (ou id_map) différent pour chacune des cartes de la page.

    Répondre à ce message

  • 2

    Bonjour,

    Le plugin s’est vraiment amélioré par rapport aux éditions précédentes. J’ai une question sur les points liés à une carte. J’arrive a sortir la liste pour un article donné. Est il possible de mettre des liens sur ces points qui ouvriraient le point correspondant sur la carte ?
    Merci

    • Eh hop ! (comme dirait certain)

      voici ce qui fonctionne chez moi :

       <BOUCLE_points(GIS){par titre}{pagination}{doublons}>
       <a href="#map1" onclick="javascript:gis_focus_marker(#ID_GIS,1);"><li>#TITRE</li></a>
       </BOUCLE_points>

      trouvé ici : http://contrib.spip.net/Astuces-GIS#1

      dd

    • Merci, c’est exactement ce que je cherchais vainement :-)

    Répondre à ce message

  • 2

    Quelques petits problèmes :
    1- sur un site en local pas de problème, J’installe sur un site en mutu, l’installation des tables gis gis_liens ne sont pas : solution, je les ai créé à la main en exportant - important à partir de ma base local.

    2- si le plugin « numérotation rapide » est installé, cela interagi avec GIS et produit une erreur MySql sur un champ « maj » qui n’existe pas. Cela est du à la ligne 97 du fichier numero->inc->numeroter.php. Si on supprime maj, cela fonctionne ... jusqu’à la prochaine mise à jour de « numérotation rapide ».

    • Salut et merci pour les retours,

      1) il faudrait plus d’info pour ce point, extrait des logs mysql ou spip pour cibler l’erreur

      2) je pense que le bug est à signaler du côté du plugin en question.

      ++

    • 1- bof dans les logs pas grand chose :

      Pri:ERREUR: Erreur mysql 1146
      Jul 25 12:02:58 ip (pid 28705) :Pri:ERREUR: Table 'sculptensologne.spip_plugins_liens' doesn't exist - SHOW CREATE TABLE <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9wbHVnaW5zX2xpZW5zPC9jb2RlPg=="></span>

      , je viens de désinstaller, réinstaller, même effet. Pas de table créer. C’est sur du OVH php 5.4.

      2- fait.

    Répondre à ce message

  • 3

    je souhaite creer un lien sur le nom de l’auteur vers la page auteur. Sauf que lq je fais

    (#INCLURE{fond=modeles/carte_gis,
    	zoom=5, scale=oui, localiser_visiteur=oui,width=92%,height=400px})

    ca ne fonctionne pas et c’est bien normal.

    mais si je fais

     (#INCLURE{fond=modeles/carte_gis,objets=auteurs,
    	zoom=5, scale=oui, localiser_visiteur=oui,width=92%,height=400px})

    alors mes url prennent la forme http://Monsite/spip/spip.php?article0

    je seche !

    • Salut arthur ou bob, je ne sais comment t’appeler vu que tu changes de pseudo entre chaque post :p

      Avec l’url de ton site cela serait bien plus facile de t’aider.

    • bob & arthur :)

      Bonjour

      j’ai besoin d’une carte qui liste les auteurs du site, qu’ils aient ou non rédigés un article.
      J’utilise donc

      [(#INCLURE{fond=modeles/carte_gis,objets=auteurs,
      	zoom=11, scale=oui, localiser_visiteur=oui,width=92%,height=400px})]

      Cette inclusion se fait sur la page d’entrée du site sommaire.html.
      D’ou peut venir mon problème ?

    • Salut, dans ce cas, il te faut surcharger la boucle auteurs utilisée dans le squelette qui alimente la carte. Pour le faire proprement, il faut :

      • copier le squelette gis/json/gis_auteurs.html dans squelettes/json/gis_auteurs.html
      • puis modifier cette copie en ajoutant le critère {tout} à la boucle

      Et voilà :)

    Répondre à ce message

  • 1

    Bonjour, je cherche à afficher la ville d’un auteur sur la page auteur.
    Avec cette boucle, rien ne s’affiche. Pourriez vous m’aider ?

    <BOUCLE_centrer(GIS){id_auteur}>
    [, (#VILLE)]
    </BOUCLE_centrer>
    • Bonjour,

      ce code fonctionne chez moi :

      <BOUCLE_aut(AUTEURS){id_auteur}{gis}>
      ...

      Je crois que CELA EST ok AUSSI :

      <BOUCLE_aut(AUTEURS GIS){id_auteur}>
      ...

      dd

    Répondre à ce message

  • 3

    Bonjour,

    je rencontre un problème idiot, je possède des points qui possèdent la même géolocalisation, le dernier affiché cache les points placés derrière lui. Comment faire pour les distinguer sur la carte ? (ou au moins pourvoir les lister dans l’infobulle ?)

    • La librairie de clustering qu’on utilise dans GIS permet de gérer ça avec l’option spiderfyOnMaxZoom mais celle-ci n’est pas encore paramétrable dans GIS. Je vais ajouter cette option au modèle prochainement.

      ++

    • Merci je vais tester.
      J’attends votre prochaine version avec impatience.

    • Voilà, la version 4.21.0 permet d’activer cette nouvelle option clusterSpiderfyOnMaxZoom et la doc est à jour :

      http://zone.spip.org/trac/spip-zone/changeset/83543

      Cadeau bonus, deux nouveaux fonds de carte d’openstreetmap.se ;)

    Répondre à ce message

  • Bonjour,

    Juste une remarque en ce qui concerne le formulaire d’édition de point et le code suivant :

        <BOUCLE_unpoint(GIS){id_article}{0,1}>
        #SET{id_gis,#ID_GIS}
        </BOUCLE_unpoint>
        #SET{id_gis,nouveau}
        <//B_unpoint>
        ...

    je lie des auteurs donc j’ai d’abord fait :

    <BOUCLE_unpoint(GIS){id_auteur}{0,1}>

    mais ça n’a pas fonctionné et j’ai dû modifier en :

    <BOUCLE_unpoint(GIS_LIENS){id_auteur}{0,1}>

    après m’être aperçu que l’ID des points était stocké dans la table GIS_LIENS.

    Répondre à ce message

  • 1

    Je viens de trouver :
    « title » :[(#VAL[(#TITRE*|extraire_multi|supprimer_numero|sinon----)]|json_encode)],

    Répondre à ce message

  • 2

    Bonjour et merci pour ce plugin très impressionnant.
    J’aimerais afficher sur les pages publiques le formulaire d’édition de point (pour créer un point et le lier à l’objet en cours).
    Cela est-il possible ?

    • Salut, et merci pour le message :) Oui c’est possible, cf la partie Formulaire d’édition de point de cette page.

      ++

    • rhoo je l’ai lu et puis j’ai dû oublier...
      merci pour la réponse rapide et bonne continuation.

    Répondre à ce message

  • Philippe B.

    Bonjour,

    Est-il envisagé d’ajouter le support des cartes de l’IGN à ce plugin ?

    Il semble que l’api de l’IGN soit compatible avec leaflet :
    -  > http://api.ign.fr/tech-docs-js/examples/geoportalLeaflet.html

    Faut-il ajouter un plugin leaflet spécifique pour gérer le service WMTS ?
    -  > https://github.com/mylen/leaflet.TileLayer.WMTS

    D´avance merci !

    Répondre à ce message

  • 2
    Jérôme

    Bonjour,

    Merci pour ce superbe plugin qui est probablement ce qui me manquait. J’ai cependant quelques questions :
    -  est-il possible d’afficher plusieurs fichiers kml sur une même carte, avec par exemple des cases à cocher qui permettraient de passer de l’un à l’autre ?
    -  dans ces fichiers kml, qui dans mon cas se composeraient de polygones, est-il possible de faire varier la transparence du remplissage ?
    -  ces fichiers kml étant volumineux, je voudrais les compresser en kmz. J’ai lu que Quincailler est arrivé à afficher des fichiers kmz avec le plugin gis, mais moi je n’ai pas réussi à le faire, et je ne comprend pas pourquoi.
    -  depuis que j’ai installé GIS, la partie privée de mon site affiche Erreur dans les plugins : /mnt/133/sda/6/b/jbouffand/plugins/gis/gis_autoriser.php, et je ne sais pas si ça a de l’importance

    Je précise que j’utilise spip 3 et le squelette Escal V3, avec les plugins suivants :
    Agenda 3.12.0
    API de vérification 1.0.5
    Balise #POPUP 1.4.1
    CFG 3.0.0
    Escal 3.77.24
    Fabrique 1.18.1
    Facteur 3.0.8
    Formidable 1.9.2
    Mini Calendrier 2.3.4
    Saisies 1.35.0
    SPIP Bonux 3.0.5
    YAML 1.5.1

    Merci !

    • Hop, réponses aux différents points :

      1. oui c’est possible, tu peux t’inspirer de ce que je fais dans le squelette geodiversite par exemple : démonstration - code source
      2. oui, la plupart des styles renseignés dans le source du kml sont appliquées par GIS
      3. non, le script de gestion des KMLs ne gère pas les KMZ
      4. je veux bien plus d’info sur l’erreur en question afin que je puisse la corriger

      ++

    • Jérôme

      Merci pour la réponse.

      Pour l’erreur, je ne peux pas t’en dire plus, c’est la seule chose qui s’affiche.

      Je n’arrive pas à appliquer l’exemple que tu me donnes. J’ai copié le code dans mon article, j’ai associé un fichier kml à l’article, mais rien ne s’affiche. Il y a sûrement quelque chose que je ne sais pas faire. Voici le lien : http://jbouffand.free.fr/spip.php?article173&var_mode=preview

    Répondre à ce message

  • 4

    Bonjour,

    je cherche à optimiser le chargement de ma page carte intéractive. Après avoir mis un système de cache et testé sans les données json, je me rends compte que la carte en elle-même est lourde. Comment puis-je optimiser un max l’affichage de ma page qui tourne, tourne, tourne... Merci :)

    • Salut, comme dirais Edgard sur IRC :

      < b_b‎ > @url
      < Edgard‎ > la boule de cristal est en panne : on va avoir besoin d’une url pour voir ton site et comprendre le problème

       :)

    • ^^" Je t’envois un p’tit mail avec le lien. Le site est en test.

    • Salut, désolé mais je préfère que les échanges restent publics afin que cela puisse profiter au plus de personnes.

    • Arf, je ne peux pas mettre le site en public :/ Mais je comprends ton point de vue. Bon comme je ne veux pas de problème, tant pis !

    Répondre à ce message

  • 3

    Bonjour et merci pour ce plugin !
    Pourriez vous me dire s’il existe un moyen de se géolocaliser à l’aide de ce plugin en cliquant sur un bouton situé hors de la carte par exemple ?

    • Salut, qu’entends-tu par « géolocaliser en cliquant sur un bouton » ? Tu souhaites ouvrir une infobulle ? Faire du geocoding ?

    • magic0176

      l’internaute clique sur les infobulles en regardant et en s’amusant avec la carte. Mais je souhaiterai un bouton pour « reset » ses recherches et revenir à la version initiale de la carte.
      Il habite LILLE, lorsque la carte s’affiche, elle est centrée sur lille. L’internaute se ballade et la carte affiche marseille. Je souhaiterai connaitre le lien à ajouter à un bouton pour qu’en un clic, l’internaute revienne sur sa vue geolocalisée initiale.

    • Salut, pour faire ça il faut récupérer l’objet js de la carte et jouer avec Leaflet :

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

      http://leafletjs.com/reference.html

      Le principe à appliquer peut-être : stocker la vue initiale de la carte (les bounds) dans une variable à l’init de celle-ci + ajouter un lien qui déclenche un fitbounds sur cette vue au clic.

      Wala le principe, à toi de joeur ;)

    Répondre à ce message

  • Mildraide

    bonjour,
    je viens de faire la mise à jour de spip et de gis4, lorsque je vais dans l’espace privé et que je regarde si les points apparaissent sur la carte, rien ne s’affiche. ( site en local )

    je suis reparti de zéro et je n’ai installé que spip, les pulgin saisie et gis4, avec une connexion sur ma base. Même constat. ( alors que ça fonctionnait avant ) - spip 3.0.14

    Pour que les point s’affichent, je dois aller dans le fichier /plugins/auto/gis/prive/squelettes/contenu/gis_tous.htm et enlever le code : objets=tous_avec_liens_espace_prive, recherche.

    Remarque : si je regarde les points unitairement, la carte s’affiche et le point geo également .....

    est ce un bug ?, comment y remédier ?

    Répondre à ce message

  • 4

    Bonjour b_b,
    Tout d’abord merci pour cet excellent plugin.
    J’aurais besoin d’aide, voilà en local l’installation s’est correctement déroulé. j’ai rentré tout mes points sans problème.
    J’ai installé spip 3.0.16 sur mon serveur OVH, j’ai activé tous les plugins dont GIS 4 et j’ai restauré ma base, mais j’obtiens des erreurs de squelette Erreur MySQL HY000 / 1 (voir l’image) .
    Encore merci pour ton aide. Pat

    • Salut, je devine avec ta capture d’écran que tu utilises Gis Geometries, ta question aurait plus sa place dans le forum de ce plugin :)

      Quel type de base de données utilises-tu ?

      Normalement tu devrais être en mysql, quelle est la version utilisée ?

      Comment as-tu restauré ta base ? Par phpmyadmin ou par un dump SPIP ?

      ++

    • Merci pour ta réponse,
      Ma version de Mysql est 5.6.11 et j’ai restauré la base par le dump Spip
      Pat

    • Ok, le problème vient bien de GIS Geometries :\ Ce dernier utilise l’extension de données spatiales de MySQL, mais les données des dumps de SPIP sont stockés dans une base SQLite. Du coup ça « casse » les dumps car SQLite ne gère pas les données spatiales par défaut...

      En attendant mieux, tu peux transférer ta base avec un dump mysql et cela fonctionnera sans pb.

    • Super, merci pour tes réponses
      Pat

    Répondre à ce message

  • 1

    Bonjour,
    Lorsque l’on créée un lien [->gisxx] SPIP cherche une page gis.html qui n’existe pas.
    Si je veux qu’au clic de se lien s’ouvre une boite modale avec la carte est-ce qu’il faut que je crée un modèle ou bien cette possibilité existe déjà ?
    Ce serait pratique par exemple pour le champ « lieu » d’un événement.

    Merci
    dd

    Répondre à ce message

  • 1

    Lorsque je crée un nouveau point la ville et le département ne sont pas toujours récupérés (tous les autres champs sont OK).

    Un clic sur Brest indique bien le code postal 29200 avec le champ ville Brest rempli alors
    qu’un clic sur Quimper donne code postal 29000 mais le champ ville est vide.

    Je ne comprends pas bien pourquoi.
    Est-ce que d’autres ont vu ça ?

    merci
    dd

    • Oui, le geocoder n’est pas « une science » exacte, cela peut arriver.

    Répondre à ce message

  • Dans gis_articles_branches.html

    « title » :[(#TITRE_GIS*|sinon#TITRE*|extraire_multi|supprimer_numero|json_encode)],

    Comment encoder pour avoir le lien sur le titre de l’article ?

    Répondre à ce message

  • Bonjour,

    Le plugin marche très bien cependant je ne suis pas satisfait du résultat. Lorsque l’on clique sur les points géolocalisés le titre de l’article s’affiche bien. Comment faire pour afficher dans l’info bulle le descriptif et un lien direct vers l’article ?

    Merci de vos lumières.

    Répondre à ce message

  • 2
    MINICIRCUL

    AJOUT DU TRAFFICLAYER ?

    Bonjour,

    Je cherche partout mais rien trouvé sur le sujet, comment ajouter le trafic temps réel, « trafficLayer » de Google Maps à GIS4, un élément à mettre dans « mes options » ? surcharger un fichier ?

    Par avance merci !

    • Salut, ce n’est pas prévu par le plugin, Il faut que tu cherches comment le faire du côté de Leaflet (la librairie utilisée par GIS).

    • MINICIRCUL

      Justement j’ai cherché ... et je n’ai rien vu !

    Répondre à ce message

  • 3
    julien

    PROBLEME DE CLUSTER

    Dans cette page http://www.cooperation-decentralisee.com/-Annuaire-des-collectivites- (en cours de développement), il y a un point sur la martinique (coord. -61.0672 / 14.6051).

    Dans ce cas, la carte des REGIONS marche si pas de cluster. Par contre, si cluster =oui, alors tout se bloque (un seul cluster au center de l’atlantique, alors que la distance est sup à 80 pixels...).

    Si je change le point martinique pour le mettre en France, alors tout marche bien, y compris avec cluster... Le json est bien valide via un validateur. Pas d’erreur dans la console JS. (sous firefox)

    Pour une autre carte (interco par exemple), tout marche bien... Mais DEPARTEMENT ne marche pas non plus... (même cas mais avec deux points isolés).

    Est-ce qu’il y a un bug quand un seul point est distant par rapport aux autres ?

    Une idée ?

    Merci !

    Julien

    • Salut, le pb vient certainement de l’utilisation simultanée de l’option autocenterandzoom et du cluster. Il y a un bug dans leaflet à ce sujet, le correctif devrait être disponible lors de la sortie de la prochaine version :

      https://github.com/Leaflet/Leaflet/issues/2021

      ++

    • julien

      Petit test supplémentaire : si je précise : maxClusterRadius=50 (normalement c’est 80 par défaut), alors les points éloignés marchent, mais le cluster ne marche pas TANT que je n’ai pas appuyé sur un des points éloignés... (pour REGIONS et DEPARTEMENT).

      Je laisse pour le moment le système avec maxClusterRadius=50.

    • julien

      Je confirme que c’est bien lié aux deux paramètres en même temps : autocenterandzoom et cluster.

      Merci de la réactivité !

      Une idée de la date pour la prochaine version ?

    Répondre à ce message

  • Bonjour,
    Lorsque je fais une sauvegarde et que je veux restaurer cette sauvegarde j’ai des erreurs sur le site car « Table spip_gis absente »

    SPIP 3.0.16
    Méthode de sauvegarde / restauration : ?exec=sauvegarder&action=sauvegarder
    spip_gis est bien cochée dans la liste des tables à sauvegarder

    Et au final la table n’est pas dans la base sql restaurée.

    Voilà
    dd

    Répondre à ce message

  • 3

    Bonjour,

    Pour un projet j’essaye d’afficher des point gis associés a des Organisations (du plugin contact_et_organisations).

    J’ai créé donc un fichier /json/gis_organisations.html

    Et j’appelle mon modèle en spécifiant l’objet=organisations, mais impossible d’afficher le point.

    Une idée ??

    • Hop,

      Une idée ??

      Une url ? :)

    • ben pas vraiment je suis en local pour le moment, :/

      En fait mon post est surtout pour être sur que l’on peut utiliser des objets hors natif spip

    • Bon après tests en tout genre, je remarque que j’arrive pas a produire le json sur des objets éditoriaux créés (la par exemple un objet vitrine), et avec les organisations pareil, la boucle ne produit rien.

      Pour que ça fonctionne, je doit forcer une jointure sur l’objet et le type dans la table gis lien en direct :

                      <BOUCLE_vitrines(GIS spip_gis_liens){objet=vitrine}{id_vitrine ?}{0, #ENV{limit}}{","}>
                      {"type": "Feature",
      		"geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
      		"id":"#ID_GIS",
      		"properties": {
      			"title":[(#TITRE_GIS*|sinon{#TITRE*}|extraire_multi|supprimer_numero|json_encode)],
      			"description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|json_encode)][
      			(#LOGO_GIS|gis_icon_properties)]
      		}}</BOUCLE_vitrines>

      a croire que le critère gis, ne fonctionne pas sur les objets « externes »...
      Ensuite je l’appelle avec :

      [(#INCLURE{fond=modeles/carte_gis,
                                  autocenterandzoom=oui,
                                  objets=vitrines,
                                  id_vitrine=1,
                              })]

      et la ça fonctionne ça me produit le json.et affiche la carte
      Autre truc bizarre si je finis pas par une virgule, après le dernier paramètre, ça marche pas.

    Répondre à ce message

  • 2

    Salut b_b,

    Sur une instal toute neuve (SPIP 3.0.16 et de nombreux plugins dont GIS 4.19.8 et GIS Geometries
    1.5.3), j’ai dans l’espace privé 3 erreurs de squelettes :

    Erreur SQL 1054
    Unknown column 'gis.geo' in 'field list'
    SELECT AsText(gis.geo) AS geometry FROM spip_gis AS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Z2lzPC9jb2RlPg=="></span> INNER JOIN spip_gis_liens AS L1 ON ( L1.id_gis = gis.id_gis ) WHERE (L1.objet = 'article') AND (L1.id_objet = 2) GROUP BY gis.id_gis LIMIT 0,1
    via squelette : ../plugins/auto/gis/v4.19.8/prive/inclure/gis_objet_formulaires.html et boucle : _test L2
    
    Erreur SQL 1054
    Unknown column 'gis.geo' in 'field list'
    SELECT (TRIM(IF(INSTR(titre, '<multi>') = 0 , TRIM(titre), CONCAT( LEFT(titre, INSTR(titre, '<multi>')-1), IF( IF(INSTR(TRIM(SUBSTRING(titre, INSTR(titre, '<multi>')+7, INSTR(titre, '</multi>') -(7+INSTR(titre, ...
    via squelette : ../plugins/auto/gis/v4.19.8/prive/objets/liste/gis_lies.html et boucle : _liste_gis L8
    
    Erreur SQL 1054
    Unknown column 'gis.geo' in 'field list'
    SELECT AsText(gis.geo) AS geometry FROM spip_gis AS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Z2lzPC9jb2RlPg=="></span> LIMIT 0,1
    via squelette : ../plugins/auto/gis/v4.19.8/prive/inclure/gis_objet_formulaires.html et boucle _gis L37

    Comment puis-je corriger « proprement » ce souci (de champ manquant à priori), stp ?
    T’en remerciant par avance.

    • Salut Pascal, il semble que l’installation de GIS Geometries ne soit pas bien passé sur ton site et du coup il manque le champ geo nécessaire à son fonctionnement dans la table spip_gis. Essaye de désinstaller/réinstaller Gis Geometries et surveille tes logs pour voir si un erreur est générée lors de l’installation.

      Ton site tourne bien sous MySQL ? Si oui, sous quelle version ?

      ++

    • Avec l’aide de b_b (que je remercie de son aide plus que précieuse), il s’avère que le problème vient d’un réglage dans le .htaccess du site dont la ligne « SetEnv PHP_VER 5_TEST » pose souci.
      Pour les techniciens c’est un souci, a priori, entre Zend Opcache et PHP 5.4.

      Il ne faut donc pas utiliser cette option et bien utiliser « SetEnv PHP_VER 5 » sur votre hébergement.

      En espérant que cela pourra servir à d’autres ;-)
      Encore un grand merci à b_b pour son aide.

    Répondre à ce message

  • 2

    Bonjour,

    J’ai l’impression que ce plugin ne permet que de faire des cartes géographique, ce qui est très bien !
    J’aimerais savoir si on peut changer les « fonds » de cartes pour faire le plan d’un festival ou d’un salon ?
    Ou alors fait-il s’orienter vers une solution plus adaptée ?

    Merci d’avance de vos réponses !

    Répondre à ce message

  • 15

    Bonjour,

    j’ai une question peut-être à côté de la plaque (peut-être même hérétique) mais y a-t-il un moyen d’afficher les frontières des départements français et des pays limitrophes sur la carte ? C’est la première fois que j’utilise ce plugin je n’ai pas trouvé d’options pour cela (mais j’ai réussi à l’utiliser et à le configurer en un temps record, il est vraiment excellent merci !)

    • je vois qu’il existe des fonds de carte qui ont déjà les tracés des départements, sur openstreet. Du coup, quelqu’un sait s’il est possible de choisir un nouveau fond de carte ?

      C’est ici : http://wiki.openstreetmap.org/wiki/WikiProject_France/Fonds_de_cartes#Contours_de_Communes_au_format_vecteur

    • Bonjour

      regarde pour l’intégré de ton côté et ensuite voir avec le développeur pour le faire sur le plugins de la zone.

    • Je n’ai malheureusement pas les compétences ni même un début d’idée pour savoir comment on fait :) J’imagine que je ne suis pas le premier à avoir besoin de tracer les limites des départements sur une carte ?

    • Salut, cet article devrait t’intéresser :

      http://contrib.spip.net/GIS-3-integration-de-cartes-KML

      ++

    • merci en effet, ça m’a l’air d’être une très bonne piste, je sais maintenant mieux vers où aller et avec quel moyen, je m’en vais potasser cet article tranquillement !

    • et en effet avec les bons tutoriaux c’est tout de suite plus simple. Voilà la carte que j’ai réussi à intégrer aujourd’hui, avec des couleurs différentes pour les régions et des frontières tracées entre les départements.

      http://www.anticorrida.com/La-carte-rouge-sang-des-corridas-en-France.html

      Du coup, je pourrais aider les autres qui rencontreront des problèmes sur le même sujet dorénavant :)

    • Super, content que tu sois arrivé à faire ce que tu voulais :)

      Petite remarque, pourquoi tu utilises le fond de carte google alors qu’il y en a plein d’autres qui sont basés sur des données libres (et qui du coup n’imposent pas à ton site l’insertion de la lib js proprio de google) ? En plus, le fond de carte de google « lague » un peu par rapport aux autres et fait perdre l’impression de fluidité lors du changement de zoom ;)

      ++

    • c’est simple, j’étais parti sur openstreet au départ, puis pour des raisons de plantages successifs (temps d’appel du script trop long pour un mutualisé semble-t-il), j’ai fini par me rabattre sur googlemaps qui réagit plus vite. De plus je trouve le fond de carte plus clair. Mais il n’est pas impossible que je revienne à openstreet si je reteste plus tard et que je n’ai plus les erreurs de script précédents (peut-être consécutifs à des tests que je faisais).

      Tiens, pendant que j’y suis, est-ce qu’il est possible d’appeler un marqueur spécifique dans la carte, grâce un lien dans l’article ? Une sorte d’ancre donc. Je viens de relire la doc, je ne vois rien là dessus, je vais faire un tour dans les commentaires je trouverais peut-être quelque chose sur ce sujet.

      et encore un grand merci !

    • Hop,

      j’étais parti sur openstreet au départ, puis pour des raisons de plantages successifs (temps d’appel du script trop long pour un mutualisé semble-t-il)

      Tu ne devrais pas avoir ce genre de problème de script avec GIS4 qui n’utilise pas l’API openlayers mais celle de leaflet dans tous les cas. On ne fait qu’appeler les tuiles osm depuis leaflet, rien de plus.

      Tiens, pendant que j’y suis, est-ce qu’il est possible d’appeler un marqueur spécifique dans la carte, grâce un lien dans l’article ?

      Non, cette fonctionnalité des versions précédentes n’a pas été portée sur la v4, mais pon petit me dit qu’un jour elle sera de nouveau dispo ;)

      ++

    • super ! si tu croises ton petit doigt prochainement, passe lui le bonjour et remercie le pour le tuyau :)

      et je vais repartir sur openstreet donc, merci !

    • Et hop, la fonction gis_focus_marker() est de nouveau disponible à partir de la version 4.4.0 :

      http://zone.spip.org/trac/spip-zone/changeset/70194

      Tu peux remercier guy car mon petit doigt avait la flemme de bosser aujourd’hui :p

    • un grand merci à tous les guy de la terre et au delà, il ne me reste plus qu’à regarder dans la zone si je comprends comment on utilise cette fonctionnalité.

    • Bonjour,

      Je voudrais pouvoir faire un lien vers une infobulle à partir d’une liste dans le pied de page (donc la carte n’est pas déjà chargée).

      Le code suivant m’affiche bien ma carte avec l’infobulle voulue mais au bout de 2 secondes à peine l’infobulle disparaît et tous les points de mon site s’affichent sur la carte.

      Voici mon code :

      <B_articles_map>
      <BOUCLE_articles_map(GIS){plat}{doublons}{id_article}{0,1}>
      <li><a href="#URL_PAGE{map}" onclick="javascript:gis_focus_marker(#ID_GIS,1);">[(#TITRE)]</a></li>
       </BOUCLE_articles_map>

      et l’inclure : [(#INCLURE{fond=modeles/carte_gis})]

      merci

      dd

    • Hop,

      Le code suivant m’affiche bien ma carte avec l’infobulle voulue mais au bout de 2 secondes à peine l’infobulle disparaît et tous les points de mon site s’affichent sur la carte.

      Oui c’est normal si tu cliques sur ton lien avant que la carte soit dipo (événement ready). Tu dois pouvoir améliorer ton code en te branchant sur l’événement ready déclenché par les cartes, cf la partie API Javascript de cette page :

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

      ++

    • Bonjour,

      Merci de ta réponse. Je vais potasser car comme ça je ne sais pas « brancher » le code javascript à mon lien.

      dd

    Répondre à ce message

  • 2

    Bonjour,

    petite question pratique, comment vérifier qu’un fichier Json est bien généré ? Mon code JS ne m’affiche pas les coordonnées d’un Json qui marche (gis_articles_branche) du coup je ne peux pas vérifier un fichier qui exploite des données XML...

    #SET{xml, monfichier.xml}
    #SET{trier,#ARRAY}
    <BOUCLE_xml(DATA){source simplexml, #GET{xml}}
    {datapath root/children/resultat/0/children/sit_liste}>
    
    #SET{photo_appel,''}
      <BOUCLE_photos(DATA)
    {source tableau,#VALEUR{children/criteres/0/children/crit}}
    {attributes/clef_critere = 30000279}>
    #SET{photo_appel,#VALEUR{text}}
    </BOUCLE_photos>
    
    [(#SET{trier,[(#GET{trier}|push{
     [(#ARRAY{
               nom,#VALEUR{children/nom/0/text},
               lat,#VALEUR{children/latitude/0/text},
               photo,#GET{photo_appel},
               long,#VALEUR{children/longitude/0/text}
     })]})]})]
    </BOUCLE_xml>

    Mon Json :

    <BOUCLE_carto(DATA)
    {source tableau, #GET{trier}}{","}>     
    {
    "type": "Feature",
    "geometry": {
    "type": "Point", 
    "coordinates": [[(#VALEUR{long})], [(#VALEUR{lat})]]},
    "id":"#VALEUR{produit}",
    "properties": {
    "title":[(#VALEUR{nom}json_encode)],
    "description":[(#VALEUR{photo}|wrap{''}|sinon{''}|json_encode)]
    }
    }
    </BOUCLE_carto>

    Mon modèle :
    #MODELE{carte_gis,objets=heb_lei,limit=250,fullscreen=oui,cluster=oui}

    J’ai pas l’impression d’avoir d’erreur or rien à l’affichage. Impossible de voir si ça vient de ma virgule ou pas, d’une valeur etc...

    merci

    • Hop, deux moyens pour vérifier qu’un json est valide :

      http://jsonlint.com/

      https://addons.mozilla.org/fr/firefox/addon/jsonview/

      ++

    • Merci je commence à voir le bout. Par contre après recherche je n’ai pas trouvé réponse à une question. Comment puis-je mettre des données différentes dans le même fichier json ? Je souhaite mélanger des données gis reliées à des articles avec des points libres d’une base xml. Jusque là les deux codes dans le même fichier fait tout bugguer (rien ne s’affiche).

    Répondre à ce message

  • 9

    Bonjour,
    Petit problème d’affichage que je ne sais pas résoudre. J’affiche bien les cartes de mes points géolocalisés mais... mais pas le descriptif !
    Un exemple : http://fonds-saintyves.fr/Paroisses-Saint-Yves-en-France
    Je suis en 3.0.16 et GIS 14.19.7
    Le code dans la page

    [(#REM) Cartographie]
    <BOUCLE_cartes(GIS){id_article}{0,1}>
         [(#INCLURE{fond=modeles/carte_gis, autocenterandzoom=oui, id_article})]
    </BOUCLE_cartes>

    Merci d’avance... ;-)

    • Salut, perso je vois bien un descriptif dans chacune des bulles sous friefox. Peut-être que ton navigateur n’arrive pas à ouvrir les bulles à cause des deux erreurs javascript présentes dans ta page ?

    • Deux erreurs ! Argh... Je regarde, merci !

    • Je vois bien les infos bulles mais mes connaissances en JavaScript étant limites je ne vois pas d’une part où il y a les erreurs, d’autre part comment les corriger. D’autant plus que je n’ai - sauf erreur de ma part - rien rajouté moi-même...

    • Je vois bien un descriptif dans tes infobulles, du coup je ne comprends pas quand tu dis :

      mais pas le descriptif !

    • Euh, j’ai tapé un peu vite : pas le descriptif sur la page. Je les ai vus à une époque...Avant que je change le squelette, l’actuel étant très inspiré de la distribution mais charté autrement.

    • Désolé mais je ne comprends pas de quel descriptif tu parles :\

    • De celui en pièce jointe, le descriptif du point géolocalisé.

    • Je crois que le mieux serait que tu viennes en discuter sur http://spip.net/irc

    • OK, mais pas ce soir ;-)

    Répondre à ce message

  • 1

    Bonjour,
    J’ai crée un nouvel objet spip avec le plugin fabrique et je veux utilisé le plugin gis pour cet nouvel objet. tout se passe bien, quand on cherche a affiché un objets géolocalisé sur la carte, mais si j’essaie d’appeler la carte avec des mots clé ca le prend pas en compte et pourtant l’objet est bien attaché a des mots clés.
    1/ pour lister les objets en focntion des mots clés cela ne pause pas de problème par contre quand il s’agit de les afficher sur une carte ça marche pas !
    Y’a til des modifs a faire au niveau du plugin pour un nouvel objet spip ??

    Merci de votre lumière !

    • Bonjour,
      Personne n’a une réponse à ma question ? :)

    Répondre à ce message

  • 4

    Bonjour,

    Sur la dernière version de SPIP et GIS installé « automatiquement », je constate un problème lors de la création de points géolocalisés : le reverse geocoding fonctionne mais la mise à jour des champs adresse, code postal, ville... est aléatoire, que ce soit sur l’interface privée ou sur la partie publique.
    J’ai bien une réponse (observable avec Firebug) :
    « place_id » :« 9147000732 »,« licence » :"Data \u00a9 OpenStreetMap contributors, ODbL 1.0. http:\/\/www.openstreetmap.org\/copyright« , »osm_type«  : »way« , »osm_id«  : »229728801« , »lat«  : »45.03910785« , »lon«  : »3.15549104701771« , »display_name«  : »Massif central, Saint-Georges, Saint-Flour, Cantal, Auvergne, France m\u00e9tropolitaine, 15100, France« , »address«  : »parking«  : »Massif central« , »city«  : »Saint-Georges« , »county«  : »Saint-Flour« , »state«  : »Auvergne« , »postcode«  : »15100« , »country«  : »France« , »country_code«  : »fr"

    Mais les champs ne se remplissent pas ; je n’ai aucune erreur javascript signalée par Firebug.

    J’ai essayé de modifier la conf, de désinstaller/réinstaller mais le problème persiste. Par contre, si je vide le cache et que je recommence l’opération cela fonctionne, du moins sur la partie privée du site. Même si je désactive le cache de SPIP, le problème apparaît de façon assez aléatoire.

    Une idée ? Merci beaucoup !

    • Après d’autres essais, je viens de constater qu’après suppression du cache, la création d’un nouveau point amène lors du premier clic sur la carte toujours la même réponse (quel que soit l’endroit où je clique) :
      jQuery17208022375625066718_1393249379991(« place_id » :« 9147000732 »,« licence » :"Data \u00a9 OpenStreetMap contributors, ODbL 1.0. http:\/\/www.openstreetmap.org\/copyright« , »osm_type«  : »way« , »osm_id«  : »229728801« , »lat«  : »45.03910785« , »lon«  : »3.15549104701771« , »display_name«  : »Massif central, Saint-Georges, Saint-Flour, Cantal, Auvergne, France m\u00e9tropolitaine, 15100, France« , »address«  : »parking«  : »Massif central« , »city«  : »Saint-Georges« , »county«  : »Saint-Flour« , »state«  : »Auvergne« , »postcode«  : »15100« , »country«  : »France« , »country_code«  : »fr")

      Pourtant, ce n’est pas logiquement le point par défaut dans la configuration de GIS.

      Au deuxième clic par contre, j’ai bien la bonne remontée d’informations (adresse, ville...)

      Merci pour votre aide.

    • Re-bonjour,

      Je viens de retester sur une install fraîche de SPIP 3.0.15 [21231] avec installation du seul plugin GIS via le mécanisme automatique de SPIP ; GIS est en version 4.18 et Saisies pour formulaires en 1.39.3.

      Je n’ai pas touché au squelette, c’est donc le squelette-dist qui prend en charge l’affichage ; j’ai une page dans laquelle j’ai ce bout de code :

      #SETurlart, #URL_ARTICLE

      #SETid_gis,#ID_GIS

      #SETid_gis,nouveau
      /B_unpoint>
      #FORMULAIRE_EDITER_GIS#GETid_gis,’article’,#ID_ARTICLE,#GETurlart

      La carte s’affiche bien, le geocoding fonctionne mais les champs adresse,code postal, ville... restent vides...
      Encore un problème de cache mais je me vois mal vider le cache tout le temps ; d’autant plus que même en désactivant temporairement le cache, le problème surgit.

      Une chose est désormais sûre : ce n’est pas un problème lié à un autre plugin. Mais j’ai regardé les commentaires et nulle part je ne vois ce genre de problème.

      Une idée ? Merci beaucoup

    • Problème similaire avec GIS 4.19.2 : le géocodage marche bien sous /ecrire mais rien ne se passe dans une page publique avec le formulaire d’édition de point.

      L’action gis_geocoder_rechercher est bien déclenchée, le résultat renvoyé est bien le bon, mais rien ne se met à jour dans la page ;ni le champs ni l’icône de position.

      Par contre, un clic sur la carte met bien à jour les infos et le point...

      Et sur un autre site, tout marche bien, mais avec la version GIS d’avant, qui passait via http://open.mapquestapi.com/nominatim/v1/search

    • Salut, le bug est corrigé dans la version 4.19.3 qui sera dispo d’ici une ou deux heures :

      http://zone.spip.org/trac/spip-zone/changeset/81350

      Une personne (non je ne citerai pas de nom ^^) avait introduit une modification intéressante dans le plugin mais celle-ci n’était pas pleinement testée et cassait le retour du geocoder.

    Répondre à ce message

  • 7

    Encore une question :

    Dans cette page : http://cooperation-decentralisee.com/spip.php?page=fiche_partenariat&id_partenariat=3

    il y a deux cartes, avec deux id_carte_gis différent. Si les cartes se positionnent bien, l’affichage du picto est aléatoire : parfois l’un parfois l’autre, rarement les deux.

    Aucune erreur javascript...

    Une idée ?

    Le code est ici : http://cooperation-decentralisee.com/squelettes/fiche_partenariat.html

    Merci.

    • Une concurrence dans les appels javascript pour l’affichage des icônes ?

    • Cela ressemble au bug que rencontre reno, perso j’affiche deux cartes sans problème sur cette page de démo :

      http://labo.eliaz.fr/spip.php?article84

      Dites moi si les cartes de cette démo posent problème de votre côté.

    • Effectivement les cartes s’affichent chez moi depuis un navigateur firefox avec leurs bulles.
      Cependant les bulles ne sont pas cliquables, pas de descriptif accessible.
      Par contre je me rends compte que ce ne sont pas des cartes liés à des environnements d’articles.

      Donc sans #env http://ramimed.com/spip.php?page=test
      on a les bulles mais pas les descriptifs en haut et en bas (uniquement en bas).
      Sinon
      http://ramimed.com/spip.php?page=article1&id_article=5
      avec une carte lié à un article + une carte générique on a un problème de bulle+descriptif.

    • Hop,

      Effectivement les cartes s’affichent chez moi depuis un navigateur firefox avec leurs bulles. Cependant les bulles ne sont pas cliquables, pas de descriptif accessible.

      Tu parles bien de la page de démo que je citais ? Certains points de la carte n’ont pas de descriptif renseigné, mais si je clic sur celui situé à l’embouche de la Garonne je vois son titre et descriptif sur les deux cartes.

      Pour ta démo : étrange...sur la page du premier lien j’ai bien un titre et descriptif pour le point nommé Alexendria en haut et en bas.

    • La page de démo avec les deux cartes marche très bien chez moi.

      Par contre, cela bloque sur mes deux cartes. c’est aléatoire, mais toujours au moins une icône affichée. Changer le type de carto ne change rien.

      Est-ce que la page http://cooperation-decentralisee.com/spip.php?page=fiche_projet&id_projet=1
      marche pour vous ? (deux carte dans la colonne de droite)

      Merci de votre aide
      Ju

    • L’URL que tu viens d’envoyer est vide

    • Désolé c’est corrigé, un prb de login. La page est en clair (la colonne de droite au moins).

      Attention de temps en temps les deux cartes marchent, mais pas plus dans 50% des cas.

    Répondre à ce message

  • 5

    Bonjour,

    Dans une page spip, je propose pour un article NON publié de le géolocaliser. Tout marche bien si je suis administrateur, mais aucun point n’est mémorisé si je suis visiteur.

    Est-ce que le formulaire d’édition a une limite pour les visiteurs ?

    Voici le code :

    BOUCLE_principale(ARTICLES)id_articlestatut IN prop,prepa,publie,refuseid_auteur=#SESSIONid_auteur>
    BOUCLE_unpoint(GIS)id_article0,1>
    #SETid_gis,#ID_GIS
    /BOUCLE_unpoint>
    #SETid_gis,nouveau
    //B_unpoint>
    #FORMULAIRE_EDITER_GIS#GETid_gis,’article’,#ID_ARTICLE, spip.php ?#ENVurlretour, page=admin_gestion_doc&id_article=#ID_ARTICLE
    /BOUCLE_principale>

    Merci de votre aide.
    Julien

    Ps à b_b : merci pour la modification du paramètre autocenterandzoom pour le niveau de zoom.

    • Précision : les 2 fonctions d’autorisation de GIS contiennent bien 0minirezo, 1comite et 6forum.
      Pas trouvé de restriction sur webmestre ou bien l’état de l’article dans le code...

    • Précision 2 : si l’article a un premier point GIS avec un compte admin, alors le compte visiteur peut modifier ce point.

      Mais à la création de l’article, le visiteur ne peut pas lui rattacher de point. Alors que l’admin peut...

    • Petite relance !

      Personne n’a constaté cette différence entre statut 0minirezo et 6forum pour la création de point sur un article ??

      Help !

    • Ton problème vient de autoriser_gis_lier() qui vérifie qu’on est autorisé à modifier l’objet à lier :

      http://zone.spip.org/trac/spip-zone/browser/_plugins_/gis/trunk/gis_autoriser.php#L65

      Tu peux surcharger cette fonction suivant tes besoins.

      ++

    • Merci pour l’efficacité et la réactivité ! Et prendre du temps pour nous...

      Tout marche bien.

      GIS4, mon plugin préféré !!

    Répondre à ce message

  • 3

    Je coince sur un squelette avec 2 cartes. OK chacune a son id_carte_gis. Elles s’affichent toutes les 2 (la deuxième est en bas de page) MAIS seule la carte du bas a ses points réactifs (c’est à dire le titre cliquable s’affiche lorsque l’on clique sur la bulle).

    http://ramimed.com/spip.php?page=article1&id_article=5&var_mode=recalcul

    Lorsque je supprime la carte du bas pour le test alors celle du haut fonctionne avec son lien réactif, je suppose donc un conflit entre les deux cartes...

    carte haut code


    [(#INCLUREfond=modeles/carte_gis,
    id_carte_gis=1,
    lat=#LAT,
    lon=#LON,
    zoom=8,
    objet=articles,
    id_article,
    height=205px
    )]

    et en bas elle est appelé via inclure

    [(#MODELEcarte_gis, id_carte_gis=2, zoom=5, limit=100, scale=non, height=520px, width=100%, centrer_auto=oui)]
    Désolé si c’est un classique, je n’ai rien trouvé à ce sujet...

    • Hop,

      Pour commencer ta page affiche deux erreurs js :

      uncaught exception: Flowplayer cannot access element: player1

      TypeError: this._northEast is undefined
      http://ramimed.com/prive/javascript/jquery.js
      Line 1951

      Je pense que c’est la deuxième erreur qui plante le js de ta page, je vais faire quelques tests de mon côté. Hésite pas à passer sur spip.net/irc pour en discuter.

    • Il y a un problème dans ton premier appel :

        objet=articles,
        id_article,

      devrait être :

        objet=articles,
        id_article=#ID_ARTICLE,

      Je crois bien que le problème vient de l’option centrer_auto=oui dans ton premier appel. Peux-tu tenter de la virer pour voir si ça fixe le bug ?

    • Je remarque que tu n’utilises pas la dernière version de GIS, une petite mise ne ferait pas de mal ;)

    Répondre à ce message

  • 3

    Bonjour,

    j’ai un petit bug avec l’objet « point_libre » et l’utilisation de longitude et latitude dynamiques depuis un fichier xml.

    Si je mets les valeurs réelles je n’ai aucun soucis, mais mes #VALEURlat et #VALEURlon me retournent une carte invisible. Les valeurs s’affichent très bien sur la page ceci dit en passant.

    [(#INCLURE{fond=modeles/carte_gis,
        objets=point_libre,
        zoom=12,
        lat=#VALEUR{latitude},
        lon=#VALEUR{longitude}
      })] 

    Merci

    • Hop,

      Un lien vers la page en question serait bien utile pour t’aider.

      ++

    • Pô possible je suis en local encore ^^’

    • Bon j’ai compris le soucis ! Mes coordonnées comprennent des virgules et non des points. Je pense que cela mis au clair ça ira mieux. Maintenant faut que je trouve la recette miracle pour changer la virgule en point.

    Répondre à ce message

  • Bonjour

    peut-on insérer un code gis depuis le contenu d’une rubrique ? car je n’arrive pas :
    <carte_gis1|objets=articles_branche|id_rubrique=1>

    pour afficher ma carte je suis alors obligé de créer un article (le 213) puis je mets dans le squelette de la rubrique :

    <BOUCLE_art213 (ARTICLES) {id_article=213}>
    #TEXTE
    </BOUCLE_art213>

    mais j’aimerai l’afficher via l’edition de la rubrique pour que cela soit facilement modifiable par le redacteur

    Merci pour votre aide

    Répondre à ce message

  • 12

    Pourquoi GIS 4 n’affiche sur la partie publique uniquement le point géolocalisé par défaut ?
    Tous mes articles ont des points géolocalisés, je les vois même dans la partie administrateur, mais sur la partie publique, ce point ne s’affiche pas. D’ailleurs il n’y a même aucun point.
    Quelqu’un aurait une explication ?

    Je précise que tout fonctionnait jusqu’à présent, j’ai fais une mise à jour vers Spip 3 puis de GIS vers GIS 4
    Merci.

    • Salut, pas facile de t’aider sans lien vers une page qui présente le problème...

    • Ah oui, ça sera mieux comme ça.
      Voici un exemple de page : http://www.gorgesdutarn.net/Hotel-Les-Detroits-La-Malene-Gorges-du-Tarn
      mais tous les hébergements du site ont le même problème, donc je penche pour un morceau du code de GIS qui ne fonctionne pas de la même manière avec GIS4 mais je ne sais pas quoi.

      Merci d’avance en tout cas

    • D’après le source de ta page, tu passes les paramètres suivants à la carte :

      "env":{"id_article":"1616","id_rubrique":"4"},

      Il suffit de passer uniquement id_article pour afficher les points attachés à l’article. Essaye de retirer le paramètre id_rubrique dans ton appel du modèle pour voir.

      ++

    • Effectivement y’a du mieux, par contre, la carte reste centrée sur le point par défaut. Faut-il rajouter un bout de code pour lui dire de centrer sur le point gis de l’article ?
      Actuellement j’ai ça : [(#MODELEcarte_gisid_articletype=physique)]

    • Je reviens sur mon message précédent.
      Mon point géolocalisé est bien là mais la carte est toujours centrée sur mon point par défaut, si je ne mets pas de point par défaut, la carte ne s’affiche pas...
      Un exemple : http://www.gorgesdutarn.net/L-ORCHIDEE-La-Retournade-Causse
      Le point existe mais il faut dézoomer pour le voir.
      Quelqu’un a déjà corrigé ce problème ?

    • Merci, J’ai essayé ça
      [(#INCLUREfond=modeles/carte_gis, lat=#LAT, lon=#LON, objet=articles, id_article=#ID_ARTICLE, autocenterandzoom=oui, zoom=11)]
      mais ça zoom trop pour moi,
      si j’enlève autocenterandzoom, ça ne fonctionne pas
      j’imagine que c’est lat=#LAT et lon... qui est censé centrer la carte sur le point géoloc...
      Je ne comprends pas pourquoi le module ne propose pas la solution directement.

    • Bonjour

      Pourquoi ne pas réduire zoom dans ce cas ?

    • Une fois de plus, pour centrer la carte sur l’unique point lier à l’article en cours avec un zoom à 5 par ex :

      <BOUCLE_gis(GIS){id_article}>
      [(#INCLURE{fond=modeles/carte_gis,
         lat=#LAT,
         lon=#LON,
         zoom=5,
         objet=articles,
         id_article})]
      </BOUCLE_gis>

      La boucle permet de récupérer les infos du point en question (il n’y en a qu’un d’après ton besoin) et de passer ses coordonnées au modèle.

    • Hop,

      Je ne comprends pas pourquoi le module ne propose pas la solution directement

      Certainement parce que personne n’avait pris le temps de l’améliorer sur ce point, c’est chose faite depuis la version 4.19.2 :

      Version 4.19.2 : amélioration de autocenterandzoom
      Ne pas utiliser fitBounds si la carte n’affiche qu’un seul point et qu’on passe le paramètre autocenterandzoom. Ainsi on centre la carte sur les coordonnées du point et on zoom sur le niveau passé en paramètre (ou celui par défaut).

      http://zone.spip.org/trac/spip-zone/changeset/81063

      De rien :)

    • Ouf,

      Merci, ça fonctionne enfin !
      Merci encore.

    • Bonjour,

      Je confirme cela fonctionne. J’utilisais une boucle ancienne mode :

      <BOUCLE_test(GIS){id_article}{0,1}>
       [(#INCLURE{fond/modeles/carte_gis,objets=articles,id_article=#ID_ARTICLE,lat=#LAT,lon=#LON,
      autocenterandzoom=oui,height=200px,control_type=non,maxZoom=12})]
       </BOUCLE_test>

      et du coup après la mise à jour du plugin mes cartes ne s’affichaient plus du tout. Réparé ! ...grâce au forum.

      Merci

      dd

    Répondre à ce message

  • 3

    Bonjour,

    J’utilise Gis 4 pour localiser des points en rapport avec mes articles.
    Tous les points créés le sont avec un zoom de 15 ou 16.
    Or à l’affichage sur le site public, le zoom est systématiquement au maximum (soit 18).
    J’aimerais savoir comment afficher les points avec les zooms choisis dans l’interface privée.
    Voici les éléments de ma boucle :

    #INCLURE
    fond=modeles/carte_gis,
    objets=articles,
    id_articlecentrer_auto=oui,
    fullscreen=oui,
    scale=oui,
    overview=oui,
    limit=333,
    width=99.70%

    Merci

    • Salut, comme son nom l’indique le paramètre autocenterandzoom permet de définir le centre et le zoom de la carte automatiquement. Si tu veux un zoom spécifique, il ne faut pas utiliser ce paramètre et spécifier le centre et le zoom manuellement.

    • Salut,

      Je n’utilise pas le paramètre autocenterandzoom.
      N’y a-t-il pas moyen de tenir compte du paramètre zoom spécifié dans l’interface privée ?

    • Si d’après ce que tu dis, tu utilises centrer_auto=oui (qui est la même chose que autocenterandzoom).

    Répondre à ce message

  • 2

    Bonjour,

    J’affiche :

    [(#MODELEcarte_gis, height=200px, objets=collectivite, id_objet=#ID_COLLECTIVITE, zoom=8)]

    (j’ai ajouté la possibilité d’avoir un objet ’collectivite’).

    Tout marche bien, mais la carte s’ouvre en centrant sur la position de base donnée par la config, donc 0,0 dans mon cas, et non sur le point lié.

    Si je rajoute centrer_auto=oui, cela marche, mais cela zoom beaucoup trop, la carte est vide en afrique...

    Comment centrer la carte sur le point et zoomer à 8 par exemple ?

    Merci de votre aide
    Julien

    • Chapeau pour la réactivité ! Et désolé de ne pas avoir plus épluché le forum...

      Pas con pour l’astuce. Pour éviter cette boucle/requête de plus, pourquoi ne pas avoir fait un param uniquement pour centrer sur le point (sans zommer) ?

      Je chipote, car ce plugin est un de ceux que j’utilise le plus. Merci encore et bravo !

      Julien

    Répondre à ce message

  • 5

    Salut,

    Est-il possible sur la partie publique de faire des recherches dans les titres des points géolocalisés ?

    J’affiche les points de cette manière :

    <BOUCLE_articles(ARTICLES){gis}{recherche?}{branche}{par titre_gis}{pagination}>

    Mes points représentent des boutiques géolocalisées, ces boutiques étant associées à des catégories qui elles sont représentées par des ARTICLES Spip.

    Or, mon problème est que la recherche n’est effectuée que dans les titres des articles auxquels sont associés les points géolocalisés, alors que je souhaiterais également que cette recherche soit effectuée dans les titres des points, afin qu’un utilisateur puisse rechercher une boutique par son nom.

    Merci d’avance pour vos conseils !

    atoom

    • Hop, si tu veux que la recherche porte sur le informations des points il suffit de boucler sur ceux-ci (et non sur les articles).

    • Merci, ça a l’air de bien fonctionner quand je suis dans un contexte d’article (j’affiche tous les points liés à l’article), mais dans mon cas je cherche à afficher tous les points associés à une même branche, et là la boucle ne me retourne aucun résultat :

      <BOUCLE_articles(ARTICLE){gis}{branche}{recherche?}{pagination}>

      => Me retourne tous les points liés aux articles de la branche courante

      <BOUCLE_articles(GIS){branche}{recherche?}{pagination}>

      => Ne me retourne aucun résultat

    • @b_b

      J’ai essayé plusieurs paramètrages, notamment en passant id_secteur, ou id_rubrique en paramètres de la boucle mais rien n’y fait : elle ne veut pas me retourner des objets GIS qui sont liés indirectement à ces objets via des articles.

      Je m’y prends mal ou ce n’est pas faisable en l’état ?

    • J’ai l’impression que tu te compliques la vie, il y a déjà tout ce qu’il faut dans le plugin pour afficher les articles d’une branche, cf cet extrait de la doc présente sur cette même page :

      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).

      Regarde comment est fait le squelette json/gis_articles_branche.html si tu veux t’inspirer pour bidouiller.

    • Bein si je fais la même chose que dans json/gis_articles_branche.html, je retourne à la case départ, à savoir :
      <BOUCLE_articles(ARTICLE){gis}{branche}{recherche?}{pagination}>

      => Ce qui me permet bien d’afficher les points géolocalisés correspondant à ma branche courante, mais pas de faire des recherches dans leurs titres.

    Répondre à ce message

  • 6

    Bonjour voici ma config : SPIP 3.0.14 / GIS 4.18 / SAISIES 1.39.3
    or j’ai un message « noajax » quand j’essaye de configurer GIS via ecrire/ ?exec=configurer_gis

    Auriez-vous une piste pour résoudre ce problème ?

    • Peut-être un problème avec le plugin saisies et le fait d’avoir activé HTML5 dans la config de SPIP ?

    • J’ai désactivé le HTML5 mais ça ne résout pas le problème. Concernant SAISIES puisque celui-ci est obligatoire, j’ai recherché une version 1.19.0 mais je ne trouve pas d’archives de ce plugin. J’ai également désactivé chaque plugin et activé uniquement GIS + SAISIES mais toujours ce problème d’ajax apparemment...

    • Hop, tu dis avoir désactivé HTML5, c’est donc que c’était actif ? Si oui, as-tu vidé le cache du site avant de tester la conf GIS de nouveau ?

      Pour saisies il est disponible depuis la page de gestion des plugins ou depuis plugins.spip :

      http://plugins.spip.net/saisies.html

      La version 1.19.0 est la version min qu’il nous faut, si tu as la dernière en date cela fonctionnera très bien.

    • Oui HTML5 était actif, mais je suis passé en HTML 4, j’ai vidé les caches depuis l’interface privé et tous les caches via FTP également....mais toujours et encore : noajax

    • Hmm regarde peut-être la solution que j’avais trouvé pour ce cas :

      http://contrib.spip.net/GIS-4?debut_comments-list=-1#forum467878

      ++

    • OK ! Problème résolu, indeed le problème provenait des espaces du fichier mes_options.php

      Merci !

    Répondre à ce message

  • 7

    Bonjour, je débute avec ce plugin, que j’ai installé sous SPIP 3.0.13.

    Pour le moment, il ne semble pas gérer la transparence des icônes (voir ici : http://www.recit.net/spip.php?page=agendacarte).

    Ai-je raté une manipulation lors de sa configuration ?

    Merci d’avance pour votre aide,

    Samuel

    • Salut, oui on ne gère pas la transparence des logos des points pour l’instant. Je vais voir si je peux ajouter ça dans les squelettes qui génèrent le JSON pour alimenter les cartes.

    • Ok, merci pour la réponse. Est-ce que le « quadrillage » blanc que l’on voit est « normal » lui aussi ?

    • Non, cela vient d’une de tes css qui cible de façon « trop large ».

    • Est-ce que tu peux être un peu plus précis ? Qu’entends-tu par « trop large » ? Merci.

    • Firebug me montre que cette règle est la fautive ;)

      #conteneur img {
        background: none repeat scroll 0 0 #FAFAFA;
        border: 1px solid #DCDCDC;
        padding: 8px;
      }
    • Super, merci beaucoup pour le coup de main !

    • Hop,

      Et voilà, la version 4.15.0 corrige le bug sur la transparence des logos persos tant que le logo ne dépasse pas 44px de largeur :

      « Version 4.15.0 : simplification des squelettes JSON, filtre |gis_icon_properties

      • Nouveau filtre |gis_icon_properties qui renvoie les propriétés JSON de l’icône d’un point.
      • Petit changement de comportement pour les logo des points. Si le logo ne dépasse pas 44px de largeur, on ne le retaille pas. Ainsi on permet aux utilisateurs d’utiliser des marqueurs persos en respectant leur taille et transparence. »

      http://zone.spip.org/trac/spip-zone/changeset/80095

    Répondre à ce message

  • 2

    Bonjour et au secours :)

    Je ne sais pas ce qui m’a pris, mais je regrette bcp :)

    J’ai voulu testé un truc ajax et j’ai mis ma carte dans une <div class="ajax"></div>...Voici mon code

    <div class="ajax">
     [(#INCLURE{fond=modeles/carte_gis,
       objets=articles,
        fullscreen=oui,
       controle_type=oui,
       overview=oui,
        width=750px,
        height=600px,
        limit=1000,
    })]
    </div>

    Alors j’ai enlevé le div, vider le cache mais c’est toujours là, a chaque fois que je clique sur le bouton pour rechercher la carte disparait. Voici le lien si quelqu’un peut m’aider [lien->http://imediadakar.com/osen/spip.php?page=carto

    Merci

    Répondre à ce message

  • 9

    Hello,

    suite une longue discussion avec b_b (que je remercie encore) hier, je partage mes nouvelles connaissances sur GIS.

    Il peut parfois être utile d’ajouter de nouveaux paramètres qu’on pourra réutiliser ensuite dans le fichier qui appelle les points sur la carte (json/gis.html) pour restreindre le nombre de points affichés.

    Prenons par exemple une carte de France qui regrouperait toutes les personnes végétariennes de France, chaque point serait un auteur dans SPIP. Chaque auteur serait lié au groupe de mots clés « départements » (disons que c’est id_groupe=5). Ainsi si on veut restreindre l’affichage des points au seul département du Nord (disons que c’est id_mot=59), GIS gère déjà ça très bien, grâce au paramètre id_mot que l’on peut faire passer à l’appel de la carte.

    On aurait donc quelque chose qui ressemblerait à ça :

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

    Par contre, ça se complique si en plus de restreindre la recherche au département du nord, on voulait également faire passer un autre paramètre.

    Disons par exemple que mes auteurs sont liés à un deuxième groupe de mots clés qui s’appellerait « Régime alimentaire » (id_groupe=6) qui contiendrait les mots clés suivants : « végétarien » (id_mot=100), « végétalien » (id_mot=101), « vegan » (id_mot=102).

    Maintenant je voudrais restreindre ma recherche aux personnes qui vivent dans le département du Nord et qui ont adopté un régime alimentaire végétalien. Dans la version actuelle de GIS, c’est impossible de passer des paramètres non prévus.

    [(#INCLURE{fond=modeles/carte_gis,
    objets=auteurs,
    id_mot=59,
    id_mot2=101})]

    id_mot2 ne parviendra jamais jusqu’à votre squelette json/gis.html . Vous ne pourrez pas exploiter ce paramètre en tant que variable.

    Mais comme le code est très propre, ce petit problème n’en deviendra bientôt plus un, puisqu’il vous suffit d’aller dans le répertoire du plugin GIS, et d’ouvrir l’ouvrir le fichier gis_fonctions.php qui se trouve à la racine. Dans les environs de la ligne 350 (GIS 4.11.1) vous trouverez une variable qui déclare un tableau de variables. Elle ressemble à quelque chose comme ça :

    $keys = array("id_objet"," id_secteur", "id_parent", "media", "recherche", "mots", "pays", "code_pays", "region", "ville", "code_postal");

    Si vous avez besoin de paramètres supplémentaires, c’est ici qu’il faudra les déclarer. Par exemple pour que les paramètres que je veux faire passer soient plus explicites, je vais les nommer « departement » et « regime », ma ligne sera donc ainsi :

    $keys = array("id_objet", "id_secteur", "id_parent", "media", "recherche", "mots", "pays", "code_pays", "region", "ville", "code_postal", "departement", "regime");

    ATTENTION, cependant car c’est une modification dans le corps du plugin, à chaque nouvelle mise à jour, il faudra penser à renouveler cet ajout.

    Maintenant il est possible de transmettre ces paramètres.

    [(#INCLURE{fond=modeles/carte_gis,
    objets=auteurs,
    departement=59,
    regime=101})]

    Pour récupérer ces paramètres dans gis.html, il suffira d’appeler #ENVdepartement et #ENVregime, c’est aussi simple que cela.

    Ensuite dans votre squelette json/gis.html, il ne vous reste plus qu’à faire les boucles correspondantes à ces variables. Ce n’est pas nécessairement le plus simple, mais ce n’était pas l’objet de ce tuto :)

    Pour information, si j’ai eu besoin d’ajouter des paramètres, c’est que je viens de travailler sur une carte qui contenait un moteur de recherche à 4 paramètres supplémentaires (deux groupes de mots clés, une adresse et une distance à partir de cette adresse) qui se rechargeait en ajax. Je partagerai l’URL du site quand il sera ouvert (demain normalement).


    Évidemment, ne pas utiliser ce tuto tant qu’il n’a pas été validé par b_b, il n’est pas impossible que, le nez dans le guidon j’ai oublié d’aborder un point ou mal expliqué un autre.

    • Merci pour le retour troon, je viens de publier une version 4.12.0 de GIS qui propose un pipeline qui devrait t’être utile ;)

      Version 4.12.0 : ajout d’un pipeline gis_modele_parametres_autorises dans la fonction gis_modele_url_json_env() pour permettre d’enrichir la liste des noms de paramètres que l’on peut passer au modèle (sur une idée de rasta et troon http://contrib.spip.net/GIS-4#forum472416).

      http://zone.spip.org/trac/spip-zone/changeset/78939

    • Je viens d’ajouter un peu de doc à ce sujet dans l’article :

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

      Dis mois si c’est clair ou s’il faut reformuler :)

    • désolé je sors de 3 jours de stand dans un grand salon bio, auquel le site sur lequel j’ai bossé a d’ailleurs été présenté :) (sans aucun bug d’ailleurs, tout le monde a été content !)

      Y a que sur SPIP, où les utilisateurs réagissent moins vite que les développeurs :D

      Alors, ton tuto a l’air sympa, mais je me permettrais de te proposer une version plus explicite quand j’aurais tout compris, si tu veux bien.

      En tant qu’intégrateur et pas développeur, je t’avoue que ça me fait peur pour l’instant de mettre à jour GIS pour pouvoir profiter de cette dernière fonctionnalité, car je n’ai pas tout compris à ton tuto et que je n’ai pas envie de casser un site qui fonctionne parfaitement actuellement.

      Pour le site qui m’intéresse, j’avais créé 5 nouvelles variables : distance, adresse_lat (latitude l’adresse recherchée), adresse_lon (longitude de l’adresse recherchée), pdv (id_mot du type de point de vente) et categ (id_mot de la catégorie du point de vente).

      Du coup, dans mes_options.php, c’est ainsi que je dois les déclarer ?

      <?php
      
          $GLOBALS['spip_pipeline']['gis_modele_parametres_autorises'] .= "|nom_de_la_fonction";
           
          function nom_de_la_fonction($flux) {
          $flux[] = "distance","adresse_lat","adresse_lon","pdv","categ";
          return $flux;
          }
      
      ?>

      Ensuite pour récupérer ces variables, ce sera #ADRESSE_LAT ou bien #ENV{adresse_lat} ?

      Et puisque le site est enfin en ligne, je me permets de le partager ici, le code intéressera peut-être certain. C’est une carte en trois parties distinctes : un moteur de recherche multicritère, la carte à proprement parler où ne s’affiche que les points correspondant à la recherche et la liste des fiches qui correspond à la recherche. Le tout complétement en ajax, sans changement de page.

      http://www.labio-presdechezmoi.com/-Ou-trouver-des-produits-bio-.html

    • Est-ce que tu as trouvé comment faire ?

      J’ai moi même besoin de définir un nouvel argument et j’ai ajouté :

        $GLOBALS['spip_pipeline']['gis_modele_parametres_autorises'] .= "|red_secteur";
         
         function red_secteur($flux) {
        	 $flux[] = "secteur";
         return $flux;
         }

      Mais cela ne semble pas fonctionner.

    • Je répond à moi même, ce code fonctionne parfaitement, il suffisait comme l’indique la doc d’aller visiter la page des plugins pour vider le cache des pipelines. http://programmer.spip.net/Qu-est-ce-qu-un-pipeline

    • @troon, j’ai mis à jour l’exemple de code pour ajouter des paramètres en utilisant le pipeline.

    • Bonjour tout le monde,
      J’utilise la version 4.12.3 du plugin GIS, je dois localiser des établissement en fonction des mots clés. Chaque établissement est un article lié a des mots clés. Il ya deux groupe de mot différents « zone » et « catégorie ». Dans le groupe zone on a comme mot clé : paris (id_mot=1), Lille.... et dans le groupe catégorie on a comme mot clé : hôtel(id_mot=25), restaurant....
      Alors sur ma carte je dois afficher tous les articles qui sont liés à la fois aux mots clés 1 et 25 c-a-d (tous les hôtels de paris)...Voici mon code

       
       [(#INCLURE{fond=modeles/carte_gis, objets=articles,
                    id_mot=1,
                    id_mot=25,
                    centrer_auto=oui
                   })]

      ca marche pas, sur la carte j’ai tout se qui est sur paris (hôtel et resto), alors que je veux me limiter sur les hôtels de paris.
      J’ai lu avec Troon et b_b qu’on peut ajouté des paramètres en utilisant le pipeline j’ai beau essayé mais rien, je signal que je suis juste intégrateur et NON développeur :) Alors j’aimerai bien que vous m’aidiez. Merci d’avance

    • Re bonjour,
      J’ai fais ceci dans mes_options.php

      <?php
          $GLOBALS['spip_pipeline']['gis_modele_parametres_autorises'] .= "|nom_de_la_fonction";
           function nom_de_la_fonction($flux) {
          $flux[] = 'zone';
          $flux[] = 'cat';
          return $flux;
          }
      ?>	

      et pour afficher la carte :

      [(#INCLURE{fond=modeles/carte_gis, objets=articles,
                   zone=1,
                   cat=25,
                   centrer_auto=oui
                  })]

      Mais j’ai pas le bon résultat, est ce que le nom des paramètres ajoutés doit être identique au titre des mots clés ?? Sinon qu’est ce que j’ai loupé ? please Help :)

    • Je me répond, j’ai trouvé...Au fait je travaillé avec gis.html alors sur ma carte j’appel objets=articles_logomot c’est pourquoi quand je faisais des modif avec #ENVzone ca marché pas. Merci

    Répondre à ce message

  • 1

    Bonjour,
    j’ai une liste d’article tous géolocalisé, j’aimerai savoir comment afficher tous ces articles sur une carte ??
    En effet, je récupéré mes articles avec cette boucle :

      <BOUCLE_a(ARTICLES){gis}{id_mot=186}>
       #TITRE - #ID_GIS <br/>
      </BOUCLE_a>

    J’ai retourné le problème dans tous les sens mais ça marche pas, sur la carte s’affichent tous les articles géolocalisé du site et j’aimerai juste afficher la liste sélectionné dans cette boucle. Merci de votre aide

    • Hop, désolé mais j’ai pas trouvé plus compliqué :p

      <carte_gis1|objets=articles|id_mot=186>

    Répondre à ce message

  • 9

    Bonsoir à tous,

    Tout d’abord bravo à tous ceux qui ont participé à la conception de ce plugin très précieux !

    J’ai qques questions :

    1) Qd je modifie le paramètre height l’affichage de mes points n’est pas correct, il faut faire glisser la carte pour que tout soit correctement recalculé. C’est un peu dommage ... J’ai essayé en vidant les caches de spip, mais ça n’a rien changé. Un petit bug ?

    2) Y a-t-il moyen de passer plusieurs kml en paramètres, genre avec des virgules, crochets, parenthèses, ... Je n’ai pas réussi. J’ai bricolé un kml fusionné, mais c’est un peu bancal comme solution je trouve (j’ai lu ça : http://contrib.spip.net/GIS-3-integration-de-cartes-KML mais ça ne m’a pas aidé ...)

    3) Serait-il possible de passer en paramètre la couleur du pointeur ? Je sais que l’on peut changer manuellement, mais qd il y en a beaucoup, c’est un peu fastidieux ... Ou un champ à remplir comme (latitude, longitude, nom, ...)

    Merci de vos réponses.

    Stéphane

    • Salut,

      1) pas de problème chez moi quand je modifie la hauteur de la carte, exemple en ligne. Il faudrait que tu donnes l’adresse d’une page où on peut observer le problème.

      2) La solution proposée dans le tutoriel que tu cites est valide, il faudrait aussi un lien vers la page qui pose problème pour qu’on t’aide.

      3) Tu peux réaliser ça sans problème à l’aide d’un champ extra sur les objets de GIS, je l’ai fait sur un de mes derniers projets en utilisant un champ de type select qui permet de choisir parmi une liste prédéfinie d’icônes. Cela permet d’exploiter le champ extra dans un squelette json perso afin de modifier l’icône à l’aide de la balise #CHEMIN, la couleur avec les filtres |image, etc.

      ++

    • Bonjour,

      1) J’ai lié le même point aux 2 articles suivants :
      http://limechecs.fr/spip.php?article1230
      contenu de l’article : <carte_gis1|zoom=8|limit=100|id_article=1230|kml=5379|scale=oui>

      http://limechecs.fr/spip.php?article1237 (créé juste pour la démo)
      contenu de l’article : <carte_gis1|zoom=8|limit=100|height=800px|id_article=1237|kml=5379|scale=oui>

      2) je ne souhaite pas mettre des liens sur des adresses, j’aurais aimé pouvoir faire genre un kml=1237,1238,1239 ou kml=[1237,1238,1239], ...
      pour superposer des fichiers kml sur une même carte, fichiers en provenances de différents articles.

      3) je crains que ça ne dépasse mes compétences actuelles. Je bidouillerai ptêtre ça qd même ultérieurement. Merci en tout cas de cette piste.

    • PS

      2) « objets=articles_branche|id_rubrique=xxx » fonctionne bien pour les points, ils sont bien tous « cumulés », mais pas les kml.

    • PS 2

      1) En fait il suffit de cliquer sur la zone kml pour qu’il positionne correctement les points (pas besoin de faire glisser comme je le disais). Mais donc à l’affichage de la page, c’est « buggé ». J’ai essayé de changer l’ordre des params, mais toujours pareil. Si vous avez une idée, suis toujours preneur.
      Testé avec Chrome = même soucis

    • Re,

      1) Ok, je vois le bug maintenant que ta carte affiche deux points, peux-tu tester avec un autre fond de carte que les couches google stp ?

      2) le tutoriel que tu cites est valide, par contre il nécessite de passer par des squelettes pour y arriver.

      ++

    • 1) avec openstreetMap et thunderforest OPenCycleMap : idem

    • Héhé, petit cachottier tu ne m’avais pas tout dit ^^ Tu as certainement modifié ton kml pour y changer des valeurs de couleur et cela fait qu’il n’est plus valide.

      Je viens de récupérer la version originale du kml depuis le site karamelise.fr et j’ai monté une démo fonctionnelle pour reproduire ta carte ici :

      http://labo.eliaz.fr/spip.php?article117

      Du coup je pense que c’est ton kml qui pose problème, peux-tu tester avec la version originale ?

    • j’avais en effet changé la couleur manuellement (couleur pas conforme ??).
      J’ai remis avec une couleur donnée par karamelise et fait plein de tests.

      Alors :

      -  mapquest open est la carte qui me convient le mieux après google roadmap. (si tu trouves cependant une astuce je suis preneur)

      -  Avec « recalculer » ou « voir en ligne », c’est ok, mais dès que je refresh (F5) —> bof :-( ça rebug. J’ai vidé le cache spip, firefox, ... les symptômes semblent persister ! SI je ne tape pas F5, mais vais dans la barre d’adressage et valide, là c’est ok ... PAR CONTRE avec Chrome, c’est ok dans les deux cas !! Ca ressemble à un pb de cache ...

      -  Avec ta page, ça marche sans problèmes avec firefox et chrome. D’où mon doute sur ce pb de cache !

      -  Sans changer la hauteur de la carte (height), je n’ai pas ces soucis, même avec google roadmap ! C’est à en perdre son latin !! :-)

      MERCI déjà de ton aide et du temps que tu as pris.

    • Avec le paramètre « centrer_fichier = non », tout fonctionne correctement, même avec google roadmap !

      J’ai centré sur le centre de la région (merci karamelise) et adapté le zoom.

      Ca me convient ... même si certains voudront peut-être chercher à savoir pourquoi ça ne fonctionne pas sans.

      En tout cas merci b_b pour ton aide.

    Répondre à ce message

  • 19

    Bonjour,

    Je suis débutant sur SPIP, quelqu’un peut-il m’expliquer la démarche complète pour insérer une map dans un squelette :

    [(#MODELEcarte_gis, zoom=8, limit=100, scale=oui)]

    ne semble pas fonctionner. faut-il ajouter un fichier dans /squelette/modeles ??

    Merci pour votre soutient

    • Bonjour

      IL manque objets=articles ou autre dans ton fichier.

    • Merci pour cette réponse,

      Mon but est d’intégrer une carte au sommaire (page d’accueil)...où faut-il placer la mention objets =

      Merci

    • Bonjour

      Je pense qu’il faut relire la doc, c’est indiquer.

    • Hum ok mais ça ne m’aide pas beaucoup...

    • Euh

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

      [(#INCLUREfond=modeles/carte_gis,
      objets=articles,
      id_auteur=1,
      zoom=5
      )]

      Après je sais pas sur quoi tu boss

    • j’aurais voulu reproduire un peu la présentation de ce site : http://rennes.sous-surveillance.net/

      Mais comme je suis débutant sur SPIP, je ne sais pas si GIS4 peut me permettre d’inclure une carte dans un squelette de sommaire et si oui, je ne comprends pas comment faire. j’ai fais pas mal d’essais mais sans résultats.

      Merci

    • Tu as créé des points dans gis ?
      ils sont rattaché à des articles ou autres choses ?

    • Non je n’ai encore pas défini de point liés à des articles ; Mais si je veux afficher une carte sans forcément de géoloc de mes articles, est-ce possible avec GIS4 ? Selon votre expertise, qu’utilise le site http://rennes.sous-surveillance.net/ pour générer la carte d’accueil ?
      comment est-il possible d’ajouter une couche de points à une carte avec des liens dans les infos bullles ?

      Merci

    • la couche de points sont des points gis rattachés à des articles.
      Pour une carte vide, je me de mande pourquoi l’afficher, pas besoins d’objets

    • Mais si je veux afficher une carte sans forcément de géoloc de mes articles, est-ce possible avec GIS4 ?

      Oui c’est possible, tu peux très bien créer des points sans les lier à aucun objet. Ensuite pour les afficher il suffit par exemple d’insérer le code suivant dans ton squelette :

      [(#MODELE{carte_gis,zoom=8,limit=1000,scale=oui})]

      ++

    • Merci b_b pour cette réponse,

      Mais comme je le disais précédemment, [(#MODELEcarte_gis,zoom=8,limit=1000,scale=oui)],
      ne semble pas fonctionner chez moi...et je suis total nob avec spip alos j’eassye d’avoir des instructions un peu plus détaillées. je cherche à afficher une map directement sur mon sommaire ...

      Merci

    • b_b je cherche à réaliser un peu quelque chose comme ça : http://rennes.sous-surveillance.net/
      peut être pourrais tu m’aider sur ce cas précis...Merci !

    • Si ton site est en ligne le mieux serait de nous donner l’url de celui-ci pour qu’on regarde ce qui cloche.

      Et bien sûr il nous faudrait un peu plus d’infos que « ça ne semble pas fonctionner » pour pouvoir t’aider ;)

      ++

    • Bonjour,

      je cherche juste à avoir une page sommaire avec une carte qui prend tout l’écran... comme ce site : http://rennes.sous-surveillance.net/

      pourriez vous m’apporter des pistes techniques sur les moyens d’y parvenir :

      -  faut il utiliser le plugin GIS4 ?/ Ou bien faut il passer directement par la librairy Leaflet et à ce moment comment puis je trouver de la doc etc..

      Merci

    • bonjour,

      Bon je progresse doucment sur spip et les squelettes mais je n’arrive toujours pas un inclure une carte via le plugin gis4,

      pourtant j’utilise les recommandations de la doc cad :

      [(#MODELEcarte_gis,objets=articles,zoom=8,scale=oui,id_auteur=1)] ... dans une boucle simple sur les articles

      sur ma page, l’espace pour les cartes se crée mais tout ceci reste blanc...

      merci de votre aide

    • Bonjour

      IL faut pas être dans une boucle.
      Tu souhaites afficher des points ou pas ?

    • Salut, comme je te le proposais déjà dans mon dernier message, il faudrait que tu mettes ton code en ligne pour nous donner l’adresse de la page en question, ainsi on pourra certainement t’aider concrètement.

    • Ouaip je voudrais afficher les points des articles...Mais j’ai aucone carte qui s’affiche

    • Je me réponds à moi même, je n’avais pas connaissance de la balise #INSERT_HEAD qui semble fondamentale pour l’execution de script...

    Répondre à ce message

  • 2

    [GIS 4.12.1]

    Bonjour,

    Ai-je loupé un épisode, ou le champ code_pays est ignoré ?
    Il est créé à l’installation et bien présent dans la table spip_gis, mais il est absent du formulaire d’édition d’un point GIS (squelette + php), du coup il est systématiquement vide.

    Ou bien y a-t-il une marche à suivre spécifique pour que le champ soit enregistré ?
    Le paragraphe qui mentionne la balise #CODE_PAYS indique d’activer la fonction de geocoder, c’est fait mais ça ne change rien.

    Répondre à ce message

  • 2
    blablabla

    Bonjour,

    je cherche à remplacer les marqueurs d’une carte par les logos des mots-clé des points.

    Cela fait plusieurs jours que je cherche, mais je n’y arrive pas... j’arrive bien à afficher le logo du mot-clé d’un article, le logo des points, mais pas le logo du mot-clé des points... Y a-t-il une façon de faire ce que je veux ?

    merci d’avance

    • Salut, il y a une astuce qui explique comment le faire avec les logos des mots associés à des articles publiée ici :

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

      Tu ne devrais pas rencontrer de problème pour l’adapter à ton besoin.

      ++

    • blablabla

      Merci pour la réponse ! J’ai essayé de plein de façons d’adapter la solution que tu donnes en lien, mais rien à faire je n’y arrive pas ! Comme ce site n’est pas en prod, je ne peux pas filer de lien... du coup je vais essayer d’expliquer ce que je veux faire.

      J’ai des rubriques, qui contiennent chacune des sous-rubriques et des articles.
      Chaque rubrique correspond à une ville, et chaque article correspond à une zone géographique particulière de cette ville (un quartier).

      Dans chaque article, il y a des points. On a besoin d’avoir des marqueurs par type de points (association, école publique, école privée...) du coup on a associé chaque point à un mot-clé, et chacun de ces mots-clés à un logo différent.

      Pour le moment, faut de mieux, on attribue à chaque point un logo différent. Cela fonctionne mais c’est assez fastidieux pour les utilisateurs/trices qui oublient régulièrement soit d’attribuer le logo au point, soit d’attribuer le mot-clé...

    Répondre à ce message

  • 2

    Bonjour !

    Une question peut-être simple, peut-être pas, mais impossible de trouver une réponse après une longue recherche (et j’ai toujours été infoutu de trouver une manière simple de faire une recherche dans les commentaires de spip contrib :) ).

    Tout d’abord, je ne peux pas montrer d’url c’est un site en cours de développement, je vais donc essayer d’être le plus explicite et le plus précis possible dans mon problème.

    J’ai un formulaire comprenant 2 select et deux input. Les deux premiers sont des listes de mots clés qui permettent de restreindre les résultats, ça c’est bon c’est fait, les résultats s’affichent en ajax je suis content youpi.

    Le premier input demande d’entrer un nom de ville, ça ok ça fonctionne sans problème, je transmets la variable, je la récupère, je la teste, ok pas de problème (re youpi).

    Mais le dernier input me pose un gros problème existentiel, car il demande de saisir une distance. Et là je sèche complétement. Je ne trouve aucun moyen de géocoder à la volée une ville ou une adresse et de récupérer ces coordonnées dans GIS pour pouvoir tester une distance dessus.

    Pour donner un exemple plus précis, si je n’ai pas été clair, disons que je choisis « Lille » et distance = « 20km », ce qui devrait me renvoyer « Roubaix, Tourcoing, Villeneuve d’Ascq, etc. »

    J’imagine que quelqu’un a l’idée de génie (et le génie tout court) qui me manque ?

    merci d’avance :)

    • je crois que le critère que je viens d’ajouter à la documentation est exactement ce que tu cherches. Voir donc la partie Critère distancefrom.

      ++

    • j’avais en effet bien repéré ce critère distancefrom, mais si j’ai bien compris c’est pour calculer la distance entre deux points déjà géocodés. Mon problème est justement que je ne sais pas comment calculer les coordonnées d’un point à partir du résultat ’un champ de saisie de formulaire.

      En gros, est-ce qu’il existe un moyen dans GIS de traduire « Lille » par « lat:50.62925 et lon:3.057256000000052 » ?

      J’ai vraiment l’impression que je passe à côté d’un truc simple et logique, mais je n’arrive pas à savoir quoi :)

    Répondre à ce message

  • Bonsoir,

    Je remercie les initiateurs pour cette petite merveille mais j’ai une question :
    comment afficher un carte sur une page sans être obligé de la lier à un article ou une rubrique.
    Bien j’aurai une squelette xxxx.html dans le répertoire squelettes mais quel sera son contenu ?

    D’avance merci

    Répondre à ce message

  • 2

    Bonjour,
    Je me présente rapidement. Je suis un petit nouveau sur SPIP-Contrib, je fais du SPIP depuis un an et demi mais suis plutôt orienté Front-End pour le moment. Je me considère donc comme un utilisateur SPIP de niveau intermédiaire.

    Je viens ici pour poser ma première question, je souhaite utiliser GIS pour afficher une carte, à savoir
    J’ai des mots-clé par pays sur lesquels j’ai enregistré une position géographique via le plugin GIS

    Quand j’affiche ma carte avec le paramètre objets=mots mes points s’affichent bien sur la carte... jusque là tout va bien.

    Sauf que moi ce que je veux c’est en fait remonter tous les points géographiques d’une sélection d’articles, je m’explique : j’aimerais idéalement créer une liste d’articles bien précise, en extraire les infos (positions géographiques, titre, description et plus...) et afficher les points correspondants sur une carte avec les infos dans l’infobulle.

    Ma question est donc : comment faire pour afficher une carte avec une sélection de points créés par une boucle SPIP ?

    Autre question : peut-on créer un type d’objets en créant un fichier dans squelettes/json/, par exemple si je mets en critère objets=mes_marqueurs et que je créé un fichier squelettes/json/gis_mes_marqueurs.html est-ce que cela fonctionnera et par conséquent me permettra de faire ce que je veux de cette carte.

    PS : j’ai déjà tenté ce dernier point, sans succès, mais peut-être que je m’y prends mal

    Merci d’avance pour votre aide !

    Freed.

    • Salut,

      Ton message comporte la réponse à ta question :)

      Ma question est donc : comment faire pour afficher une carte avec une sélection de points créés par une boucle SPIP ?

      C’est bien ce que tu penses qui permet de faire ce que tu souhaites :

      peut-on créer un type d’objets en créant un fichier dans squelettes/json/, par exemple si je mets en critère objets=mes_marqueurs et que je créé un fichier squelettes/json/gis_mes_marqueurs.html est-ce que cela fonctionnera et par conséquent me permettra de faire ce que je veux de cette carte.

      Pour cela il suffit de copier un des squelettes du répertoire /json et de l’adapter à tes besoins. N’hésite pas à nous montrer ton code si tu rencontres des problèmes.

      ++

    • Bonjour,
      Merci pour ta réponse, en fait c’est ce que j’avais fait dès le départ, mais ça ne fonctionnait pas simplement parce que mes squelettes sont dans un plugin, il fallait donc ajouter la dépendance de GIS dans le plugin.xml de mon plugin.

      Concernant la requête elle même, elle fonctionne à présent, et même très bien ! :)

      Je la poste pour ceux que ça intéresse, elle mérite sans doute d’être optimisée :

      		<BOUCLE_ssrub(RUBRIQUES){id_secteur ?}>
      			<BOUCLE_mots(MOTS){gis}{id_mot ?}{id_groupe ?}{id_breve ?}{id_syndic ?}{id_forum ?}{recherche ?}{0, #ENV{limit}}{unique}>
      				[(#SET{intro,})]
      				[(#SET{descriptif,""})]
      				[(#SET{lon,#LON})]
      				[(#SET{lat,#LAT})]
      				[(#SET{id_gis,#ID_GIS})]
      				<BOUCLE_ssrub2(RUBRIQUES){id_parent=#ID_RUBRIQUE}>
      				<BOUCLE_arts(ARTICLES){id_rubrique=#ID_RUBRIQUE}{id_mot}>
      					<BOUCLE_titreRub(RUBRIQUES){id_rubrique}>#SET{parent_rub,#TITRE}</BOUCLE_titreRub>
      					[(#SET{elem,[<a href="(#URL_ARTICLE)"><span class="label">#GET{parent_rub}</span> #TITRE</a>]})]
      					[(#SET{descriptif,[(#GET{descriptif}|concat{#GET{elem}})]})]
      				</BOUCLE_arts>
      				[(#SET_PUSH{points,#ARRAY{
      					lon,		#GET{lon},
      					lat, 		#GET{lat},
      					id,			#GET{id_gis},
      					pays,		#_mots:TITRE,
      					parent_rub,	#GET{parent_rub},
      					title,		#TITRE,
      					description,#GET{descriptif},
      					logo,		#_mots:LOGO_MOT_NORMAL
      				}})]
      				</B_arts>
      				<//B_arts>
      				</BOUCLE_ssrub2>
      			</BOUCLE_mots>
      		</BOUCLE_ssrub>
      		<BOUCLE_points(POUR) {tableau #GET{points}} {","}>
      		{"type": "Feature",
      			"geometry": {"type": "Point", "coordinates": [#VALEUR{lon}, #VALEUR{lat}]},
      			"id":"#VALEUR{id}",
      			"properties": {
      				"title":[(#VAL{'<h3>'}|concat{#VALEUR{logo},#VALEUR{pays},</h3>}|json_encode)],
      				"description":[(#VALEUR{description}|json_encode)][(#CHEMIN{img/marker_default.png}|oui)
      				[(#SET{logo_doc,#CHEMIN{img/marker_default.png}|image_passe_partout{24,24}|image_recadre{24,24}})]
      			][(#GET{logo_doc}|oui)
      			#SET{icon_w,#GET{logo_doc}|extraire_attribut{src}|largeur}
      			#SET{icon_h,#GET{logo_doc}|extraire_attribut{src}|hauteur}
      			[,"icon": (#GET{logo_doc}|extraire_attribut{src}|url_absolue|json_encode)],
      			"icon_size": \[[(#GET{icon_w})],[(#GET{icon_h})]\],
      			"icon_anchor": \[[(#GET{icon_w}|div{2})],[(#GET{icon_h})]\],
      			"popup_anchor": \[1,[-(#GET{icon_h}|div{1.2})]\]]
      			}}</BOUCLE_points>

      Merci pour tout !

    Répondre à ce message

  • 2
    Jean-Charles

    Bonjour à tous,
    Je me suis cassé la tête pendant quelques semaines pour savoir pourquoi GIS à certains moments se mettait à ne plus afficher les points géolocalisés puis quelques jours plus tard les réaffichait. En comparant 2 sites « identiques » (même sources, mêmes plugins, même base de données), l’un qui affichait les points l’autre pas, j’ai trouvé que c’était lié aux choix d’activer la compression du HTML. C’est reproductible. J’active, GIS n’affiche pas les points. Je désactive, GIS les affiche. Je ne sais pas trouver la solution. Mais si l’info peut aider à trouver, tant mieux.
    En tous les cas, GIS est super et j’aurais du mal à m’en passer maintenant.

    • Bonjour

      Il faut pas activer la compression html, quelque soit le site d’ailleurs.
      C’est une option qui devrait disparaitre si j’ai bien compris.

    • Oui cette option devrait à mon avis être retirée de SPIP car elle génère souvent des problèmes avec les plugins. Voir le ticket concernant ce bug : http://core.spip.org/issues/2813

    Répondre à ce message

  • 3

    Bonsoir soit le code suivant,dans un article

    <carte_gis1|objets=point_libre|lat=50.21317|lon=3.8676|zoom=16|height = 600px|zoom_molette = non|scale = oui|titre=mon rucher|icone=mon_image.png|kml = 3>

    http://apicultural.spipfactory.com/?Secteur-d-Exploitation

    pourquoi la portion
    |zoom_molette = non|scale = oui ne s’affiche pas

    de même que j’ai essayer d’incorporer un fichier kml nommé 3.kml dans mon répertoire squelette, c’est pour faire un cercle autour du point central

    celui-ci ne s’affiche pas

    pouvez vous m’indiquez ou sont mes erreurs , ou chercher Merci

    • Salut,

      Citation de la doc pour ton kml :

      kml = 12 fichier kml à superposer à la carte (id_document ou url)

      Pour l’autre problème, essaye de virer les espace dans scale = oui.

      Je ne vois aucune carte sur la page dont tu donnes le lien...

    • bon j’ai crier victoire trop vite , pour le deuxième cercle , on peu écrire 2 kml en suivant ou il y a une autre astuce ?

      genre

      <carte_gis1| bla / bla |icone=mon_image.png|kml=http://spipfactory.com/sites/apicultural.spipfactory.com/squelettes/3.kml|kml=http://spipfactory.com/sites/apicultural.spipfactory.com/squelettes/10.kml>
    • Je dirais http://contrib.spip.net/GIS-3-integration-de-cartes-KML mais il faudrait bosser un modèle pour ton besoin ....

    Répondre à ce message

  • c’était juste un gros copier/coller du fichier modeles/carte_gis.html (ce qui à mon humble avis ne sert à rien)...

    Je travaille en localhost et tout ce que j’ai fait c’est de créer un fichier carte.html dans le répertoire squelettes avec comme contenu :

    [(#INCLUREfond=modeles/carte_gis, height=750px, fullscreen=oui, control_type_collapsed=non)]

    Pour infos (l’appel de gis dans une rubrique ou un article fonctionne à merveille)

    dur dur quand on est pas geek.....

    Répondre à ce message

  • 1

    Je vous remercie pour votre réactivité b_b. Voici comment j’ai procédé en étant sous spip3 et en me basant de votre répertoire squelettes :

    j’ai créé un page carte.html avec comme contenu :
    [(#INCLUREfond=modeles/carte_gis,height=750px,fullscreen=oui,control_type_collapsed=non)]
    J’ai surchargé le fichier modeles/carte_gis.html du plugin dans le répertoire sequelettes

    j’ai testé ma page http://test.fr/spip.php?page=carte
    résultat : une page blanche comme neige...

    Une mauvaise manipulation quelque-part ?
    Cordialement,
    Dary,

    • Hop,

      J’ai surchargé le fichier modeles/carte_gis.html du plugin dans le répertoire sequelettes

      Le problème vient certainement de cette surcharge, mais sans voir ce qu’elle contient on ne peut t’aider plus.

      Une adresse vers la page en question est toujours pratique.

    Répondre à ce message

  • 1

    Bonjour,

    Je vous prie d’excuser ma naïveté technique (je ne suis informaticienne de base). Je voudrais faire comme le lien ci dessous mais j’ignore les modifications à effectuer après installation et activation du plugin...

    http://labo.eliaz.fr/spip.php?page=carte

    Cordialement,
    Dary..

    Répondre à ce message

  • 1

    Bonjour à tous,
    J’ai installé ce plugin sans problème sur un spip 3.0.11 mais il m’est impossible d’afficher les cartes Google.
    Lorsque je sélectionne une couche Google (Satelitte, Roadmap, etc) dans ecrire/ ?exec=configurer_gis, rien ne s’affiche. La frame d’aperçu reste vide hormis le + et - pour gérer le zoom.
    Si je sélectionne OpenStreetMap ou Acetate, je n’ai aucun problème d’affichage.

    Google Maps semble avoir mis à jour son site récemment... il faut peut-être mettre à jour le plugin...

    Mais après discussion sur l’IRC avec la dream team et le sensationnel kent1, il semble que ce soit le un fichier js en cache qui bloque la demande de l’internaute.
    Avec un &var_mode=recalcul après ecrire/ ?exec=configurer_gis ça règle le problème de cache.

    Pour du long terme, une mise à jour du plugin pour corriger ce bug arrive apparemment.
    A suivre ;)

    Répondre à ce message

  • 3

    Bonjour,
    Félicitations pour ce plug-in réussi, simple et efficace...
    J’ai juste une question : comment faire pour afficher un texte au survol du logo d’un point avec la souris afin de visualiser le point concerné avant de l’ouvrir ?
    Merci pour vos aides...

    • Salut, désolé mais cette option n’est pas prévue par le plugin. En effet, si on affichait le titre des points dans une infobulle il faudrait tenir compte du fait que certains utilisateurs collent des liens ou des balises html dans leur titre (ce qui du coup ne rends pas terrible dans l’infobulle).

      Reste à voir si cette fonctionnalité peut être ajoutée de façon optionnelle. Je tenterai de m’occuper de ça quand j’aurai un peu de temps dispo.

    • Un grand merci pour cette réponse (très) rapide ! C’est rassurant de ne pas se sentir seul quand on est béotien...
      Je ne sais pas si je me suis bien exprimé : je souhaiterais qu’une info-bulle appariasse au survol des poins sur la carte GIS avant l’ouverture du titre. Ce qui permettrait de choisir le point voulu plus facilement quand il y en a plusieurs de très rapprochés.
      Donc, à priori, puisque cette info-bulle s’afficherait avant l’ouverture(e du titre, il ne devrait pas y avoir d’interférence ?
      J’ai vu sur un site que ça fonctionnait : http://www.des-gens.net/-ANACR-
      Sur la copie d’écran jointe, quand on passe sur la flèche Nanterre, l’info-bulle « Raymond Loreau » s’ouvre bien avant l’affichage du titre ?
      Un grand merci pour ton aide !

    • Hop,

      Je ne sais pas si je me suis bien exprimé

      Si si, on parle bien de la même chose :) Le site qui tu donne en exemple utilise justement une ancienne version de GIS dans laquelle on collait le titre des points dans ces infobulles. Comme cela généraient des problèmes dans certains cas d’utilisation (cf mon message précédent), cette fonctionnalité a été retiré en attendant une meilleure intégration de celle-ci avec la nouvelle librairie utilisée pour la carto.

      ++

    Répondre à ce message

  • 5

    Bonjour,

    Je souhaite superposer une carte kml mais cela ne fonctionne pas.

    Voici le fichier : http://visites-virtuelles-france.com/IMG/kml/vv_france-2.kml
    Mais ça n’affiche qu’une partie des résultats.

    Voici mon code :

    [(#INCLURE{fond=modeles/carte_gis, objets=articles,autocenterandzoom=oui,cluster=oui,fullscreen=oui, height=600px, kml=23})]

    ci-joint la capture du résultat.

    Quelqu’un a-t-il une idée ?

    Merci.

    Répondre à ce message

  • 3

    J’ai appris aujourd’hui que Gis_json était vurnérable et permettait d’aspirer rapidement un site ? Des infos supplémentaires ?

    • Hihi, qu’est-ce qu’il faut pas lire :p

      Si la vulnérabilité est de mettre à disposition le contenu des articles ou autres objets, on peut dire q’un flux RSS est d’une vulnérabilité aussi grande (ou plus).

      Dans ce cas, autant ne rien publier sur le web pour être vraiment à l’abri ;)

      Je te retourne la question : Des infos supplémentaires à propos de ce qui est considéré comme vulnérable ?

    • Non je n’ai pas d’infos supplémentaires justement. Des dev m’ont demandé si le plugin était activé en natif sur SPIP, mais je n’en sais pas plus et rien de trouvé à ce propos sur le web. Donc tu as plutôt tendance à me rassurer.
      Visiblement gis_json permettrait d’extraire du contenu par une personne tiers ! ça te semble possible ? Même si au fond ce n’est peut être pas « dangereux » comme tu l’expliques.

    • Je crois que le mieux serait que tes sources viennent en causer ici ou sur la liste spip-zone, sans ça je ne pourrai pas t’en dire plus.

    Répondre à ce message

  • 5

    Bonjour. Avant tout bravo pour cette nouvelles mouture de GIS qui est vraiment vraiment terrrrrible !!
    je me permets de remonter toutefois un petit bug que je rencontre lorsque je veux intégrer une carte dans un bloc dépliable ou un bloc à onglet. Dans ce cas de figure la carte est grisée et n’apparait que sur un petit coin en haut à gauche.
    Des idées ???

    • Oui, il faut appeler la fonction invalidateSize() sur l’objet map à l’affichage de ton bloc dépliable ou de ton onglet comme ceci :

      mapX.invalidateSize();

      Où X vaut id_map si passé au modèle lors de son appel (sinon 1 pour valeur par défaut).

    • Merci à toi. Je vais tâcher d’y coller mon nez.

    • Rubenxela,
      Puis-je te demander si tu as réussi à faire fonctionner ce mapX.invalidateSize(); et si oui, comment tu as réussi à le faire, car là je sèche complétement ?

      Merci par avance.

    • Finalement je ne m’y suis pas collé, j’avais trouvé une autre solution beaucoup moins sympa mais moins chiante à mettre en place. Désolé de ne pas pouvoir t’aider ... cela dit il va bien falloir que je m’y remette

    • Sur IRC, b_b a pu me donner un début de solution fonctionnelle, mais comme il le dit, ce n’est pas très portable et dépend beaucoup des boucles/inclures embarqués, néanmoins pour faire avancer les choses, je poste le résultat ici :

      [(#ONGLETS_DEBUT{Liste des articles})]<!--[(#REM)premier onglet]-->
                    <ul>
                      <li> bla bla du premier onglet</li>        
                    </ul>
      [(#ONGLETS_TITRE{articles sur la carte})]<!--[(#REM)deuxième onglet]-->
      [(#INCLURE{fond=modeles/carte_gis,id_map=2,objets=articles,id_rubrique=11,zoom=5})]
                      <script type="text/javascript">
      		/*<![CDATA[*/
      			;(function($){
      				$(function(){
      					$('#onglets_titre_1').on('click', function(){
      						map2.invalidateSize();
      					});
      				});
      		      })(jQuery);
      		/*]]>*/
      		</script>
      #ONGLETS_FIN<!--[(#REM) fin du système de gestion des onglets]-->

      Dans l’appel de la carto, il a fallu passé un Id_map=2, il faut donc le retrouver dans le code JS ci-dessus. Et ça fonctionne.
      Par contre, impossible de faire fonctionner le recentrage automatique en fonction des points à présenter, on a donc fixé en dur le zoom (5 ici, qui représente la France métropolitaine).

    Répondre à ce message

  • 7
    Jean-Charles

    J’utilise GIS 4.9.6. Je définis une carte sous la forme classique
    <carte_gis1|height=700px|zoom=9|cluster=oui|kml=7727|autocenterandzoom=oui>
    dans un article.
    Cela fonctionne en général sauf quand j’utilise un thème comme Tincredible ou Maparaan de Padd Solutions.
    Il semblerait qu’il y ait un problème de javascript. Est-ce que quelqu’un a rencontré le problème et a pu trouvé une solution ?

    • Salut, comme d’habitude :

      un lien vers le site en question serait plus qu’utile pour t’aider

      Merci de nous aider à t’aider :)

    • Jean-Charles

      Ce sont des thèmes proposés avec le plugin Zen Garden. A utiliser en conjonction avec, Zpip et Aveline.
      De super développements qui permettent d’avoir très rapidement un super design.
      Il est vrai que si on ne les a pas déjà installés, ça fait du taf pour reproduire le pb.

      Zen-Garden

    • Jean- Charles, b_b cherche un lien vers ton site ;)

    • En fait je cherches surtout à aider Jean Charles :p

    • Jean-Charles

      J’avais un peu compris mais je ne peux pas pour l’instant rendre le site public. Je reproduis le problème à la fois en local et chez l’hébergeur. J’ai pu à peu près identifier le problème sans pouvoir le résoudre. Il s’agit de versions différentes de javascript dans les 2 plugins concernés. Si qcqun avait déjà rencontré le pb et trouvé une solution, ça m’aurait aidé. Tant pis, j’abandonne les thèmes de Padd Solutions. Merci pour la tentative d’aide et bravo aux développeurs qui font les plugins.

    • Salut Jean-Charles,

      Je me suis bien pris la tête pour mettre d’accord Maparaan et GIS. Au final, et avec plusieurs coups de main de b_b, ça roule. Au final, principalement des histoires de css.
      Je t’invite à lire mon post du 2 juillet - 22h52 ici même, pour exemple.

      ArnO

    • Jean-Charles

      Un grand merci ArnO. Je me disais bien que je n’étais pas tout seul sur cette planète à vouloir marier Maparaan ou Tincredible et GIS. Finalement, j’avais laissé tombé pour continuer avec un style moins sophistiqué, sympa quand même. Je note dans un coin la solution. Ca servira peut-être un jour.
      Sinon, j’ai du contourner le bug lié à Spip 3.0 qui faisait que pour un article, je récupérais aussi les points des articles de la même rubrique.
      Merci encore.

    Répondre à ce message

  • 1

    Salut,

    Sur un site accessible via le protocole HTTPS, la recherche d’adresse de GIS4 ne fonctionne plus maintenant que le contenu mixte est bloqué par Firefox (depuis la version 23).

    La solution consiste à utiliser des URL avec un protocole relatif pour interroger l’API de MapQuest. Voici le correctif qui met en œuvre cela : https://gist.github.com/otetard/6776644.

    Olivier ;

    Répondre à ce message

  • 2

    Bonjour à tous,

    J’ai deux questions :

    1. Je suis sur un Spip 3.0.11 et j’y ai installé GIS en version 4.9.6 (dernière version) et je n’arrive pas utiliser Google Map pour créer mes Points liés depuis la partie privée. Un écran gris remplace la carte. En relisant la doc, je suis tombé la dessus :

    Dans 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.
    Sources : http://contrib.spip.net/GIS-4#nh1

    Je penses que cela ne me concerne pas car je ne suis pas encore à essayer de publier les données de géoloc sur le site.

    2. Le moteur de recherche des points liés ne me retourne aucun résultat., j’ai l’impression qu’il faut positionner un par un chaque point, est-il possible d’automatiser le calcul des coordonnées a partir d’une adresse ?

    Merci par avance de vos reponses.

    • 1) tu devrais vider le cache de ton site pour commencer, ça devrait aller mieux ensuite.

    • @b_b : Merci beaucoup, cela fonctionne effectivement beaucoup mieux ! Je croyais cependant que le cache n’était que pour la partie publique, me trompais-je ?

      As-tu éventuellement des infos pour ma deuxième questions ?

      Merci

    Répondre à ce message

  • 1

    Bonjour,
    Je travaille sur un site en multilingue avec les balise multi et j’utilise le plugin gis4, alors j’aimerai savoir comment gérer le titre du point gis avec la langue. Merci de votre réponse

    • Bonjour je me répond, j’ai enlevé le * qui est devant le titre et ça à marché

    Répondre à ce message

  • 1

    Bonjour à tous,

    Je suis sur un truc qui en ferra surement rire plus d’un , mais je n’arrive pas à faire fonctionner de lien vers des pont de la carte…

    J’ai essayée les boucles :

    <BOUCLE_centrado(ARTICLES){id_secteur}{gis}>
     <a href="javascript:zoomIci(#LAT, #LON, 16, #ID_GIS);">
         #TITRE_GIS  #LAT, #LON, 16, #ID_GIS <br :>
     </a>
     <a href="javascript:abrirVentana(#LAT, #LON, 16, #ID_GIS);">
      Zoomer sur le Truc
     </a>
    </BOUCLE_centrado>
    <BOUCLE_centrado(ARTICLES){id_article}{gis}>
    <a href="javascript:zoomIci(#LAT, #LON, 16, #ID_GIS);">#TITRE_GIS  #LAT, #LON, 16, #ID_GIS <br :></a>
    <a href="javascript:abrirVentana(#LAT, #LON, 16, #ID_GIS);">Zoomer sur le Trusdqsd</a>
    </BOUCLE_centrado>

    Le résultat des boucles me donne les bonnes informations MAIS le lien ne fonctionne pas.
    Deux heures que je relis la doc des différentes versions de GIS… sans vraiment comprendre…
    Une aide sera la bien venue…
    MERCI à tous !
    _

    Répondre à ce message

  • 1

    Bonjour,

    Alors là je vais pinailler un peu mais lorsque sur une carte j’ai le paramètre autocenterandzoom=oui

    les points qui sont aux extrémités de la carte (surtout en haut) ne sont pas visibles car c’est la base du marqueur qui sert de repère et qui est donc collée au bord de carte.

    Quelqu’un a---t-il une astuce qui permette de conserver le autocenterandzoom=oui ?

    Merci

    Répondre à ce message

  • 1
    MINICIRCUL

    Bonjour,

    Mise à jour effectuée, (4.9.6), et problème plus de marqueurs sur les cartes !

    Autre élément, comment intégrer le trafficlayer de Google Maps ?

    Par avance merci

    • Salut,

      Mise à jour effectuée, (4.9.6), et problème plus de marqueurs sur les cartes !

      As-tu vidé le cache du site et celui de ton navigateur ? Quelle est l’url du site en question ?

      Autre élément, comment intégrer le trafficlayer de Google Maps ?

      Cela n’est pas pris en charge par ce plugin.

      ++

    Répondre à ce message

  • 4
    obiwanriko

    Bonjour depuis ce matin le géocodeur (fonction de recherche d’une adresse) ne fonctionne plus alors que tout est bien coché dans les préférences du plugin... Normal ?

    Répondre à ce message

  • minicircul

    Bonjour,

    Je cherche depuis plusieurs jours où placer la ligne de code pour pouvoir intégrer le traffic layer de google maps sans succès ! si quelqu’un pouvait m’aider ce serait sympa !

    Répondre à ce message

  • 7

    Bonjour tout le monde !!

    Depuis la 4.9.0, je constate la disparition du marqueur, de son ombre et de l’icône des layers.
    Pourtant, les différents bitmap sont disponibles où pointe le CSS.
    Je précise :
    - Que le pb concerne autant les espaces public que privé (SPIP 3.0.10), ce qui disculpe le thème
    - Que le pb disparait dès que je retourne à la 4.8.X
    - Que le pb persiste avec les 4.9.[1-2-3]

    Voilà, c’est sûrement très basique, mais je le suis encore plus en la matière. Alors si qqu’un peut me donner des axes de recherche, je l’en remercie d’avance…

    ArnO

    • Salut, comme *très* souvent, un lien vers le site en question serait plus qu’utile pour t’aider :p

    • Merci pour ta réponse.
      Je m’en doute bien, mais c’est un 1er projet, en local pour encore quelques mois.
      Le coté systématique et en apparence basique du truc me laissait penser que je n’étais pas le 1er concerné.

      Ça m’ennuierait de rester bloqué à la 4.8. Au rythme où évolue le plug, je vais rapidement passer à coté de nouveautés intéressantes…

      ArnO

    • Re-salut à tous,

      J’ignore si ce qui suit fera avancer le schmilblick, mais après 4h à chopper le taureau par les cornes, je commence carrément à être à court d’argument. Alors :

      -  Installation toujours en local d’un nouveau site SPIP 3.0.11
      -  Création d’une nouvelle BdD
      -  Installation minimale : Saisie 1.32.4 - GIS 4.9.3 - Leaflet 4.9.0
      -  Passage de tous les cache de la machine au lance-flammes
      -  Test avec Safari & Firefox

      => Pas de pointeur ni icon layers dans les espaces privé et public.

      Si ça ne fonctionne pas dans cet environnement ultra minimaliste, la question initiale « pourquoi cela m’arrive-il ? » pourrait bien être reformulée en « pourquoi cela fonctionne-t-il chez vous ? » :-)

      Bref, si quelqu’un à une idée, je lui promets mon éternelle reconnaissance !!
      À défaut, je me contenterais de GIS 4.8 qui marche à merveille chez moi et ferais une croix sur les prochains développements…

      ArnO

    • Je te conseille de prendre le temps de monter une version en ligne pour nous montrer le problème. Ainsi on devrait pouvoir trouver ce qui cloche en deux minutes, ou plus... :p

    • Le conseil était bon !!
      En 3 clics, j’ai mis en ligne mon SPIP minimaliste, et bien sûr tout roule.

      J’ai donc tout refait en local 50 fois, et j’ai reproduit le problème tout autant.

      Alors si quelqu’un voit une possible explication, je prends volontiers !!!
      Pour info :
      - Mac OS 10.8.4
      - MySQL 5.6.12
      - Apache 2.2.22
      - SPIP 3.0.11
      - Saisie 1.32.4
      - GIS 4.9.3
      - Leaflet 4.9.0

      Bien à vous,
      ArnO

    • Peut être un problème local de droits d’accès sur le répertoire de la lib utilisée par GIS...

    • OOOOOUAAAAAI !!!
      Tu peux virer le « peut-être » : Le dossier leaflet que je télécharge atterrit sur mon DD avec des permissions restreintes. Et visiblement ça ne convient pas à SPIP.

      T’es au top, merci bcp…

      ArnO

    Répondre à ce message

  • 8

    Bonjour j’aimerais savoir comment modifier la couleur et le style (gras souligné..) dans les infobulles, car là mon écriture est blanche sur une infobulle de fond blanc, obligé de surligner à la souris c’est pas pratique du tout. merci

    • Salut, ce n’est pas le cas par défaut, ton problème vient sûrement d’une css de ton squelette, mais sans accès à la page en question il sera difficile de t’en dire plus.

      ++

    • j’utilise le thême avec le squellete einsteiniumist

    • @b_b : As tu une réponse à mon problème ?

    • Salut, comme je te le disais déjà : sans accès à la page en question il sera difficile de t’en dire plus.

    • je t’ai envoyé un message privée :)

    • As tu trouvé une réponse ou pas, merci d’avance

    • As tu trouvé une réponse au problème car même avec la dernière version je n’arrive toujours pas à voir l’écriture dans l’infobulle, j’ai l’impression que la couleur des caractère est blanc, et du blanc sur du blanc sa coince.

    • Merci pour le message privé, mais je ne souhaite pas débuguer un site « sous le manteau ». Il serait donc mieux que tu postes ton lien vers la page qui pose problème dans ce forum.

    Répondre à ce message

  • 2

    Bonjour
    La commande <carte_gis|id_article=1|width=280px|height=280px|zoom=14|zoom_wheel=non>
    n’affiche plus les 2 points liés à l’article depuis la dernière mise à jour de GIS sur http://usb-montagne.fr.

    • problème résolu en décochant Compression html.

    • Salut, cool que tu aies résolu ton problème. Cette option de compression html pose pas mal de problèmes et on copte d’ailleurs la supprimer car son gain en terme de perfs est plutôt négligeable cf http://core.spip.org/issues/2813

    Répondre à ce message

  • Bonjour,

    Est-il possible d’ajouter un formulaire dans le site public pour que chaque auteur puisse se localiser ?

    Merci par avance.

    Répondre à ce message

  • 4
    Sylvain

    J’ai un soucis avec l’association de points GIS aux documents SPIP.

    • SPIP 3.0.8
    • GIS 4.8.6

    Le cadre d’association de point géolocalisé n’apparait pas dans la page d’édition des documents.

    Répondre à ce message

  • 5

    Bonjour,
    j’ai bien activé la géolocalisation sur les documents avec le secret espoir que les infos de géolocalisation contenues dans mes photos permettront de les positionner sur une carte. Mais ça commence mal, malgré l’activation de la géolocalisation des documents dans la config de GIS, pas de formulaire GIS dans l’édition des documents. Aurais-je oublié quelque chose ?

    Répondre à ce message

  • 3

    Bonjour,

    Peut-être que j’ai mal cherché mais je remarque que les points qui sont orphelins ne peuvent pas être détachés (cas d’un article supprimé par exemple) sur la page ?exec=gis&id_gis=xx
    Le numéro de l’article est indiqué mais le clic sur le bouton « détacher » est inopérant.

    dd

    Répondre à ce message

  • 2

    Bonjour,

    J’essaie de superposer plusieurs fichiers kml dans ma carte en utilisant la balise #LISTE tel que le propose la recommandation pour la version 3 de GIS (voir ici)... et ça ne fonctionne pas. Ca colle avec un fichier unique, mais j’ai un « Array » à la place de l’URL dès qu’il y en a deux. La méthode est-elle différente pour cette version du plugin ?

    Voici mon code (dans l’#INCLURE fond=modeles/...) :

    kml=[(#LISTE{
    [(#CHEMIN{kml/morocco.kml})],
    [(#CHEMIN{kml/libya.kml})],
    [(#CHEMIN{kml/egypt.kml})]
    })]

    Merci d’avance pour votre aide.

    • Salut, non la méthode est la même, je viens de la tester et elle fonctionne bien.

      On pourra t’aider plus si tu nous donnes un lien vers la page en question.

      ++

    • Merci pour cette réponse.
      Le problème s’est résolu en définissant la liste des fichiers à importer avec une balise #SET hors boucle

      #SET{maVariable,[(#LISTE{
      [(#CHEMIN{kml/morocco.kml})],
      [(#CHEMIN{kml/libya.kml})],
      [(#CHEMIN{kml/egypt.kml})]
      })]})]

      puis en définissant le kml via une balise #GET

      kml=#GET{maVariable}

      En résumé, tout va bien. SI cela peut servir à d’autres que moi...

      Amicalement.

    Répondre à ce message

  • 1

    Bonjour, merci pour ce plugin.
    Je m’en sers sur les mots, et j’aimerais que mon mot clé situé sur la carte soit cliquable. Comment faire ?
    Merci !!

    • Salut,

      Heu, je ne comprends pas ta question en fait ^^

      Tu peux nous donner une url, développer ta question ?

      ++

    Répondre à ce message

  • 5

    Bonjour,

    j’ai un souci suite au passage gis 3.40 > 4.8.12 : impossible d’activer google maps.
    j’ai un rectangle gris avec les boutons du zoom.
    Dans le code source de la page, je vois bien le js lié à google maps.
    Tout le reste fonctionne normalement.

    est-ce que j’ai raté qq chose ?
    Merci de votre aide
    Max

    • Salut, es-tu repassé par la page de configuration du plugin afin d’activer les fonds de carte ? (les valeurs de config ne sont pas les mêmes entre les deux versions).

    • Oui j’avais reconfiguré le fond de carte, et vidé le cache.
      Je viens de faire la mise à jour en 4.8.13.
      Maintenant les cartes google s’affichent (c’est l’essentiel) sauf sur la page de config (toujours carré gris).
      J’ai fait une installation propre (pas de gis auparavant) sur un site de test, le problème est le même.
      Merci de ton aide et de ton travail pour ce plugin.

    • En fait, le problème se situe sur le fichier « saisies/carte.html ».
      lorsque je fait un
      [(#INCLURE{fond=modeles/carte_gis,objets=articles, id_article=#ENV{v}, lat=#GET{lat}, lon=#GET{lon}, zoom=#GET{z}, height=620px})]
      aucun problème, la carte google s’affiche.
      mais
      [(#SAISIE{carte,editer_gis_#ENV{id_gis},env})] me donne un rectangle gris.
      J’ai remplacé le fichier par celui présent dans gis 3.4 et la carte google s’affiche de nouveau.

    • Je ne sais pas (et ne peux pas deviner) dans quel environnement ton code s’exécute, mais un rectangle gris est certainement synonyme d’une erreur javascript. Il faudrait plus d’information pour pouvoir t’aider.

      ++

    • Après moult, désinstallations réinstallations, mise à jour, vidage de cache, les cartes google s’affichent correctement.
      Désolé pour le bruit !

    Répondre à ce message

  • Bonjour b_b

    J’ai une petite suggestion pour enrichir ton plugin. Il ne me semble pas avoir vu quelqu’un en parler dans les commentaire.

    Dans les fonds de carte disponibles ce serait super d’avoir accès aux fonds du Géoportail (cartes IGN, photos aériennes, parcelles cadastrales, cartes anciennes, ...).
    ça nécessite une clé (comme pour la couche Aerial de Bing) mais sinon c’est du WMTS dans la même projection qu’OSM, Google ou Bing, donc compatible avec Leaflet.
    Voila un getCapabilities avec toutes les couches dispo :
    http://gpp3-wxs.ign.fr/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetCapabilities

    Répondre à ce message

  • 2

    Bonjour,

    et toujours un plaisir d’utiliser ce plug :) Tout marche vraiment bien, j’aurais juste un petit soucis lors d’un affichage.

    En effet, mes événements sont liés à des points géolocalisés. Il peut il y avoir plusieurs événéments sur un même point. Je souhaite donc surcharger l’infobulle d’un point de l’ensemble des événements avec lequel il est lié.

    J’utilise le fichier gis_evenement avec surcharge des infos bulles dans la partie description :
    "description":[(#INCLURE{fond=json/inc_bulle, id_article}|json_encode)]

    Et cette boucle

     <BOUCLE_agenda(EVENEMENTS){age<=0}{par date}{0,5}>
                            
                            [(#DATE_DEBUT|affdate_jourcourt)] - 
                            [(#DATE_DEBUT|heures)]h[(#DATE_DEBUT|minutes) ] -
                            <BOUCLE_lienagen(ARTICLES){id_article}><a href="#URL_ARTICLE" title="Programmation #TITRE">#TITRE</a></BOUCLE_lienagen>
                            (#VILLE_AGENDA)<br>
                          
               </BOUCLE_agenda> 

    Forcément ça ne fonctionne pas... Il me liste les événements d’un même article. Je m’emmêle un peu les neurones. Une solution ?

    Merci de votre aide :)

    • Salut, vu que tu souhaites afficher des événements je pense qu’il serait mieux de passer id_evenement à l’inclure et non id_article ^^

      [(#INCLURE{fond=json/inc_bulle, id_evenment}|json_encode)]

      Mais à ce que je peux voir ton code ne me semble pas correct pour faire ce que tu souhaites. Il faudrait nous poster le cotenu complet des deux squelettes quelque part en ligne pour qu’on puisse t’aider.

      ++

    • Je n’avais pas vu ta réponse. Je te remercie :) Je mets mon code pour que ça serve à d’autres :
      Le HTML dans un dossier JSON du squelette, gis_evenements.html

      <BOUCLE_events(EVENEMENTS)
       {gis} 
      {id_evenement ?}
       {id_article ?} 
      {id_rubrique IN 4,7,6,8,5} 
       {0, #ENV{limit}} 
       {","} >
      		{"type": "Feature",
      		"geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
      		"id":"#ID_GIS",
      		"properties": {
      			"title":[(#TITRE_GIS*|sinon{#TITRE*}|supprimer_numero|json_encode)],
      			"description":[(#INCLURE{fond=json/inc_bulle, id_gis}|json_encode)]
      			[(#LOGO_GIS|oui)
      			[(#SET{logo_doc,#LOGO_GIS|image_passe_partout{40,40}|image_recadre{40,40}})]]
      			[(#LOGO_GIS|non)
      			[(#CHEMIN{images/marker_defaut.png}|oui)
      [(#SET{logo_doc,#CHEMIN{images/marker_defaut.png}|image_passe_partout{32,32}|image_recadre{32,32}})]
      			]]
      			[(#GET{logo_doc}|oui)
      			#SET{icon_w,#GET{logo_doc}|extraire_attribut{src}|largeur}
      			#SET{icon_h,#GET{logo_doc}|extraire_attribut{src}|hauteur}
      			[,"icon": (#GET{logo_doc}|extraire_attribut{src}|url_absolue|json_encode)],
      			"icon_size": \[[(#GET{icon_w})],[(#GET{icon_h})]\],
      			"icon_anchor": \[[(#GET{icon_w}|div{2})],[(#GET{icon_h})]\],
      			"popup_anchor": \[1,[-(#GET{icon_h}|div{1.2})]\]]
      		}}</BOUCLE_events>

      La boucle dans inc_bulle :)

      <BOUCLE_GEO_LON_LAT_USER(spip_gis_liens){objet=auteur}{id_objet=#SESSION{id_auteur}}>
      [(#SET{user_geo,#ID_GIS})]
      </BOUCLE_GEO_LON_LAT_USER>
      
      <div style="width:300px;">
        <BOUCLE_agenda2(EVENEMENTS gis_liens gis){id_gis ?}{age<=0}{par date}{tout}>
       [(#DATE_DEBUT|jour)]/[(#DATE_DEBUT|mois)] - 
      <BOUCLE_lienagen(ARTICLES){id_article}><a href="#URL_ARTICLE" title="Programmation #TITRE">#TITRE</a></BOUCLE_lienagen><br>
       </BOUCLE_agenda2>
      
      <BOUCLE_GEO(GIS){id_article}>
      <BOUCLE_DISTANCE(GIS){id_gis=#GET{user_geo}}{gis distance}>
      [<font style="font-size:10px;">Adresse&nbsp;&agrave;&nbsp;(#DISTANCE|couper{5})&nbsp;<sup>km</sup></font><br/>]
      		</BOUCLE_DISTANCE>
      	</BOUCLE_GEO>
      </div>

      Et du coup je me rends compte de l’erreur qui génère une autre problématique !!!

    Répondre à ce message

  • Bonjour,

    je souhaiterais afficher dans une carte GIS les événements liés aux articles d’un secteur. Comme la boucle événements directement appelé dans le secteur fonctionne je pensais que cela fonctionnerait :
    [code]
    [(#INCLUREfond=modeles/carte_gis,
    objets=evenements,
    id_secteur=9,
    limit=1000,
    height=600px,
    zoom=5,
    fullscreen=oui,
    centrer_auto=oui,
    overview=oui,
    localize_visitor=non,
    kml=[(#LISTE464,465,466)],
    )][/code]

    Malgré mes tentatives, la carte m’affiche toujours tous les événements...

    Répondre à ce message

  • 8

    Bonjour à tous, et un grand merci à tous les développeurs de la communauté.

    Je suis un pur néophyte, et m’excuse par avance du niveau spéléologique de mon problème.
    Mon premier site perso (en local pour l’instant) : SPIP 3.0.10, thème Maparaan et GIS 4 pour insérer des cartes dans certains articles.
    Je les insère depuis le contenu des articles. Je sais, c’est MAL. Mais malgré 3 semaines d’acharnement, travailler en profondeurs avec boucles & modèles reste au dessus de mes compétences du moment.

    Un exemple :
    carte_gis3|id_article=12|width=100%|height=400px|fullscreen=oui|lat=46.15|lon=-1.11|zoom= 8|maxZoom=15|kml=29|centrer_fichier=non|limit=100|scale=oui|overview=oui>

    Et maintenant, le pb : Les cartes sont apparemment stylées par le thème comme les images (dans l’espace public, RAS dans l’espace privé) avec pour conséquences d’attribuer à chaque tile un cadre du plus mauvais genre, et de faire perdre au marqueur sa transparence.
    Alors y a-t-il un paramètre à insérer dans l’article pour préserver l’apparence de la carte ?

    Merci par avance...

    ArnO

    • Salut,

      Je les insère depuis le contenu des articles. Je sais, c’est MAL.

      Non non, ce n’est pas mal du tout, le plugin est bien prévu pour être utilisé depuis les textes ou dans les squelettes.

      Les cartes sont apparemment stylées par le thème comme les images

      Cela vient certainement de la feuille de styles de ton thème, qui applique des styles de façon un peu trop bourrin aux images. Peut être celle-ci :

      http://zone.spip.org/trac/spip-zone/browser/_squelettes_/maparaan/css/style_maparaan.css#L26

      Pour palier à ce problème, il faut te créer une feuille de style dans squelettes/perso.css et y coller ce contenu :

      .carte_gis img { margin: 0; padding: 0; border: 0; }

      Cela devrait suffire, si ce n’est pas le cas repasse par ici et on renforcera la règle en question pour surcharger ton thème/squelette.

      ++

    • Salut & grand merci pour le coup de main…

      Non non, ce n’est pas mal du tout, le plugin est bien prévu pour être utilisé depuis les textes ou dans les squelettes.

      Content d’apprendre que je suis dans les clous sur ce point.

      Cela vient certainement de la feuille de styles de ton thème

      Je confirme que tu as cerné le pb. Les cartes réagissent aux changement des valeurs de la ligne 26.

      .carte_gis img { margin: 0; padding: 0; border: 0; }

      Il semblerait que ça ne suffise pas. J’ai même tenté ma chance avec :

      .carte_gis img { margin: 0; padding:0; border: 0; }
      .leaflet-tile img { margin: 0; padding:0; border: 0; }
      .leaflet-marker-icon img { margin: 0; padding:0; border: 0; }


      Sans succès, malgré le bon chargement de perso.css.

      As-tu quelques conseils à me donner pour surcharger Maparaan, car là, je suis carrément court en compétences…

      ArnO

    • Sans avoir la structure html sous les yeux je ne peux te proposer mieux que ça (qui devrait fonctionner) :

      div.padd-post-item div.padd-post-item-entry .carte_gis img { margin: 0; padding: 0; border: 0; }

      Sinon, tu peux tenter d’jaouter un #id dans le sélecteur pour surcharger, mais je ne peux te dire lequel sans accès au site en question.

      ++

    • Pan, dans le mille !!
      Pb du fond de carte réglé. Sur le même principe, j’espérais retrouver l’apparence du marker et de son ombrage :

      div.padd-post-item div.padd-post-item-entry .carte_gis img { margin: 0; padding: 0; border: 0; }
      div.padd-post-item div.padd-post-item-entry .leaflet-marker-icon img {margin: 0; padding: 0; border: 0; background: transparent none; }
      div.padd-post-item div.padd-post-item-entry .leaflet-marker-shadow img {margin: 0; padding: 0; border: 0; background: transparent none; }
      div.padd-post-item div.padd-post-item-entry img { border: 1px solid #ddd; background: #fff none; padding: 6px; }

      Ça ne fonctionne pas, alors que si je modifie le paramètre background dans la ligne 4 ci-dessus, tout rentre dans l’ordre.
      Si tu perçois une solution, un dernier coup de pouce est bienvenu.

      Merci déjà pour ton aide précieuse…

      ArnO

    • Tout simplement :

      div.padd-post-item div.padd-post-item-entry .carte_gis img { margin: 0; padding: 0; border: 0; background-color: transparent; }

      Quelle galère ces thèmes qui ciblent les éléments aussi « fortement »...

    • Et encore un problème de réglé.

      Effectivement, Maparaan est plutôt intrusif. Les contrôles de la carte, l’info bulle du marqueur y ont droit également,Je n’ai pas choisi la facilité, mais grace à toi, j’ai pigé le principe...

      J’en profite au passage pour une question qui concerne réellement GIS : Est-il possible de forcer dans un article la couche affiché parmi celles sélectionnées dans la configuration du plugin mais indépendamment de la couche par défaut ? J’ai baissé les bras après avoir longtemps cherché...

      Merci beaucoup et bonne journée,

      ArnO

    • Non, pas pour l’instant, mais ça le sera dans une prochaine version ;)

    • Alors j’ai bien fait de lâcher le truc.
      Et je garde un œil sur les évolutions de GIS...

      ArnO

    Répondre à ce message

  • 19
    Olivier

    Bonjour à tous,

    J’ai construit un site en SPIP 3 avec le module GIS 4. Tout fonctionne impeccablement ! (je tiens à féliciter les développeurs pour le travail car l’outil est très efficace et simple à mettre en place !)
    Aucun soucis hormis sous Chrome. En effet, le bouton « plein écran » ouvre la fenêtre en plein écran mais affiche la carte seulement sur le tiers central de l’écran. Cela ne le fait pas sur d’autres navigateurs.

    Voici un exemple sur le site : http://www.entretien-espaces-publics.fr/?-auvergne-

    Si vous avez une quelconque piste, je suis preneur, j’avoue que je sèche sur ce problème. En attendant, je conseille à mes collaborateurs d’utiliser firefox...

    Merci par avance pour votre aide !

    Olivier

    • J’ai aussi ce genre de soucis avec le mode plein écran.
      Avec midori 0.4.3, le plein écran ne fonctionne pas du tout.

      Ensuite, j’utilise couremment deux écrans et mon navigateur se trouve en général sur l’écran secondaire. Ce qui suit est testé avec iceweasel 21.0, mais je constate ça depuis plusieurs versions.

      • en plein écran, si je sélectionne une zone avec un Ctrl+Clic, ou en double cliquant sur un point, la carte une fois zoomée n’est pas centré sur la zone/point voulu qui se trouve câlé vers le haut, à gauche (par contre, ça fonctionne bien à quelque chose prêt ici http://brunob.github.io/leaflet.fullscreen/ qui n’est pas un site spip, qui n’utilise donc pas git, mais utilise bien le plugin fullscreen de leaflet) ;
      • quand j’utilise, si je quitte le mode plein écran de gis, mon navigateur reste en plein écran. Si je le repasse en mode classique (F11), il repasse aussitôt en mode plein écran. Je suis obligé de le repasser sur l’écran principal, d’enfoncer F11 avant de le ramener sur mon écran secondaire.

      Voilà, pas tout à fait les mêmes soucis que toi Olivier, mais avec la même fonctionnalité.
      À noté que c’est b_b himself qui développe ce plugin leaflet et que par conséquent, nos retours d’expérience sont sans doute les bienvenus : https://github.com/brunob/leaflet.fullscreen

      À suivre …

    • Salut à vous deux,

      Merci pour vos retours et merci à Ludo pour le résumé :)

      @Olivier : Je ne reproduis pas le bug de avec Chromium sur cette page de démo de GIS :

      http://labo.eliaz.fr/spip.php?page=carte

      Olivier, il faudrait commencer par mettre à jour le plugin GIS chez toi car tu es en version 4.1.12 à ce que je vois (la dernière version dispo est la 4.8.9). C’est toujours pas mal de le faire avant de signaler un bug :p

      @Ludo : Oui j’ai connaissance de ce bug du plugin leaflet fullscreen, un ticket est ouvert à ce sujet depuis pas mal de temps :

      https://github.com/brunob/leaflet.fullscreen/issues/1

      Le problème est assez complexe à résoudre et il est aussi présent dans l’implémentation du fullscreen faite par Mapbox, donc pas de piste pour régler le bug pour l’instant :

      https://github.com/mapbox/Leaflet.fullscreen/issues/1

      Pour le deuxième bug que tu pointes, il semble être aussi référencé ici :

      https://github.com/brunob/leaflet.fullscreen/issues/5

      Est-ce bien le même problème que tu obtiens ?

      ++

    • Olivier

      Merci de ta réponse !
      Effectivement, je n’ai pas fait gaffe à la màj du plugin. Ca va tellement vite ! :D
      J’essaye cela et je reviens te dire ça.

      Olivier

    • Olivier

      J’ai donc mis GIS à jour, j’en ai profité pour faire de même avec SPIP, j’ai viré le cache et l’historique de FF.
      Il ne m’a d’abord affiché aucune carte puis le fond de carte est venu mais aucun point dessus. Pourtant, dans le backoffice les points sont bien géolocalisés, bien relié aux articles avec leurs puces qui vont bien.
      Rien n’a été changé dans les squelettes.

      Je dois certainement oublié quelque chose mais je ne vois pas quoi.
      Merci encore pour ton aide !

      PS : oui, j’ai droit à des coups de fouet pour ne pas avoir mis tout ça à jour AVANT de poser mes questions !

    • Aucun problème chez moi avec la page que tu liais dans ton premier message (aussi bien sous Firefox que Chromium). Certainement un pb de cache local de ton côté.

      ++

    • Olivier

      ah par contre là, je suis sûr que non. J’ai vidé tout mon cache et j’ai même essayé sur une autre machine qui n’est jamais allé sur ce site et j’ai les mêmes symptômes, que cela soit avec FF, IE et Chrome (en plus sous IE 8, je n’ai plus le bouton zoom).

    • Olivier

      J’ai vu que sous IE il faisait une erreur de chargement :

      Message : ’properties.popup_anchor.0’ a la valeur Null ou n’est pas un objet.
      Ligne : 9828
      Caractère : 4
      Code : 0
      URI : http://www.entretien-espaces-publics.fr/?-auvergne-

      Est-ce lié ?

      Merci pour ta patience...

      Olivier

    • Ok je vois, tu dois utiliser une version personnalisée des squelettes json. Du coup, il manque un ajout dans ta version, cf :

      http://zone.spip.org/trac/spip-zone/browser/_plugins_/gis/trunk/json/gis_articles.html#L20

      Je vais en profiter pour ajouter un test pour que ce cas de figure ne pose pas de pb à l’avenir.

      ++

    • Et voilà qui devrait fixer le pb :

      http://zone.spip.org/trac/spip-zone/changeset/73869

      Mais tu devrais tout de même adapter tes squelettes json par rapport à ceux d’origine ;)

    • Re

      Pour le deuxième bug que tu pointes, il semble être aussi référencé ici :

      https://github.com/brunob/leaflet.fullscreen/issues/5

      Est-ce bien le même problème que tu obtiens ?

      Je ne crois pas qu’il s’agisse de la même chose. Après, je ne suis pas toujours sûre de ce que je comprend de l’anglais. Dans mon cas, les tuiles apparaissent correctement. En fait, c’est juste le fait qu’Iceweasel reste en plein écran même quand je sors de la carte et qu’il reste bloqué dans cet état, sauf en repassant par mon écran principal.

      Voilà

    • Olivier

      Bonsoir,

      Encore merci pour tout, Bruno, j’ai pu régler tous les problèmes.
      Finalement, j’ai beaucoup galéré en mettant à jour « à la main » le plugin avec tes liens et en faisant la modif dans mon fichier json. Je suis parti du boulot complètement dépité avec un site qui n’affichait plus aucune puce et où il me mettait que la version de GIS était obsolète.
      J’y retourne finalement ce soir en prenant le taureau par les cornes.
      J’ai donc viré le plugin, je l’ai réinstallé en 4.8.10 et restaurer mes deux tables .gis. Comme cela ne changeait rien, j’ai aussi remis mon fichier d’origine et après un effacement du cache et une attente de 5 minutes au moins (je n’arrive pas expliquer cela mais bon...), tout est rentré dans l’ordre !
      Je crois que je ne vais pas toucher à mon fichier json...

      Merci encore !

      Olivier

    • Olivier

      Bonjour,

      Et oui je reviens, sur le même fil car cela concerne toujours le « plein écran ».
      Depuis que j’ai fait les modifications, le boutons « plein écran » ne s’affiche plus, sous IE, FF et Chrome.
      Pourtant je l’ai bien appelé par le paramètre « fullscreen = oui » dans mon squelette.
      A tout hasard j’ai modifier mon squelette json avec la nouvelle forme mais cela ne change rien : pire, je n’arrive pas à avoir mes puces dans ces conditions. En conséquence, j’ai gardé l’ancien squelette (v4.1.12) puisque celui-ci fonctionne.

      C’est quand même bien ironique comme situation : j’avais un problème de plein écran sous chrome et maintenant, le plein écran marche parfaitement, mais je ne peux plus l’atteindre ! :D

      Merci par avance pour votre aide !

      Olivier

    • Es-tu certain de ton ajout du paramètre fullscreen ? Il semble bien qu’il ne soit pas présent ou pris en compte => dans ton source je vois "fullscreen":false,

    • Olivier

      Oui, d’autant plus que je ne l’ai pas modifié et qu’avant j’avais bien le bouton plein écran.
      Je te mets une partie du code de mon squelette :

      [(#TITRE=={Auvergne}|?{#MODELE{carte_gis, objets=articles, lat=45.77, lon=3.09, zoom=7, fullscreen = oui }})<h9><b>Démarche portée par la <a href="http://www.fredon-auvergne.fr">FREDON Auvergne</a> depuis 2010</b></h9>]
      [(#TITRE=={Basse-Normandie}|?{#MODELE{carte_gis, objets=articles, lat=48.95, lon=-0.47, zoom=7, fullscreen = oui }})<h9><b>Démarche portée par la <a href="http://www.fredon-bassenormandie.fr/">FREDON Basse-Normandie</a> depuis 2006</b></h9>]		
      ...

      Comment cela ce fait qu’il traduit par un fullscreen = false ???

    • Eessaye sans espace => fullscreen=oui pour voir...

    • Olivier

      C’est marrant car j’ai justement essayer de mettre un espace avant / après car je n’en avais pas mis avant.
      J’ai remis sans espace et ... malheureusement, non, ca ne change rien.

      A titre d’info, j’ai un autre site en cours de développement, une copie quasi conforme du premier site.
      Sans faire les mise à jour du plugin (SPIP 3.0.8 pur celui-ci), le bouton plein écran apparaît. Avec la mise à jour du plugin, le bouton disparaît immédiatement.

    • Olivier

      ah oui, j’ai aussi interverti #MODELE par #INCLURE qui va bien, l’un comme l’autre c’est pareil...

    • Bonjour,

      Après plusieurs essais où j’ai mis d’autres paramètres sur oui, seul fullscreen reste immanquablement à « false ». J’ai l’impression qu’il ne connais plus le paramètre « fulscreen ».
      As-tu une piste ?

      Merci encore

      Olivier

    • C’est bon. J’ai trouvé !
      En déplacement le paramètre « fullscreen » juste après le paramètre « objet », mon problème est résolu, j’ai le bouton « plein écran » qui s’affiche.
      Reste à savoir si cela vient du fait :
      -  que le paramètre « fullscreen » était en dernier (non suivi d’une virgule ou d’un autre paramètre)
      -  que le paramètre « fullscreen » était après les paramètres « lat », « lon » ou « zoom »
      -  que le paramètre « fullscreen » n’était pas juste après le paramètre « objet »

      Merci encore pour l’aide, Bruno.

      Olivier

      PS : j’ai vu la modif de version vers la 4.8.11. Du coup j’ai mis à jour aussi sec ! :D Ca concerne quoi cette màj ?

    Répondre à ce message

  • 2
    Le Jaseur Boreal

    Bonjour,

    J’ai un noeud de soucis que je n’arrive pas à démeler entre des points géolocalisés GIS4 liés à des articles sur un site réalisé sous SPIP et le squelette ESCAL-V3.70.665.

    Certains points géolocalisés s’affichent et d’autres ne s’affichent pas , bizarre !

    Le code ajouté dans article.html est le suivant :

    début de boucle : "<“BOUCLE_test(GIS)id_article0,1">”
    [(#INCLUREfond=modeles/carte_gis, overview=oui,fullscreen=oui, autocenterandzoom=oui,objets=articles,id_article)]
    "<"/"BOUCLE_test">" (sans les guillemets)

    Quand aucun point géolocalisé n’est attaché à un article spip, la carte ne s’affiche pas. C’est tout Bon.

    1. Sur cet article , le point géolocalisé de l’article concernant le sujet s’affiche sur la carte en bas de l’article.
    Lettonie-visit-liepaja-tourism-orgue-eglise-sainte-trinite-3
    La carte s’affiche avec le seul point lié dans la partie gestion privée du site et aussi dans la partie publique du site. Et seul le point accroché à l’article s’affiche.
    Tout fonctionne, c’est OK

    2. Par contre, sur cet article 409 concernant la nuit des musées où six points géolocalisés à Riga sont liés à l’article dont un point avec logo, aucun point ne s’affiche sur la carte en bas de l’article dans la partie publique,.
    Pourtant dans la partie gestion privée la carte s’affiche avec les points liés à l’article :
    Lettonie-Nuit-Musees-guide-tourist-riga-409

    3. Ici, dans la partie gestion privée la carte s’affiche avec le point lié à l’article.
    Mais partie publique, aucun point ne s’affiche sur la carte en bas de l’article.
    Concert-Festival-national-chanson-danse-2008-lettonie-504

    4. Par contre ici, quand je lie un point localisé existant, sur un article trés ancien où aucun point n’était lié.
    Lettonie-visit-riga-tourism-marche-central-tirgus-2
    Le point localisé apparait sur la carte coté privé et coté public. Tout est Bon, c’est Ok.

    5. Mais ici, quand je lie un point localisé existant, sur un article trés ancien où précédemment aucun point n’était lié, avec par contre ce même point déjà lié dans un autre article : Aucun point ne s’affiche sur la carte publique, alors que le point nouvellement lié apparait coté privé. Lettonie-visiter-Riga-eglise-saint-pierre-tourisme-1

    etc ...

    Avez-vous une solution lumineuse ?
    Je vous remercie de votre aide.

    • Le Jaseur Boreal

      Bonjour,

      Certains points géolocalisés s’affichent et d’autres ne s’affichent pas malgré leur positionnement !

      Comment faire ?
      Avez-vous une solution ?

      Merci de votre aide.
      Bruno

    • Le Jaseur Boreal

      En décocheant la compression HTML tout fonctionne correctement.

      Voir l’explication http://contrib.spip.net/GIS-4#forum469133

      Merci à tous ceux qui apportent leurs contributions,

      Apparemment, selon les compressions de pages, les points apparaissaient ou n’apparaissaient pas. Dès que j’ai décoché dans SPIP cette « compression HTML » et avec vidage du cache, tous les points souhaités apparaissent.

      Il suffisait d’un petit clic !

      Merci

    Répondre à ce message

  • 3

    GIS et compression HTML


    Hello et bravo pour ce plugin ! Je viens de découvrir que si j’active la compression html sur le site je perds les points géolocalisés sur les cartes publiques au calcul de cache suivant. La carte s’affiche bien mais aucun point ne vient avec.

    Cela vous dit-il quelque-chose ? Une piste ?

    • Salut, il ne faut pas utiliser la compression HTML car celle-ci provoque des bugs avec pas mal de plugins. Cette fonctionnalité n’apporte presque pas de gain et tellement de problèmes qu’elle risque de disparaître :

      http://core.spip.org/issues/2813#note-2

      ++

    • Arg !
      Dommage, la compression HTML me permettait de gagner 15-20 pts au gougueule-speed-truc, tant pis j’ai trop besoin des cartes...

      merci de ta réponse et de ton lien.

    • Le Jaseur Boreal

      Décocher la compression HTML

      Super ! Une précision qui solutionne d’un seul clic ma question du 19 mai ( http://contrib.spip.net/GIS-4#forum468084 )

      J’avais des points qui s’affichaient, et d’autres qui ne s’affichaient pas sans comprendre pourquoi.

      Avec la précision importante apportée, j’ai décoché la compression html, vidé le cache, et sur les pages où les points ne s’affichaient pas, maintenant ils apparaissent.
      Je n’avais pas lu cette précision auparavant. Je pense que cela vaudrait le coup de repréciser dans le contenu du guide d’utilisation de GIS4, qu’il est important de ne pas utiliser la compression html.
      Encore merci pour tout le travail fait autour du plugin.
      Bruno

    Répondre à ce message

  • 3

    Salut,

    Je n’arrive pas à afficher une carte avec les points des articles d’’une branche dans un squelette rubrique

    Le code :
    [(#INCLURE{fond=modeles/carte_gis,objets=articles,id_rubrique=#ID_RUBRIQUE})]       

    affiche les points des articles de la rubrique en cours et uniquement cette rubrique

    Le code :
    [(#INCLURE{fond=modeles/carte_gis,objets=articles})]       

    affiche les points des articles de tout le site.

    Comment avoir toute la branche, et seulement la branche ?

    je suis sur un squelette rubrique avec la boucle englobante :

    <BOUCLE_contenu_rubrique(RUBRIQUES){id_rubrique}>
    ..

    Merci !!

    • Salut, vu que cette demande revenait souvent je viens d’ajouter cette possibilité dans la version 4.8.10 qui sera en ligne dans la soirée.

      http://zone.spip.org/trac/spip-zone/changeset/73835

      ++

    • Salut,

      Merci ! Ça marche très bien.

      dd

    • Bonjour,

      J’essaie d’ajouter à mes squelettes un formulaire de recherche :
      en entrée : une liste déroulante des nom des communes déjà géolocalisées (points GIS liés à des articles) (ça j’ai fait)
      en sortie : la carte avec les marqueurs correspondants aux points trouvés pour ces communes : je bloque car la carte ne me montre qu’un point même s’il y en a plusieurs dans la base pour la commune.

      Et tant que j’y suis avez-vous des pistes pour y ajouter une recherche multicritère sur les mots clés liés aux points GIS ? Je ne vois pas comment adapter le plugin critère mots au critère GIS:ville

      Merci de vos lumières

      dd

    Répondre à ce message

  • 11

    Bonjour.

    J’ai posté ça sur la liste : http://archives.rezo.net/archives/spip.mbox/RK7A3IXWQ3KLYF5GVQYNHOAWWMFBR4OR/

    Je cherche grosso-modo à faire des boucles dans les fichiers du dossier json. Mais ça me semble pas possible actuellement. Est-ce que je me trompe ?

    À plus.

    Ludo

    • Salut Ludo,

      Essaye avec ça (pas testé) :

      http://spip.pastebin.fr/27761

      J’y utilise avantageusement le critère gis comme dans ce squelettes json fournit par GIS :

      http://zone.spip.org/trac/spip-zone/browser/_plugins_/gis/trunk/json/gis_sites.html

      Tiens nous au courant ++

    • Salut !

      Je viens de découvrir le critère « gis ». Merci, je ne l’avais même pas vu.
      Ceci dit, je viens d’adapter un peu ta proposition (qui ne fonctionne pas) : http://spip.pastebin.fr/27766
      Cette adaptation ne consiste qu’à prendre en compte le réécriture des balises avec ce critère « gis ». Mais bon, ça ne fonctionne pas mieux.

      Si je tente mes boucles imbriquées en dehors du modèle « carte_gis », elles ont bien un résultat.

      Conclusion : je veux bien encore un coup de pouce.

      En tout cas, merci pour cette réponse rapide.

    • Re Ludo, il faudrait que tu me files un accès au site en ligne pour que j’observe ce qui se passe dans le json généré afin de t’aider à régler ton bug.

      Et attention, car ta version contient une erreur que j’avais corrigé :

      (type = Ateliers} et non (type = Ateliers

      ++

    • Salut !

      Merci pour le correction d’erreur. J’ai modifié mon code en conséquence.

      J’ai mis en ligne ma tentative de boucle : http://www.heureux-cyclage.org/?page=carte_de_sites_2

      Dis-moi ce que tu en penses …

    • Ok on avance :)

      Ton JSON généré n’est pas valide :

      http://www.heureux-cyclage.org/spip.php?page=gis_json&objets=ateliers&limit=500

      Le problème semble venir du contenu de l’attribut description sur l’item id 237 qui fait que le fichier « est coupé » à partir de là. On dirait bien que le texte de cet article contient un caractère qui pose problème avec json_encode. Tu peux poster le contenu textuel de cet article en ligne stp ?

    • Merci. Je n’avais pas imaginé la possibilité d’utiliser le lien que tu viens de me donner pour vérifier la bonne tenue du json que ça génère.

      Cependant, de mon côté, je ne vois pas de coupure au niveau de l’objet 237. Peut-être y a t-il eu un problème sur le serveur au moment de ton test. Merci de me dire si tu l’as bien en entier maintenant.

      Enfin, en regardant ce lien, j’ai pu voir qu’au moment du changement de mot-clé, deux points gis ne sont pas séparés par une virgule, alors que d’un point vue json, il le faudrait. On peut le constater par exemple juste après l’objet 262 ou l’objet 267.
      Vu l’écriture de la boucle sur les mots-clés, cette absence de virgule est tout à fait logique il me semble. Le défi pourrait donc être de rajouter cette virgule entre chaque mot-clé, sans qu’elle vienne s’ajouter à celle qui s’ajoute entre chaque point gis.

      Je vais donc explorer de ce côté là, mais un coup de main reste bienvenu.

    • Bon, et bien, je ne trouve pas de solution propre pour éviter de créer de trous dans le virgules ou bien le doubler.

      Dans ce cas, je vais doubler des virgules :



      #CONTENU_QUELCONQUE

      Dans ce cas, je vais créer des « trous » de virgules :



      #CONTENU_QUELCONQUE

      Un coup de main est donc bienvenu.

    • Ton problème venait (comme je le signalais dans mes premiers messages) de ton utilisation de plusieurs boucles, qui du coup ne permettent pas de générer un json valide (le coup du critère inter). J’ai encore simplifié ton squelette afin qu’il fonctionne ici :

      http://spip.pastebin.fr/27806

      Une boucle au lieu de 3, mieux non ? ^^

    • Rhoooo le boulet.

      Je disais donc …

    • Re

      Une boucle au lieu de 3, mieux non ? ^^

      Carrément, c’est bien mieux. Je ne connaissais pas l’existence du critère « type_mot ». C’est récent ?

      Je me base essentiellement sur http://programmer3.spip.net pour développer. Je regarde également le code du cœur ou des autres plugins pour me documenter, mais pas tous les jours :-)

      Y’a un endroit ailleurs qui met en valeur ce genre de fonctionnalités bien utiles ?

      Merci et à plus.

    • Le glossaire bien sûr :)

      http://www.spip.net/@

      ps : non c’est pas nouveau comme critère, et ça semble documenté depuis SPIP 1.3 :p

      ++

    Répondre à ce message

  • 5

    Bonjour,

    Concernant le calcul de distances entre l’utilisateur et chaque point GIS, j’avance.

    J’ai créé en php, un code qui calcul la distance entre un point GIS et Paris.
    D’autre part, je géolocalise le visiteur (tester sur Mobile) : Voir en bas de la page http://www.visite-virtuelle-region-centre.com/Le-Sherwood.html par exemple

    L’idéal serait bien entendu de localiser le visiteur en js et utiliser la fonction distance de l’api pour calculer cette dernière par rapport au point GIS.

    Voici mon code :

    <BOUCLE_coordonnees_etablissement(ARTICLES){gis}{id_article ?}>
    Adresse : #ADRESSE_GIS - #CODE_POSTAL_GIS - #VILLE_GIS<br />GPS : #LAT - #LON<br />
    <?php
    function getDistance($adresse1,$adresse2){
    $adresse1 = str_replace(" ", "+", $adresse1);
    $adresse2 = str_replace(" ", "+", $adresse2);
    $url='http://maps.google.com/maps/api/directions/xml?language=fr&origin='.$adresse1.'&destination='.$adresse2.'&sensor=false';
    $xml=file_get_contents($url);
    $root = simplexml_load_string($xml);
    $distance=$root->route->leg->distance->value/ 1000;
    if ($root->status == "OK")
    {
    return $distance;
    }
    else
    {
    return "0";
    }
    }
    // on déclare une fonction qui va nous permettre de récupérer la distance
    echo getDistance("<BOUCLE_distance(ARTICLES){gis}{id_article ?}>#LAT,#LON</BOUCLE_distance>","48.857035,2.352247"); // on utilise la fonction pour trouver la distance Lyon ->Santenay
    echo " km de Paris";?><br />
    #DESCRIPTIF
    </BOUCLE_coordonnees_etablissement>

    Quelqu’un a une idée svp ?

    Ensuite, la prochaine étape serait de localiser les commerces,sur une seule carte, à proximité du visiteur (exple à 50 kms)

    Merci.

    • Salut,

      Pas besoin d’inventer la roue, le plugin propose déjà un critère distance ainsi qu’une nouvelle variante distancefrom qui n’a malheureusement pas été documentée par l’auteur de l’ajout :(

      http://zone.spip.org/trac/spip-zone/changeset/70198/

      Pour localiser le visiteur, leaflet propose déjà une fonctionnalité (qu’on utilise dans gis avec le paramètre localiser_visiteur). Tu devrais trouver ton bonheur dans la doc de l’API Leaflet :

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

      ++

    • Bonjour et merci de ton retour même si avec la doc je n’y arrive pas ...

      Bref, j’avance quand même :

      Voir (sur mobile bien sur pour la localisation) un exemple : http://www.visite-virtuelle-region-centre.com/Cap-Karting.html

      L’internaute est localisé :
      -  La distance avec le point GIS s’affiche
      -  Le temps de trajet (à pied et en voiture) est calculé aussi

      Ce qu’il reste à faire (et là je bloque), c’est :
      -  afficher une carte centrée sur l’internaute
      -  Créer une fonction par laquelle on peut choisir d’afficher sur la carte (et sous forme de liste) les établissements à XX kms de l’internaute : « Autour de moi »)

      Ce n’est pas forcément utile pour moi (car je peux afficher par département (rubrique)) mais ça peut servir pour d’autres.

      A vot’bon cœur m’sieur dames pour votre aide ô combien charitable ...

      Gil

    • Tu dis :

      afficher une carte centrée sur l’internaute

      Je disais :

      Pour localiser le visiteur, leaflet propose déjà une fonctionnalité (qu’on utilise dans gis avec le paramètre localiser_visiteur).

      Ça suffit pas ?

    • en fait ... heu ... comment dire ... Je n’y arrive pas ...
      Tu peux regarder la source si tu veux, je ne l’ai pas protégée ...

    • « Centrer sur l’internaute » sur la page sommaire
      Centrer sur l’internaute (virtuellement) pour afficher les commerces autour sur une autre page

    Répondre à ce message

  • Bonjour,

    Quelqu’un a-t-il trouvé une solution pour que le géocodeur soit plus précis et qu’il trouve enfin les adresses recherchées ?

    Merci.

    Répondre à ce message

  • Laurent J

    Bonjour
    Je souhaite afficher différents points géolocalisés sur différentes cartes... à plusieurs niveaux du site... Je me perds dans les boucles...
    Voici la structure du site :
    Rubrique (racine) : Ex : les partenaires
    Sous-rubriques : bars, boulangeries, hôtels, restaurants, ...
    Sous-sous-rubriques : Bar de la poste, bar du coin, ..., hôtel Machin, restaurant Truc, ...

    Je géolocalise donc les sous-sous-rubriques. Pour chacune d’elles, la carte s’affiche avec son point géolocalisé avec l’appel :
    [(#INCLUREfond=modeles/carte_gis, autocenterandzoom=oui, objet=rubriques, id_rubrique, scale=oui, cluster=oui)]

    Comment afficher alors tous les points des sous-sous-rubriques dans la sous-rubrique ?
    Comment afficher enfin tous les points dans la rubrique (racine) ??

    Merci pour votre aide
    A+ Laurent

    Répondre à ce message

  • 3

    Bonjour tout le monde et merci pour ce plugin, j’ai deux questions

    1/ comment zoomer sur une ville ? par exemple pour la carte de la france j’ai des markeurs dans paris, j’aimerai zoomé sur paris quand j’ouvre ma carte

    2/ comment faire pour que l’infobulle du marqueur s’ouvre automatiquement ?

    Merci de votre aide pour ces deux questions

    • Salut,

      comment faire pour que l’infobulle du marqueur s’ouvre automatiquement ?

      en utilisant le paramètre suivant :

      id_a_ouvrir => id_gis de l’infobulle à afficher au chargement

    • Merci pour l’infobulle qui s’ouvre automatiquement...
      Pas de solution pour la 1er question ? est ce possible de zoomer sur une ville ?

    • Pour centrer automatiquement sur une zone avec des points :

      centrer_auto=oui

      Pour centrer sur une zone en particulier, les paramètres « zoom », « lat » et « lon » sont tes amis.

      Mais, lire la doc de la présente page est l’ami de tes amis. Tout ce que tu demandes y est écrit.

    Répondre à ce message

  • 1

    Bonjour,
    J’essaie d’afficher sur ma carte 3 articles géolocalisés dont leur id sont (5,10,3) mais j’y arrive pas
    Voici ce que j’ai fais :

    #INCLURE{fond=modeles/carte_gis, id_article=5,10,3,  zoom=7}

    ou bien je recupère les id dans une variable et je fais

    #INCLURE{fond=modeles/carte_gis, id_article=#GET{idar} zoom=7}

    Mais rien de tout ça ne marche....qu’est ce que j’ai loupé ? est ce que vous pouvez m’aider please ?

    Répondre à ce message

  • 15

    Bonjour,

    Il y a visiblement un problème de géocoder.
    En effet, je n’arrive pas à localiser des adresses compètes. Seulement les villes.

    Y a-t-il une solution ?

    Merci

    • Bonsoir

      Tu as un lien ? Par ce que j’ai pas ce soucis sur mes sites.

    • Bonjour et merci de ton retour.

      Un lien non puisque cela se passe dans l’administration.
      Peux-tu essayer de m’aider via Teamvewer ?

      Gil

    • Bonjour

      Tu as essayez de vider les caches ? réinstaller le plugins ?

    • Yed i did .
      Ça trouve certaines adresses mais la plupart non.
      Dans ce cas là je suis obligé de renseigner les coordonnées GPS ...

    • La il me faudrait un exemple pour aider ....

    • Merci de ton retour.

      Il suffit de faire une recherche puis « Entrrée » ou rechecher" et là ... il ne trouve rien ...

    • Effectivement, on a aussi le soucis, moi je fais une recherche approximative et ensuite je fixe le point là ou je le souhaite.

    • Idem. Y a-t-il possibilité de fixer le problème ?

    • demande a google ;)

      si tu demande l’adresse sur google maps, il dit quoi ?

    • sur google map aucun problème

    • Bonjour,

      Je souhaite intégrer la géolocalisation du visiteur afin de localiser les articles (GIS) proches de lui - ou une certaine distance.
      Quelqu’un a-t-il développé ce genre de fonction pour GIS4 ?

      Merci

      Gil

    • Bonjour

      Faut jouer avec le critère distance, cela fonctionne bien actuellement.

    • Merci Pierre,

      J’ai cru voir un code de type :

          <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>
          </BOUCLE_m>

      Mais à la place de gis=1, comment utiliser la localisation avec un autre code du type :

      <script>if(navigator.geolocation){navigator.geolocation.getCurrentPosition(successCallback,errorCallback, {enableHighAccuracy:true})}else{''}function successCallback(position){alert("Vous avez été géolocalisé afin d'obtenir des services supplémentaires. Vos coordonnées GPS : "+position.coords.latitude+","+position.coords.longitude+". Bonne visite.");distance(position.coords.latitude,position.coords.longitude)}; ...
    • la je sais pas faire, sur un de mes sites je passe un id_gis dans l’url

    • Tu peux m’envoyer le lien que je regarde le résultat stp ?

      Gil

    Répondre à ce message

  • 1

    Bonjour, comme tous ici, je pense, j’apprécie énormément ce plugin, qui est extrêmement puissant, malgré la relative difficulté de le customizer, parfois - ce qui est à mon avis normal, vu que c’est un domainte très complexe - mais je viens de l’installer sur un spip 3.0.10, GIS4, et là, surprise !

    1. la liste de choix des affichages de cartes n’a plus rien à voir avec la version précédente ...
    2. et surtout, hormis le premier choix (par défaut) dans la liste - openStreetMap - un autre choix supprime complètement l’affichage dans la partie privée du site (mais pas la partie publique). Inutile de dire comme il est peu facile de choisir un affichage s’il faut faire sans arrêt des allers-retours ...

    Est-ce normal (pour les deux questions) ?

    Merci d’avance.

    • Oooops !! Je me réponds à moi-même ... Je viens de faire la mise à jour de GIS en 4.8.7 et c’est rentré dans l’ordre ... Merci les développeurs !!

    Répondre à ce message

  • 2

    Bonjour,
    Est-il possible d’afficher sur une carte les points qui correspondent au résultat d’une recherche sur un des champs GIS (ville, code postal,.) ?

    Merci
    DD

    • Bonjour DD,

      Oui avec le plugin Fulltext

      cf http://www.visite-virtuelle-centre.com (maquette de site en cours de production) où j’ai ajouté une liste de choix sur le champ catégorie, qui est un champ extra.

      Facile et rapide :-)

      Gil

    • Bonjour,

      Je garde ta solution en mémoire, je n’y avais pas pensé..
      Pour l’instant ce que je veux faire est un peu différent : j’ai un formulaire avec une liste déroulante des villes et le choix de la ville permet d’afficher sur la carte GIS les marqueurs correspondants.

      Enfin, devraient permettre d’afficher car je suis bloquée : il n’y a qu’un marqueur qui s’affiche sur la carte même s’il y a plusieurs points dans la ville choisie.

      Dans mon squelette rubrique j’ai :
      <INCLURE{fond=inclure/recherche_mots}{env}>
      et le formulaire recherche_mots contient :

         <form>
                <select name="voir" class="menu_deroulant" size="1" onChange="if 
      (options[selectedIndex].value) { location = options[selectedIndex].value; }">
                 <option selected value="">Ma ville</option>
                 <BOUCLE_ville(ARTICLES){id_rubrique=95}{gis}{par ville}{gis:ville!==' '}>            
                 [<option value="#URL_PAGE{ville,id_article=#ID_ARTICLE}">(#VILLE_GIS|?
      {#VILLE_GIS|unique|propre})</option>]</BOUCLE_ville>    
                </select>
                 </form>  

      et dans mon squelette ville j’ai mis :

      [(#INCLURE{fond=modeles/carte_gis,objets=articles,id_article=
      #ID_ARTICLE,lat=#LAT,lon=#LON,zoom=8,fullscreen=oui})]	
          

      Il y a sûrement une solution plus élégante et qui fonctionne...

      merci

      dd

    Répondre à ce message

  • 2
    obiwanriko

    Bonjour
    Je viens d’installer le plugin car je suis passé à SPIP 3 et là comme d’autres fonctions et plugins, beaucoup de choses sont cassées ou parties... Par exemple je ne parviens pas à rechercher une adresse lorsque je dois créer un nouveau point.
    C’était possible dans le plugin pour spip 2, comment on fait avec celui-ci car Google Maps n’affichent plus les latitudes et longitudes.

    Merci d’avance

    • Salut, comme on peut le voir sur l’image de présentation de la page de configuration du plugin, il suffit d’activer le geocoder pour activer cette fonctionnalité.

    • obiwanriko

      Grand Merci ça marche Nickel !

    Répondre à ce message

  • 1

    Bonjour,

    Je rencontre un petit soucis de positionnement d’un point géolocalisé
    avec le plugin GIS 4.

    Lorsque j’inclus dans mon squelette le code suivant, ma carte n’est pas
    assez zoomé et le point géolocalisé en Australie n’est pas visible sur
    la carte.

    [(#INCLURE{fond=modeles/carte_gis,
         zoom=1,
         height=200px,
         objet=articles,
    id_article,
         scale=non})]

    En ajoutant l’option autocenterandzoom ou centrer_auto dans l’include de
    mon modèle. Le centrage sur ma carte se passe très bien. Mais le zoom
    est trop important pour connaitre l’emplacement du point dans le monde,
    l’option zoom = 1 ne semble pas faire son effet.

    [(#INCLURE{fond=modeles/carte_gis,
         zoom=1,
         autocenterandzoom=oui,
         height=200px,
         objet=articles,
    id_article,
         scale=non})]

    Si tu as une astuce pour jouer avec le zoom et centrer correctement ma
    carte pour visualiser mon point de géolocalisé je suis preneur.

    • Salut, tout simplement :

      <BOUCLE_gis(GIS){id_article}>
      [(#INCLURE{fond=modeles/carte_gis,
          lat=#LAT,
          lon=#LON,
          zoom=1,
          height=200px,
          objet=articles,
          id_article,
          scale=non})]
      </BOUCLE_gis>

      ++

    Répondre à ce message

  • 2

    Bonjour,

    je suis en train de passer un site de spip 2.1.20 vers 3.0.8 et de GIS 1 (Escoitar Gis Plugin) à GIS 4.

    Cela se passe plutôt bien sauf pour la table spip_gis_liens qui n’est pas remplie avec les champs de l’ancien spip_gis

    Je doit manuellement aller sur chaque article et cliquer sur « Lier un nouveau point » ce qui affiche les champs lat / long déjà remplis puis je clique sur enregistrer et la table gis_liens se met à jour.

    Comme j’ai des centaines de points cela m’arrangerait si quelqu’un avait une méthode plus rapide.. (j"hésite à modifier la base de données directement car je ne suis pas sur des liens entre tables).

    merci

    dd

    • Salut, le plugin s’occupe de migrer les données des anciennes versions vers la nouvelle structure des tables lors de son activation. L’upgrade des tables n’a pas dû fonctionner chez toi, il faut que tu regardes dans ta base de données si les données de gis 1 sont toujours présentes (table gis_articles si mes souvenirs sont bons). Si oui, il faut forcer l’upgrade en supprimant la valeur de gis_version_base dans spip_metas après avoir désactivé le plugin. L’upgrade se relancera lors de la réactivation du plugin.

    • Merci Bruno pour ta réponse rapide. Je n’ai pas de table gis_articles dans l’ancienne version mais annuaire_gis et spip_gis

      J’ai modifié les tables dans le site SPIP 3 car les latitudes n’avaient pas été reprises et la table gis_liens n’était pas complète.

      Ça fonctionne même si certains points ont bougé.
      Je t’enverrai le lien vers le site une fois en ligne

      dd

    Répondre à ce message

  • Bonjour,
    Ya t’il un moyen d’afficher sur une carte des articles dont on choisit leur id ???

    par exemple :

    <BOUCLE_gis(ARTICLES){gis}{id_article IN 45,3}>
    #SET{idart,#ID_ARTICLE}
      #INCLURE{fond=modeles/carte_gis, id_article=#GET{idart}, zoom=7}
    </BOUCLE_gis> 

    affiche que l’article 3 sur la carte, alors que je voulais avoir sur la carte les articles 45 et 3. A chaque fois il prend le dernier c-a-d 3 ici.

    Exist- il une possibilité d’afficher 45 et 3 sur la carte ? Merci de votre aide

    Répondre à ce message

  • 2

    Bonjour,
    Je veux changer l’icône de quelque marqueur, pour cela j’aimerai attribué à ces point un mot clé ainsi à la place du marqueur afficher le logo du mot clé. J’aimerai savoir comment afficher le logo du mot clé à la place du marqueur ?? Merci de votre aide

    • Salut, tu as vraiment de la chance car :

      • quelqu’un a déjà posé cette question
      • quelqu’un a rédigé une doc à ce sujet
      • quelqu’un a reposé la question
      • quelqu’un a posté un lien vers la doc dans ce forum
      • et comme je suis sympa je te refile ce lien pour t’épargner une recherche

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

      Sont vraiment gentils tous ces gens non ? :p

    • Oui vraiment gentil !! Merci à vous aussi pour tout ce que vous faites !

    Répondre à ce message

  • 2

    Bonjour ,

    Voilà ma config :

    • SPIP 3.0.8
    • GIS 4.8.5 (test)
    • Saisies pour formulaires 1.30.3

    Je me retrouve avec une vielle erreur trainant sur le forum, à savoi, quand j’enregistre ma configuration de GIS, le teste noajax apparait, et rien ne se passe. Merci pour votre aide.

    • Solution trouvé par Bruno :

      En fait j’avais laissé des espaces dans mon fichiers mes_options.php. Ce qui crée le bug noajax

      enfantin une fois que l’on sait

    • Précision, les espaces en question étaient présents avant l’ouverture de la balise <?php.

    Répondre à ce message

  • 7

    Bonsoir tout le monde,
    quelqu’un a t’il réussit a mettre le logo de l’article dans l’nfobulle ?? je sèche, j’ai tout essayé mais marche toujours pas. Je suis allé dans le fichier gis_articles.html j’ai mis #LOGO_ARTICLE je l’ai tourné dans tous les sens mais le logo ne s’affiche toujours pas dans l’infobulle.
    Merci de votre aide

    • Merci Pierre, j’ai réussi a affiché le logo

    • Pour insérer le logo de l’article en dimension 32x32, dans le fichier gis_articles.html je modifie

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

      par

      [(#SET{titre,[(#LOGO_ARTICLE_RUBRIQUE|image_reduire{*,32}|image_recadre{32,32})]<a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a>})]"title":[(#GET{titre}|json_encode)],
    • J’aimerais avoir 2 fichiers différents gis_articles.html (pour une gestion très différente des logos).
      J’imagine créer mon second fichier fichier gis_articles2.html.
      D’où peut il être appelé, j’ai cherché dans modèle/carte_gis.html mais ne trouve pas.
      Merci

    • 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é.

      Donc, objets=lireladoc alimentera ta carte avec le squelette json/gis_lireladoc.html :p

    • Merci beaucoup pour ta réponse.

      Pour faire suite à mon message précédent pour incorporer le logo de l’article, je voudrais à présent incorporer la 1re image du portofolio de l’article, mais mon code ne fonctionne pas.
      J’aimerais faire une boucle dans gis_articles.html comme ça ? (qui ne fonctionne pas je le reprécise)

      [(#SET{titre,
      	<BOUCLE_documents_portfolio(DOCUMENTS) {id_article} {mode=document}{extension IN png,jpg,gif} {0,1}>
      	[(#FICHIER|image_recadre{32,32})]
      	</BOUCLE_documents_portfolio>
                  <a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a>})]"title":[(#GET{titre}|json_encode)],
    • Pour partager mon savoir.

      Ma problématique était d’afficher dans l’infobulle le logo de l’article et dans le cas ou ce logo n’existe pas la première image du portofolio.

      Je me suis inspiré de la solution proposé par Pierre KUHN qui ouvre effectivement plein de possibilités de personnalisation de l’infobulle.
      Dans mon cas dans gis_article.html

      "title":[(#INCLURE{fond=inclure/gis_article_descriptif, id_gis}|json_encode)],

      et dans gis_article_descriptif.html

      <BOUCLE_carte(ARTICLES){id_gis}>
      [(#LOGO_ARTICLE|image_reduire{*,32}|image_recadre{32,32})]
      <BOUCLE_documents_portfolio(DOCUMENTS) {id_article} {mode=document}{extension IN png,jpg,gif} {0,1}>
      	[(#FICHIER|image_reduire{*,32}|image_recadre{32,32})]
      </BOUCLE_documents_portfolio>
          <a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a>
      </BOUCLE_carte>

      Merci à Pierre de m’avoir ouvert la voie

      Le résultat ici

    Répondre à ce message

  • 1
    JérômeD

    Bonsoir,

    Une question sur les possibilités actuelles !! ou futures de ce plugin. Est-il possible sur une carte qui affiche X points de lui mettre à côté des possibilités de filtrage pour choisir de faire apparaître à la demande du visiteur que certains de ses points.
    Autrement dit, est-il possible que les points GIS puissent être regroupé dans des groupes de points et que ces groupes apparaissent sur la carte mais que l’internaute demande de ne faire apparaître qu’un des groupes.

    exemples tu affiches une carte des commerçants / artisans d’un département. Ils sont regroupés par profession et l’internaute souhaite alléger la carte et ne faire apparaître que les bouchers(par exemple, je n’ai rien contre les autres) ?

    Merci pour une éventuelle réponse

    Jérôme

    • Bonjour,

      Une solution serait d’utiliser les mots clefs pour cela, si c’est adapté à ton site.

      dd

    Répondre à ce message

  • 4
    JérômeD

    Bonjour,

    Je viens d’installer le plugin gis4.8.6 sur SPIP3.0.8. J’utilise ce plugin sur d’autres sites mais je n’ai pas les soucis ci-dessous :

    1. J’intègre une carte GIS avec le code suivant dans un article : <carte_gis|centrer_auto=oui|scale=oui|zoom=13|height=500px|id_rubrique=144> pour que mes articles de la rubrique 144 associés à un point GIS apparaissent mais je n’ai rien sur la carte. Est-je fais une erreur dans le code d’intégration : url : http://www.saint-cergues.fr/Carte-d...

    2. SI j’enlève id_rubrique=144, alors là bien entendu tous mes points géolocalisés apparaissent y compris ceux qui sont attachés à des articles supprimés. D’où ma question comment supprimer des points GIS qui sont associés à des articles déjà supprimés. Le rectangle hachuré rouge n’apparait pas dans la gestion du point GIS dans ce cas là ?

    merci d’avance pour vos réponses ??

    Précision j’ai migré ce site de spip 2 à spip3 et donc de GIS à GIS 4.

    • Tu n’étais pas loin, mais tu as certainement du passer à côté de la partie de la doc qui présente Le paramètre objets :

      <carte_gis|centrer_auto=oui|scale=oui|zoom=13|height=500px|id_rubrique=144|objets=articles>

      Pour préciser que tu veux afficher les points attachés à des articles.

    • Julien

      Question à JérômeD : je vais aussi passer un site de SPIP2 + GIS à SPIP 3+GIS4.

      Comment se passe la migration pour le contenu et la géolocalisation des articles déjà existants ? Les tables n’étant pas les mêmes, GIS4 s’occupe de tout ?

      En résumé, est-ce qu’on retrouve la géolocalisation des articles en faisant cet upgrade ?

      site : http://cniid.fr/-Projet-Mon-commercant-m-emballe-durablement,76-

      Merci de votre aide.

      Julien

    • JérômeD

      La migration s’est bien passé. Tous les articles en spip 2/GIS qui étaient géolocalisés ont gardé leur géolocalisation. J’utilisais le système des mots clés avec le marker_icon pour changer le modèle de marqueur. Sur GIS 4 (sauf si tu modifies tes fichiers comme annoncés ici : http://contrib.spip.net/Astuces-GIS), l’article doit être rattaché à un point GIS qui lui à un logo qui remplace le marqueur par défaut.

      Par contre cela a gardé/créé des points GIS d’article qui n’étaient plus en ligne.

      A noter l’excellente fonction des clusters lorsque vous avez beaucoup de points en insérant dans l’intégration de la carte un |cluster=oui|

    • JérômeD

      Merci à b_b pour ta précision. J’avoue effectivement être passé sur cette partie de la doc, soit trop vite car j’utilisais GIS3 soit sans la comprendre...

      Donc cela marche très bien mais je n’en doutais pas. Merci encore pour ce plugin efficace et au suivi tout aussi efficace.

      Juste une dernière petite chose concernant ma deuxième question : comment supprimer des points GIS qui sont associés à des articles déjà supprimés. Le rectangle hachuré rouge n’apparait pas dans la gestion du point GIS dans ce cas là ?

      Merci d’avance.

      Jérôme

    Répondre à ce message

  • 9
    Sylvain

    Bonjour depuis la dernière mise à jour GIS 4.8.5, leaflet correspondant, je n’ai plus aucun affichage de carte ni dans la partie publique ni dans la partie privée. Juste un grand carré gris ?

    Une idée ?

    • Salut,

      As-tu vidé le cache du site te de ton navigateur ? Quelle est l’url du site ?

      ++

    • Oui cache vidé, SPIP et navigateur. : adresse du site

      J’ai aussi reinstallé tous les plugins, je comprends pas

    • Sylvain

      Ouais tu as raison ça doit être un problème de cache, je viens de réinstaller sur un autre site offline et ça marche i n’y a que les couches google qui ne fonctionne pas je vais regarder la doc, de mémoire il faut une clé.

    • Moi tout marche, la création de points, ... sauf l’enregistrement de la config, via : exec=configurer_gis qui renvoie un texte noajax. C’est bizarre, après si on peut modifier la config à la main dans un fichier ou en base, je veus bien le faire ! Dommage j’aurai bien aimé utiliser le geocoder.

    • Hello

      J’ai vider les caches fais des recalcule et je vois que c’est le cluster=oui qui bloque la carte. Une idée ?

    • Hop, pas très sympa de squatter le thread des autres comme ça :p

      http://zone.spip.org/trac/spip-zone/changeset/72772

      La version 4.8.6 corrige ce bug.

    • @spip_360 tu sembles ne pas être le premier à rencontrer ce bug de noajax, le truc c’est que je n’ai jamais réussi à le reproduire. Il faudrait que tu me files un accès au site pour que je puisse observer le bug. Tu peux passer en causer sur IRC si tu veux :

      http://irc.spip.net/

      ++

    • Yo Bruno,

      je t’ai envoyé un accès au site en administrateur sur ton mail pour que tu puisses checker.

      Amicalement

    • Merci b_b pour la correction

    Répondre à ce message

  • Bonjour,
    suite à mise à jour de SPIP 3.07 + GIS 4.8.0 en SPIP 3.0.8 + GIS 4.8.5, j’ai un petit soucis dans l’espace privé : le bloc de géolocalisation rattaché aux documents a disparu alors qu’il est toujours présent sur articles et mots clés..

    Dans la config de GIS, la géolocalisation sur les contenus a été désactivée et réactivée mais sans succès.

    Quelqu’un a-t-il eu le même problème et y a-t-il une solution ?

    Merci pour votre aide.

    Répondre à ce message

  • 8
    Ploufplouf

    Bonjour,

    Je fais un site en SPIP 3.0.7 dans lequel j’ai entreautre les plugins Agenda, Mini calendrier et GIS4. Il semble y avoir conflit car lors de l’activation du plugin agenda j’ai le message suivant sur les pages rubriques ou articles qui présentent un article contenant un évènement :

    Erreur SQL 1054
    Unknown column ’articles.id_evenement’ in ’on clause’
    SELECT gis.titre AS titre_gis, gis.descriptif AS descriptif_gis, gis.adresse AS adresse_gis, gis.pays AS pays_gis, gis.code_pays AS code_pays_gis, gis.region AS region_gis, gis.ville AS ville_gis, gis.code_postal AS code_postal_gis, L1.adresse, gis.code_postal, gis.ville, articles.lang, articles.titre FROM spip_articles AS articles INNER JOIN spip_evenements AS L1 ON ( L1.id_evenement = articles.id_evenement ) INNER JOIN spip_gis_liens AS gis_liens ON ( gis_liens.id_objet = articles.id_article AND gis_liens.objet=’article’) INNER JOIN spip_gis AS gis ON ( gis.id_gis = gis_liens.id_gis ) WHERE (articles.statut = ’publie’) AND (articles.id_article = 444) GROUP BY gis_liens.id_gis

    Quelqu’un a-t-il une solution ?

    Comme je ne sais pas d’où vient le problème, j’ai posté également sur la page de l’Agenda

    Merci,
    Ploufplouf

    • Salut, testé à l’instant sur SPIP 3.0.7 SVN [20400] avec Agenda 3.11.7 - stable + GIS 4.8.0 - test => aucune erreur en affichant une rubrique das le privé même si elle contient un événement.

      As-tu vidé le cache du site ? Tes plugins sont-ils à jour ?

    • ploufplouf

      Bonjour,

      Oui j’ai bien les plugins à jour, du coup comme tu me dis que ça fonctionne j’ai refait un tour sur mes squelettes et je me suis aperçu, l’erreur venait des champs gis que j’avais oubliés de suffixer les champs avec _GIS lors de l’appel dans le squelette. Cette erreur ne ressortait pas avant l’activation du plugin agenda. J’ai corrigé mes squellettes en suffixant et tout fonctionne.

      Merci

    • Ploufplouf

      Re,

      J’ai réellement un souci depuis l’installation de l’agenda avec GIS...

      J’ai ajouté les suffixes sur les balises donc je n’ai plus d’erreur SQL mais les infos d’adresse, ville et code postal n’apparaissent plus...

      Ma boucle d’appel est la suivante :

      	<BOUCLE_adresse(ARTICLES){gis}{id_article}>
                #ADRESSE_GIS<br />           
                [(#CODE_POSTAL_GIS)&nbsp;]#VILLE_GIS
               </BOUCLE_adresse>

      Une idée ?

      Merci

    • Salut, sans lien vers ton site, et sans lien vers le contenu des squelettes utilisés il m’est impossible de t’aider plus...

    • Ploufplouf

      Salut,

      Je t’ai envoyé un message pour l’adresse du site.

      Merci de ton aide

    • ploufplouf

      Re bonjour,

      Je me permets d’insister car je ne trouve pas la source du problème, ou de mon erreur, quant à l’affichage des champs #XXX_GIS pour afficher les adresses.

      Quelqu’un aurait-il un idée ou rencontrerait-il le même problème ?

      Merci

    • Salut, la version 4.8.2 devrait régler ton problème :

      http://zone.spip.org/trac/spip-zone/changeset/72484

      ++

    • Ploufplouf

      Merci,

      En effet la mise à jour du plugin à corriger le problème.

      Encore merci pour ton dévouement et ton aide.

    Répondre à ce message

  • 6

    Trouvé sur https://gist.github.com/search?q=distance.sql , variantes pour calculer les distances, avec arcsinus, arctangeante et arc-cosinus racine et autres trigonométriques :

    -  avec arcsinus :

    CREATE FUNCTION distance (latA double, lonA double, latB double, LonB double)
        RETURNS double DETERMINISTIC
        RETURN 2 * ASIN(SQRT((SIN((radians(latA) - radians(latB))/2) * SIN((radians(latA) - radians(latB))/2) +
            COS(radians(latA)) * COS(radians(latB)) * SIN((radians(lonA) - radians(LonB))/2)*SIN((radians(lonA) - radians(LonB))/2)))) * 6371.01

    -  Idem. « Returns the distance in kilometers, assuming a earth radius of 6,371 km. »

     CREATE FUNCTION <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bGF0X2xuZ19kaXN0YW5jZTwvY29kZT4="></span> (lat1 FLOAT, lng1 FLOAT, lat2 FLOAT, lng2 FLOAT)
        RETURNS FLOAT
        DETERMINISTIC
        BEGIN
            RETURN 6371 * 2 * ASIN(SQRT(
                POWER(SIN((lat1 - abs(lat2)) * pi()/180 / 2),
                2) + COS(lat1 * pi()/180 ) * COS(abs(lat2) *
                pi()/180) * POWER(SIN((lng1 - lng2) *
                pi()/180 / 2), 2) ));
        END

    -  Avec arctangeante :

    create function distance(lat1 real, lng1 real, lat2 real, lng2 real) returns real no sql
    return ATAN2(SQRT(POW(COS(RADIANS(lat2)) * SIN(RADIANS(lng1 - lng2)), 2) + 
    			POW(COS(RADIANS(lat1)) * SIN(RADIANS(lat2)) - SIN(RADIANS(lat1)) *
    			COS(RADIANS(lat2)) *  COS(RADIANS(lng1 - lng2)), 2)), 
    			(SIN(RADIANS(lat1)) * SIN(RADIANS(lat2)) + COS(RADIANS(lat1)) *
    			COS(RADIANS(lat2)) * COS(RADIANS(lng1 - lng2)))) * 6372.795;

    -  Avec arc-cosinus, construction php de la requête : "SELECT *,(((acos(sin((".$latitude."*pi()/180)) * sin((<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+TGF0aXR1ZGU8L2NvZGU+"></span>*pi()/180))+cos((".$latitude."*pi()/180)) * cos((<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+TGF0aXR1ZGU8L2NvZGU+"></span>*pi()/180)) * cos(((".$longitude."- <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+TG9uZ2l0dWRlPC9jb2RlPg=="></span>)*pi()/180))))*180/pi())*60*1.1515) as distance FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+VEFCTEU8L2NvZGU+"></span> HAVING distance <= ".$distance;

    Les formules peuvent aussi être utilisées sans définir de fonction.

    • JLuc : cela suppose une version que My avec les procédures stockées (en même temps on me dira que c’est de plus en plus courant...) truc qui n’est pas portable... (tous les SGBDR n’ont pas cette fonctionnalité —à ce propos, lite peut-il ?— ou utilisent des syntaxes incompatibles —Pg est assez compatible avec Ora mais c’est assez différent de My !) Le faire au niveau de PHP, comme l’indique b_b, ou directement dans la requête (sans définir de fonction) est donc mieux... Quand à la formule qui est meilleure, c’est un autre débat (coût comparés de calculs et effets connus de certaines fonctions trigonométriques dans des circonstances particulières)

    • J’écrivais en effet :

      Les formules peuvent aussi être utilisées sans définir de fonction.

      Question performance par ailleurs, je pense que dans de nombreux cas, lorsqu’il s’agit de filtrer les points qui sont à moins d’une distance limite d’un autre, il est possible, et intéressant lorsqu’il y a beaucoup de points, 1) d’utiliser une formule approximative (par exemple, très basiquement : la somme des valeurs absolues des différences de latitude et longitude, très rapide à calculer et à comparer à 1,5 x le-rayon), et seulement ensuite 2) d’affiner la sélection des candidats retenus par ce premier filtre grossier, en utilisant l’une de ces coûteuses formules trigonométriques.

    • Tout à fait : faire un premier filtrage (grossier) directement dans la requête et un second filtrage (affiné) dans le traitement ; chacun faisant alors son boulot (en général les SGDB ne sont pas si doués que ça pour les calculs complexes, mais c’est bien leur boulot de trier et comparer des données même parfois sur des calculs simples)

    • Dites moi, concrètement, il y a quelque chose qui ne fonctionne pas bien ou serait améliorable dans le critère distance ?

    • Ah non, actuellement non, pas du tout.

      Mais dans la perspective d’une plus grande base de points, la formule précise est tellement lourde (une quinzaine de fonctions cosinus, sinus, arctangeante, puissance ou racine, fortement consommatrices de CPU et autant de radians, additions ou multiplications) alors que celle approximative est très légère (2 soustractions une addition et une multiplication),
      que ce n’est pas satisfaisant intellectuellement de faire tous ces calculs pour rien.

      Pour le champ #DISTANCE il faut toujours un calcul précis mais pour le critère explicite de comparaison gis distance < 50 ça diminuerait énormément la charge de faire d’abord appel à la valeur approchée pour cerner quels sont les points qui ont besoin d’être plus précisément examinés avec la valeur exacte. Pour tous les rayons petits ou petits-moyens relativement à la répartition des points, cela éliminerait la plupart des calculs.

      Au final, le test précis pour un critère ’rayon’ de comparaison de distance avec une valeur maximale pourrait d’ailleurs tenir dans une seule formule SQL incluant le préfiltre approx + le filtre précis. Je n’ai pas vérifié mais cela devrait ressembler à :
      ((ABS(lat1-lat2)+ABS(lon1-lon2))*uncertainfacteur) < $max*1.5) AND (ICI_LE_CALCUL_PRECIS < $max)

    Répondre à ce message

  • ploufplouf

    Bonjour,

    J’ai remplacé le code dans le gis.html pour avoir un lien sur le titre comme écrit dans la doc mais j’ai un souci : ma carte se trouve sur un squelette spécifique carte.html et quand j’ouvre un point le titre s’affiche bien en lien mais le lien me renvoie sur un spip.php ?article0...

    Mon code d’inclusion est le suivant :
    [(#INCLUREfond=modeles/carte_gis,
    limit=500, fullscreen=oui, width=100%,height=400px,zoom=12
    )]

    Comment faire pour que le lien soit bien celui de l’article contenant le point qui lui est rattaché ?

    Merci pour votre aide

    Ploufplouf

    Répondre à ce message

  • 3

    Salut,
    J’ai un souci que je ne comprend pas trop :

    ce code : [(#INCLURE{fond=modeles/carte_gis,autocenterandzoom=oui,id_article=#ID_ARTICLE})]        dans un squelette article

    fonctionne très bien lorsque mon article a 1 ou plusieurs points référencés qui lui sont propre
    mais dés qu’il a un point partagé avec d’autres objets aucune carte ne s’affiche.

    Warum ?

    dd

    • Extrait de la belle doc rédigée avec amour :

      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.

      Ce code me semble donc plus approprié à ce que tu souhaites faire :

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

    • resalut,

      oui j’ai essayé cela aussi :

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

      mais cela ne fonctionne pas non plus ; la carte ne s’affiche pas et il y a un espace vide à sa taille à la place.

      Lorsque je fais une recherche sur la page : ?exec=gis_tous&recherche=422
      résultat : aucun point géolocalié

      alors que sur la page ?exec=article&id_article=1233 il y a bien un point localisé ?exec=gis&id_gis=422
      de même que sur la page ?exec=article&id_article=584 puisque les 2 partagent un même point

      la carte s’affiche bien pour l’article 584 mais pas pour l’article 1233

      Bref c’est un peu le trou noir pour moi là.

      dd

    • Je ne reproduis pas :

      mais dés qu’il a un point partagé avec d’autres objets aucune carte ne s’affiche

      Dans l’exemple suivant :

      http://labo.eliaz.fr/spip.php?article107

      La carte affiche bien les points liés à l’article en cours (et certains de ces points sont bien liés à d’autres articles du site).

    Répondre à ce message

  • 3

    Bonjour,

    J’essaie de faire fonctionner l’astuce liée aux logos des mots clefs (décrite ici : http://contrib.spip.net/Astuces-GIS) , mais je cale.

    Dans un article ceci fonctionne (avec le marqueur par défaut)                         [(#INCLURE{fond=modeles/carte_gis,objets=articles,id_article=#ID_ARTICLE,autocenterandzoom=oui})]

    mais pas ça :
    [(#INCLURE{fond=modeles/carte_gis,objets=articles_logomot,id_article=#ID_ARTICLE,autocenterandzoom=oui})]

    j’ai bien créé le modèle gis_articles_logomot.html et j’ai un groupe de mots marker_defaut et le mot clé attaché est à l’article.

    dd

    • Salut, quelle est l’url de la page où on peut observer le problème ?

      L’astuce que tu cites mentionne :

      créez un groupe de mots-clés nommé marker_icon et attribuez un logo aux mots-clés de ce groupe

      Mais tu dis :

      j’ai un groupe de mots marker_defaut et le mot clé attaché est à l’article

      Ton problème vient peut être de là, mais sans l’url du site impossible de le deviner...

    • Pour les logos des mots clés, j’ai bien marker_icon comme groupe de mots clés.

      Et je n’arrive pas non plus à afficher les points (la carte est là mais vide) dans un squelette mot avec
      [(#MODELE{carte_gis,objets=mots})]

      Je vais continuer à farfouiller et lorsque je n’aurais plus de cheveux je t’enverrais un lien vers le site (pour l’instant je travaille en local).

      Sinon , dans le squelette article j’ai mis [(#INCLURE{fond=modeles/carte_gis,objets=articles)]
      mais la carte vide s’affiche même pour les articles qui n’ont pas de point liés. Est-ce normal ?

      Sur les pages rubrique la carte et ses points (les articles de cette rubrique) s’affichent bien (hourra !) mais ne remontent pas à la rubrique parente.
      (j’ai plusieurs rubriques sœurs avec des points et je voudrais que la rubrique parente reprenne l’ensemble).
      J’ai essayé avec la syntaxe des versions précédentes de GIS : « recursive=1 » sans succès

      Dernière question à propos du clustering : tu ne le mentionnes pas dans la liste des options de cet article. Est-ce que c’est géré ? Je ne vois pas de fichier image correspondant au cluster dans le dossier du plugin.

      J’ai essayé cluster=1 : ça marche pas (ou bien il faut un nombre minimum de points sur la carte ?)

      Merci

      dd

    • Un petit point : le cluster fonctionne (je pense que c’était lié à mon #INSERT_HEAD_CSS mal placé) et les cartes s’affichent pour certains articles pas pour d’autres.

      Mais je n’arrive toujours pas à faire apparaître mes points géolocalisés pour une branche entière.
      Les logos des mots clés non plus n’apparaissent pas. Pour l’instant je fais l’impasse sur ces 2 choses mais je sens que cela va revenir.

      à suivre..

      dd

    Répondre à ce message

  • 4
    Le Jaseur Boreal

    Bonjour,

    Le site est réalisé sur SPIP 3.0.5 [19905] avec le squelette ESCAL-V3.70.43,
    dans lequel j’ai entre autre les plugins Agenda, Mini calendrier et GIS4, et d’autres.

    dans l’article concerné, lié avec un point géolocalisé (le n°8) ,

    Quand j’incorpore la formule :

    « <carte_gis8|zoom=5|limit=100|scale=oui|fullscreen = oui|overview = oui|centrer_auto = oui> »

    La carte du point géolocalisé n°8 ne s’affiche pas, mais c’est la carte géolocalisée du point n°1 par défaut qui s’affiche.

    Aurais-je oublié un détail ?
    Avez vous une solution ?
    Merci de votre aide

    • Salut, tu as du mal comprendre un truc car tu ne passe pas de paramètre à ton modèle pour lui indiquer quel point afficher. Pour afficher le point n°8, il suffit d’écrire ceci :

      <carte_gis1|id_gis=8|zoom=5|limit=100|scale=oui|fullscreen = oui|overview = oui|centrer_auto = oui>

      Et hop :)

    • Le Jaseur Boreal

      Super, merci Bruno
      ça marche impeccable.
      De débutant dans GIS4 que j’étais, je vais pouvoir tricoter quelques subtilités et abonder, géolocaliser agréablement quelques articles !
      Bon week-end
      Un autre Bruno

    • Le Jaseur Boreal

      Bonjour Bruno,

      Quand on accroche à un article plusieurs points géolocalisés pour indiquer ( par exemple les lieux de plusieurs evenements ) sur une carte qui sera centrée sur la ville concernée.

      Comment faire pour que tous les points apparaissent sur la carte.
      J’ai essayé plusieurs combinaisons, je n’y arrive pas :

      « <carte_gis1|id_gis=8|id_gis=21|id_gis=20|zoom=5|limit=100|scale=oui|fullscreen = oui|overview = oui|centrer_auto = oui> »

      ex : ici Marsannay-la-cote en Bourgogne et Alūksne en Lettonie

      Sachant que pour un autre article qui se déroule ailleurs, ce seront d’autres points géolocalisés qui seront attachés.
      J’utilise SPIP 3.05 et GIS4,

      Merci de votre aide.

    • Bonjour,

      Ceci trouvé sur un des forums fonctionne pour moi à adapter pour un article) :

      [(#INCLURE{fond=modeles/carte_gis,objets=auteurs,lat=#LAT,lon=#LON,id_auteur=#ID_AUTEUR})]

      dd

    Répondre à ce message

  • 3

    Il est certainement possible de changer le fond de carte en modifiant le modèle objet json, mais comment ?
    Je vais avoir besoin de divers rendu selon la nécessité (des kml sur fond de corte sat esrii et des OSM pour les reste de la géoloc). Je ne vois pas comment arriver à faire ça.
    Une idée ?

    • Bonsoir,

      Il me semble pas que se soit possible ....

    • En fait, si.
      J’aurais du me répondre à moi même, parce qu’en fouillant, j’ai réalisé qu’en sélectionnant plusieurs couches de carte (ctrl+clic) dans le configurateur GIS, le choix apparaissait par la suite dans la carte elle-même à la manière du navigateur OSM.
      J’en demandais pas plus.
       :)

    • Ah oui en permettant le choix ?
      Je pensais en l’imposant dans le code de la page ...

    Répondre à ce message

  • 2

    Bonjour,

    J’ai un problème d’affichage des info_bulles des articles. Visiblement cela se passe pour tous les articles dont le titre contient des accents. Est-ce possible ce bug ? Comment fait-on pour le corriger ?

    merci de votre aide.

    tiago

    • Bonjour

      Cela affiche quoi en fait ? Une url serait le top ....

    • Bonjour Pierre,
      C’est bon, le jsondecode ne marche pas avec le charset en iso...il a fallu changer en UTF la base et tout va très bien :) merci beaucoup en tout cas ! bon dimanche

    Répondre à ce message

  • autocenterandzoom|centrer_auto est sympa, mais ne permet pas d’utiliser maxZoom. Il force le zoom max pour que tous les points rentrent dans la carte, alors que l’on peut avoir besoin de récupérer le centre des points et de forcer un zoom maximum inférieur à celui qui est calculé.

    C’est un peu vilain mais voici comment je m’en tire pour combiner les deux, au niveau de cette ligne :
    http://zone.spip.org/trac/spip-zone/browser/_plugins_/gis/trunk/javascript/gis_init_map.js?rev=71050#L133

    if (mapcfg['autocenterandzoom']) {
    	if (map.fitBounds(geojson.getBounds()).getZoom()>mapcfg['maxZoom'])
    		map.setView(map.fitBounds(geojson.getBounds()).getCenter(),mapcfg['maxZoom']);
    	else
    		map.fitBounds(geojson.getBounds());
    }

    Ainsi maxZoom est pris en compte lorsque l’on le passe au modèle et qu’il est moins grand que le zoom calculé par centrer_auto (ou plutôt la carte est rechargée avec). Ce n’est d’ailleurs pas super car elle est chargée une 1re fois, puis rechargée avec centrer_auto, puis rechargée avec le zoom max, mais je n’ai pas su faire mieux :(

    Par ailleurs, autocenterandzoom c’est très explicite sur ce qu’il va faire, mais centrer_auto l’est un peu moins : on pourrait croire qu’il ne va faire que le « centrage » en nous laissant gérer le zoom. Heureusement, la doc est bien claire.

    Répondre à ce message

  • Rhôooo, le id_a_ouvrir qui s’ouvre, top :-)
    Merci du travail accompli, c’est bô un dimanche sous la pluie !

    Répondre à ce message

  • 1

    Bonjour,
    les versions précédentes permettaient de personnaliser les marqueurs en attachant à chaque article un mot-clef du groupe « ’marker_icon ». Comment procéder désormais pour obtenir la même fonctionnalité ?
    Merci

    Répondre à ce message

  • 7

    Bonjour,
    J’utilise GIS (v4.6.5) avec SPIP 3.0.6 (maj ce matin) pour afficher des cartes sur des événements avec Agenda, et je n’arrive pas afficher la moindre carte sur l’espace public. L’affichage se fait bien dans le backoffice mais sur le site public, rien, hormis l’espace que devrait prendre la carte...
    Voici le code d’appel que j’utilise sur une page article.html :

    [(#INCLURE{fond=modeles/carte_gis,objets=evenements,id_article=#ENV{id_article}})]

    ... et le code source généré :

    <div id="map1" class="carte_gis p" style="width:100%; height:400px;"></div>
    <script type="text/javascript">
    /*<![CDATA[*/
    var map1;
    if (typeof map_cfg=="undefined") var map_cfg = {};
    map_cfg["1"] = {
    "mapid":"map1",
    "scrollWheelZoom": true,
    "zoomControl": true,
    "utiliser_bb":false,
    "lat":43.3,
    "lon":5.4,
    "zoom":10,
    "default_layer":"openstreetmap_mapnik",
    "layers":{"openstreetmap_mapnik":{"nom":"OpenStreetMap","layer":"L.TileLayer.OpenStreetMap.Mapnik()"},"openstreetmap_blackandwhite":{"nom":"OpenStreetMap Black and White","layer":"L.TileLayer.OpenStreetMap.BlackAndWhite()"},"openstreetmap_de":{"nom":"OpenStreetMap DE","layer":"L.TileLayer.OpenStreetMap.DE()"},"google_roadmap":{"nom":"Google Roadmap","layer":"L.Google(\"ROADMAP\")"},"google_satellite":{"nom":"Google Satelitte","layer":"L.Google(\"SATELLITE\")"},"google_terrain":{"nom":"Google Terrain","layer":"L.Google(\"TERRAIN\")"},"bing_aerial":{"nom":"Bing Aerial","layer":"L.BingLayer(\"\")"},"thunderforest_opencyclemap":{"nom":"Thunderforest OpenCycleMap","layer":"L.TileLayer.Thunderforest.OpenCycleMap()"},"thunderforest_transport":{"nom":"Thunderforest Transport","layer":"L.TileLayer.Thunderforest.Transport()"},"thunderforest_landscape":{"nom":"Thunderforest Landscape","layer":"L.TileLayer.Thunderforest.Landscape()"},"mapquestopen_osm":{"nom":"Mapquest Open","layer":"L.TileLayer.MapQuestOpen.OSM()"},"mapquestopen_aerial":{"nom":"Mapquest Open Aerial","layer":"L.TileLayer.MapQuestOpen.Aerial()"},"stamen_toner":{"nom":"Stamen Toner","layer":"L.TileLayer.Stamen.Toner()"},"stamen_terrain":{"nom":"Stamen Terrain","layer":"L.TileLayer.Stamen.Terrain()"},"stamen_watercolor":{"nom":"Stamen Watercolor","layer":"L.TileLayer.Stamen.Watercolor()"},"esri_worldstreetmap":{"nom":"Esri WorldStreetMap","layer":"L.TileLayer.Esri.WorldStreetMap()"},"esri_delorme":{"nom":"Esri DeLorme","layer":"L.TileLayer.Esri.DeLorme()"},"esri_worldtopomap":{"nom":"Esri WorldTopoMap","layer":"L.TileLayer.Esri.WorldTopoMap()"},"esri_worldimagery":{"nom":"Esri WorldImagery","layer":"L.TileLayer.Esri.WorldImagery()"},"esri_oceanbasemap":{"nom":"Esri OceanBasemap","layer":"L.TileLayer.Esri.OceanBasemap()"},"esri_natgeoworldmap":{"nom":"Esri NatGeoWorldMap","layer":"L.TileLayer.Esri.NatGeoWorldMap()"}},
    "affiche_layers":["openstreetmap_mapnik"],
    "control_type":true,
    "no_control":false,
    "scale":false,
    "overview":false,
    "fullscreen":false,
    "cluster":false,
    "clusterMaxZoom":0,
    "path_styles":null,
    "autocenterandzoom":false,
    "open_id":"",
    "clusterStyles":[],
    "affiche_points":true,
    "json_points":{
    "url":"http://localhost/fh2013/spip.php?page=gis_json",
    "objets":"evenements",
    "limit":500,
    "env":{"id_article":"16"},
    "titre" : null,
    "description" : null,
    "icone" : null
    },
    "localize_visitor":false,
    "kml":false,
    "gpx":false
    };
    // Charger le javascript de GIS et initialiser la carte (des que DOM ready)
    jQuery.getScript('local/cache-js/jsdyn-javascript_gis_js-0b6a4935.js',function(){
    jQuery(function(){
    if (typeof(callback_map1) === "function") {
    map_cfg["1"]['callback']=callback_map1;
    }
    gis_init_map(map_cfg["1"]);
    });
    });
    /*]]>*/
    </script>

    Que me manque-t-il pour que l’affichage se fasse bien ?
    Merci d’éclairer ma lanterne,
    kris.

    • Salut, impossible de t’aider sans lien vers la page où l’on peut observer le problème...

    • Bonjour Bruno,
      Je viens de t’envoyer un message avec des identifiants provisoires.
      Merci

    • Salut, je ne fais généralement pas de SAD (Service Après Don) « premium » pour les sites privés, mais on va dire que cette fois je fais une exception.

      Ta page comporte une erreurs js :

      TypeError : $(...).scrollFollow is not a function
      http://www.karwan.info/follehistoire2013/squelettes/js/fh2013.js
      Line 22

      Sans ça la carte devrait certainement s’afficher :p

    • Salut,

      Bien vu, c’est corrigé mais... malheureusement ça ne change rien (ce n’est donc pas la cause du problème). Mais d’où peut provenir ce « hidden » !? D’autres pistes ?

      Merci du coup de main :)

    • Je ne vois pas passer la requête ajax qui va récupérer le contenu json pour alimenter la carte, j’ai comme l’impression que le plugin « en travaux » bloque cet accès...

    • Le problème se reproduit en local sans le plugin :-/
      Je continue à tester mais si tu as une autre piste... :)
      Arff !

    • Bonjour Bruno,
      Le problème vient du plugin AnythingSlider (http://contrib.spip.net/AnythingSlider-version-2-x-x)...
      L’appel js de la fonction :

      	//les sliders
      	$(function(){
      		$('#slider').anythingSlider();
      	});

      Connaitrais-tu le moyen de contourner le problème ?
      Merci de ton soutien ;-)
      Kris

    Répondre à ce message

  • 2

    Bonjour,

    Je crois que j’ai le même problème : je viens de réinstaller GIS4 (sur un SPIP 3) et je ne vois toujours que 6 API et aucune couche.

    A l’installation il n’y a eu aucune mention de librairies supplémentaires donc j’ai installé à la main dans /lib le contenu de https://github.com/downloads/brunob/Leaflet/leaflet-gis-4.1.13.zip

    mais cela ne change rien.

    merci
    dd

    • Salut,

      je ne vois toujours que 6 API et aucune couche

      Il n’y a pas de mention d’API dans la page de config de GIS 4, si c’est bien de cette page que tu parles. Es-tu certain d’avoir installé la bonne version du plugin ?

      A l’installation il n’y a eu aucune mention de librairies supplémentaires

      Le plugin affiche pourtant un message à ce sujet si la libraire n’est pas présente dans le répertoire lib à la racine (c’est même SPIP qui s’occupe de ça). Si cela ne fonctionne pas chez toi, le problème est plus « vaste » et cela doit venir d’un problème avec ton installation de SPIP.

    • OK, OK, je me suis bien arrachée les cheveux là-dessus.

      dans la liste des plugins installés j’ai : GIS 3.4.1 - stable
      Lorsque je vais sur / ?exec=charger_plugin, je choisis "GIS « tous les états » j’ai : « j’ai : GIS 4.6.5 - test - déjà installé »

      J’ai enlevé la vieille version 3 à la main et c’est beaucoup mieux maintenant.

      Merci !

      dd

    Répondre à ce message

  • 2
    Christian

    Bonjour,

    merci pour ce super plugin.

    J’ai créé un nouvel objet éditorial XYZ à l’aide de la Fabrique et j’essaye dans l’interface publique de lui faire afficher le point GIS qui lui est spécifiquement lié. Le souci est qu’il m’affiche tous les points GIS dans la base et ne se limite pas à celui qui lui est lié.

    L’adaptation du même code fonctionne très bien pour un article.

    Est-ce que je dois faire une déclaration spécifique de mon nouvel objet éditorial dans le plugin ? Est-ce qu’il y autre chose à faire ?

    Merci pour votre aide !

    Christian

    • Salut, la partie Le paramètre objets de cette page de documentation devrait te permettre de trouver ce qu’il te manque pour y arriver ;)

    • Christian

      Salut,

      merci pour ton indication. Là je viens boucler la première boucle.

      Donc pour faire fonctionner le plugin sur un nouvel objet éditorial j’ai effectivement créé un équivalent de json/gis_articles + j’ai fait une recherche id_article sur toutes les pages actives du plugin et j’ai rajouté mon équivalent id_xyz.

      Et ça a l’air de fonctionner.

    Répondre à ce message

  • 1

    Bonjour,

    j’ai un soucis avec les logos des points géolocalisé : si j’attribue un logo à un point, je perds le marqueur de ce point dans l’interface privée... est-ce que d’autres rencontrent ce problème ?

    J’ai reinstallé le plugin pour petre sûre que cela ne venait pas de l’install et j’ai essayé de faire des modifs dans modèles/carte_gis_preview.html mais sans succès...

    Répondre à ce message

  • 2

    Bonjour,
    J’ai un souci de passage de paramètres à json/gis_monobjet.html

    Dans un squelette de page contenu/page-anciens.html j’ai inséré une carte
    [(#MODELEcarte_gis, objets=contacts, zoom=8, cluster=oui, scale=oui, localiser_visiteur=oui, width=512px)]
    et créé mon fichier de génération de points json/gis_contacts.html
    Jusque là, ça marche.

    Ensuite je mets dans ma page un formulaire pour filtrer les années de début et fin de recherche.
    J’affiche bien les anciens élèves selon ce critère, mais la carte ne prend pas en compte ces critères.

    Comment sont passés les paramètres de l’environnement au fichier de génération json ?

    • Je vois dans carte_gis.html que seuls les paramètres id d’objets standards sont passés :

      jQuery.getJSON("[(#URL_PAGE{gis_json}|url_absolue)]", {[
      
      objets       : "(#ENV{objets,#ENV{class}}|trim)",]
      
      <BOUCLE_modeles_args_prioritaires(DATA){source table,#LISTE{
      	id_objet, id_rubrique, id_secteur, id_parent, id_article, id_breve, id_document, id_mot, id_groupe, id_auteur, id_syndic, id_forum, id_gis, id_evenement }}>
      [#VALEUR : (#ENV{args}|?{#ENV{args/#VALEUR},#ENV{#VALEUR}}|trim),]</BOUCLE_modeles_args_prioritaires>

      Donc j’ai peu espoir de passer d’autres paramètres sans recoder une grande partie...

    • Ca y est trouvé !
      Je vais sérialiser mes critères et les passer dans le champ d’environnement ’recherche’ qui lui est passé à l’appel json.

    Répondre à ce message

  • 2

    Bonjour,

    J’ai testé l’import de fichier kml qui fonctionne bien.
    Par contre, ça ne fonctionne pas avec une fichier kmz (kml compressé au format zip). Existe-t-il une solution ?

    Amicalement,

    Pierrick

    Répondre à ce message

  • 1

    Seconde question sur ce plugin, j’ai activé la géolocalisation sur les documents. Dans la médiathèque je ne vois rien concernant la géolocalisation.

    Merci

    F. BILLARD

    • Oui bien vu, je constate le bug aussi, cela vient d’une incohérence de comportement du pipeline afficher_contenu_objet dans SPIP 3. Les documents ont un fonctionnement dérogatoire de ce côté par rapport aux autres objets de SPIP.

      Je prépare un petit mail pour discuter d’un correctif de SPIP à ce sujet dès que possible.

      ++

    Répondre à ce message

  • 1

    Bonjour,

    Je parviens a afficher plusieurs cartes sur une même page via un id unique définit pour la variable « id_map », cependant une seule carte affiche les informations détaillées au clic sur l’infobulle.

    Comment faire en sorte que les infobulles soient fonctionnelles sur les 2 cartes ?

    Merci

    • Salut, le plugin permet bien d’afficher plusieurs cartes sur une page.

      On pourra certainement t’aider à résoudre ton problème si tu nous donnes l’adresse de la page où le bug est observable.

      ++

    Répondre à ce message

  • 3

    Bonjour,

    Spip 3.0.5 et la dernière version du plugin

    j’ai un petit souci avec le positionnement des bulles d’infos quand j’utilise de marqueurs personnalisés. La bulle se positionne toujours en dessus du marqueur.

    le code produit html est<div class="leaflet-popup leaflet-zoom-animated" style="opacity: 1; transform: translate(1195px, 171px); bottom: -6px; left: -77px;">

    Le problème est la position : « bottom : -6px ; » avec le marqueur personnalisé, au lieu de « bottom : 28px ; » quand on laisse les marqueur par défaut.

    Je peux évidemment travailler avec le css, mais comme j’ai également des zones klm la bulle ce met trop haut pour ces zones si j’adapte la bulle pour les marqueurs. Comment faire ,fonctionner proprement positionnement avec des marqueurs personnalisés ?

    Merci
    Rainer

    Répondre à ce message

  • 2

    Bonjour

    je viens d’installer le plugin GIS et je n’ai que 6 API de cartographies, au lieu des 25 couches annoncées. Ou aurais-je fait l’erreur ?

    Merci

    F BILLARD

    Répondre à ce message

  • 3

    Bonjour,
    J’utilise GIS4 notamment pour localiser les évènements du territoire en complément de l’extension Agenda. Je rencontre un problème quand un évènement à des répétitions. En effet dans la BDD chaque répétition se voit attribuer un id_evenement différent sans que cela soit répercuter dans la table gis_lien. Il en résulte que seule la première occurrence de l’évènement est liée au point géolocalisé.
    Si quelqu’un à une solution, ne serait-ce qu’un bidouillage, je suis preneur.

    Merci

    • Salut, je pense qu’il te suffit de boucler sur l’événement source depuis l’événement qui est une répétition pour retrouver le gis qui va bien pour résoudre ça.

    • Salut et merci pour la réactivité.
      Je vais creuser ça, bien que là tout de suite, je ne vois pas comment lier répétition et évènement source. J’espère que le we me portera conseil.

    • Problème résolu. J’ai un peu honte, je ne connaissais pas la balise #ID_EVENEMENT_SOURCE. Du coup avec, ça a été un jeu d’enfant.
      Merci b_b

    Répondre à ce message

  • 5

    Coucou b_b , content de te relire \o/

    Répondre à ce message

  • 4

    Bonjour,

    Juste un petit mot pour expliquer ce que je viens d’expérimenter :
    J’ai des tracés de circuits sur Google earth, associés à une couche supplémentaire d’environ 2500 points géolocalisés. Un export en kml me donne un fichier de 6 Mo ... Autant dire qu’il m’est impossible de l’afficher de cette façon :
    <carte_gis3|kml=3800|localiser_visiteur = non|point = non|zoom=14>

    Donc (et c’est là qu’est l’info ;) ) il faut exporter en kmz ! De cette manière le fichier ne fait plus que 500 ko (kml compressé) et Gis nous fait le bonheur d’afficher le tout en quelques secondes.
    J’en parle parce que le kmz n’est pas cité dans la doc ;)

    Maintenant ma question : Est ce qu’il est possible de rendre dispo pour le public le moteur de recherche d’adresse ? Et bien entendu zoomer direct à l’adresse en validant ?

    • Merci pour l’info KMZ !
      Je pense que tu peux essayer de rajouter les éléments du moteur de recherche / géocodeur issu de saisies/carte.html dans modèles/carte_gis.html.

    • Houlaaaa ... je viens de tenter la bascule du bout de code ... ça marche mais ça ajoute une carte vierge en dessous de celle qu’on veut afficher ...
      C’est que je ne touche pas une bille dans le code des fonctions appelées (geocoder) -_-’

      Ça doit être super simple pour un développeur aguéri mais perso à part développer des squelettes et quelques modèles assez simples, là je sèche ... Grand max le cvt mais ça s’arrête là ! ;)

      Donc si quelqu’un se sent d’intégrer ce petit script ... ;) Je vais tout de même essayer sur mon dev histoire de pas mourir trop idiot tout de même !

    • Salut, tu peux t’inspirer du code que j’utilise sur Les Taxinomes :

      http://www.lestaxinomes.org/spip.php?page=carte

      Dans cette page, le formulaire de recherche du site est « détourné » pour effectuer une recherche de lieu dans la carte, voici le code qui fait ça :

      		// formulaire de recherche geocoding
      		$("#formulaire_recherche form").submit(function(){
      			var adresse = $("#recherche").attr("value");
      			var geocoder = new L.Geocoder(function(result) {
      				map.setView(result.point, map.getZoom());
      			});
      			geocoder.geocode(adresse);
      			return false;
      		});

      Bonne lecture ++

    • Salut b_b,

      Merci pour le tuyau, j’ai installé ce petit bout de code dans la page modeles/carte_gis.html à la fin du script (ligne 200) comme tu as du le faire sur taxinomes, seulement quand je valide le formulaire, ca me redirige vers la page recherche, je n’arrive pas a « ajaxer » le résultat, enfin je suppose que c’est ce que tu as fait en tous cas ...

      Au lieu de cibler l’adresse ou la ville, il me monte la page recherche.html avec le bon critère dans l’url ...
      Qu’est ce que j’oublis ?

    Répondre à ce message

  • 4

    Bonjour, j’ai installé GIS pour l’utiliser sur un site mutualisé (plugin mutualisaiton) installé sur un serveur local. Spip 3.0.5, GIS 4.1.13.

    Très malheureusement, il ne fonctionne pas du tout dans ce contexte : il veut bien enregistrer des modifications de configuration, mais aucune carte n’apparaît dans la fenêtre et le lien « rechercher » pour obtenir des coordonnées ne fonctionne même pas !!

    J’arrive bien à créer un point (à la main, après avoir fouillé dans Google pour trouver les coordonnées), mais ensuite, rien ne s’affiche !! Quel dommage que ce plugin ne soit pas configuré - apparemment - dans un contexte de ferme à spip ...

    • Oups !! Je me réponds à moi-même ! J’ai supprimé la version en question et l’ai remplacée par la version précédente (3.3.13) qui, elle fonctionne parfaitement bien !! Tout va bien.

      Ceci étant, espérons que la version 4.x pourra fonctionner en mutualisation ...

      De toute façon, ce plugin est un superbe plugin, qui fait honneur à ceux qui l’on développé, bravo !!

    • Salut et merci pour le commentaire sympa :)

      Je n’utilise pas la mutualisation de SPIP, du coup je ne peux pas te dire ce qui cloche avec GIS de ce côté. Peut être que des personnes qui l’utilise dans le cadre d’une mutu pourront t’aider ?

      Sinon, passe un jour sur IRC pour en discuter en direct ;)

      ++

    • rôôô. Comme c’est bien dit !

      WB men.

    • Bonsoir

      Je dirais que tu es en sqlite pour la base ? Par ce que je suis en mutu et la carte tourne bien en mysql.

    Répondre à ce message

  • 6

    Comment puis-je faire pour montrer le logo du point à côté du texte dans les infobulles ?

    Répondre à ce message

  • 1

    Bonjour,
    j’ai résolu mon problème d’affichage de marker, comment je ne sais pas !

    Par contre j’ai un autre problème, j’utilise essentiellement FireFox, je viens de tester mon site sous IE 9 et 7, la carte de s’affiche pas !

    J’ai essayé de changer les paramètres dans « Compatibilité Microsoft Internet Explorer » rien à faire.

    Quelqu’un aurait-il une idée ?

    Merci

    • Salut, impossible de t’aider sans l’adresse de la page où on pourrait observer ton problème...

      ++

    Répondre à ce message

  • 1
    Minicircul

    Bonjour à tous,

    Je souhaite ajouter l’info trafic aux cartes générées automatiquement, mais ça ne fonctionne pas.

    Le code seul avec une carte Google Maps fonctionne :

    <script type="text/javascript">
    $(document).ready(function() {
    $('#map_canvas').googleMaps({
    trafficInfo: true
    });
    });
    </script>

    Quelqu’un à une piste ? Ça m’aiderait bcp ! Merci par avance

    • Salut, comme indiqué en début de l’article, GIS 4 utilise la librairie Leaflet et non GoogleMaps, du coup ce n’est pas cette API qu’il faut utiliser.

      ++

    Répondre à ce message

  • 6

    Un grand merci aux développeurs d’avoir répondu aussi vite à la demande de clustering !
    Super boulot ;-) !!!

    Clustering

    • Salut,

      Tu as fait comment pour afficher les images ?

    • Bonjour Pierre,
      Dans le fichier gis_articles à la place de la #description

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

      Pour contourner le problème du langage, j’encode seulement le résultat de mes boucles, ce qui évite le problème des virgules en trop.

      Dans l’inclure :
      l’id article est repris dans une nouvelle boucle pour afficher le logo article, logo de l’auteur et petit plus, deuxième include d’une boucle gis pour les distances entre l’utilisateur enregistré.

    • Salut

      merci pour ton aide, je vais bosser ça ;)

    • Encore pour Gluco :

      Ton aide serait précieuse et une contrib sur ce que tu explique serait bienvenue, là c’est un peu just ;)

    • Bonjour à vous,

      Désolé pour ces explications assez sommaire, mais je suis un mauvais pédagogue.
      je vais essayer de vous faire un petit tuto avec un squelette et la possibilité d’afficher automatiquement les tracés des cartes, car je vois que Ploufplouf a les pieds dans l’eau.
      Bonne journée à vous.

    • Merci pour cette contrib Gluco ! Super.

    Répondre à ce message

  • 19

    Bonjour,

    Super boulot. J’avais raté plusieurs versions de GIS. Le progrès est sympa.

    Quelqu’un est-il arrivé à mettre des liens dans les info-bulles avec GIS 4 ?
    Je n’y arrive pas.

    La solution proposée dans les commentaires de GIS 3 ne semble pas fonctionner : forum457027.

    Les points n’apparaissent plus avec :

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

    Ils apparaissent, avec le lien, mais non cliquable (car encodage des balises) avec :

    "id":"#ID_GIS",#SET{lien_art,<a href="#URL_ARTICLE">#TITRE</a>}
                    "title":[(#GET{lien_art}|entites_html|json_encode)],

    L’encodage json « mangerait »-il des caractères des balises ?

    Quelqu’un a-t-il une solution ?
    D’avance merci.

    • Salut, je viens d’ajouter un paragraphe à ce sujet dans la doc, bonne lecture ;)

      ++

    • Merci de cette précision, cela en aidera plus d’un, et me conforte dans cette piste.

      Par contre, cela ne change rien pour moi. Le point disparaît toujours dès que je modifie mon squelette json/gis_articles.html avec la prise en compte du lien.
      Quand je fais un copier-coller de celui fourni par le plugin, tout va bien.

      Quand je mets la ligne title que tu proposes, le point disparaît.
      Quand j’enlève le 1er « < » de la balise « a », le point réapparaît, mais le lien est bien sûr inactif dans l’infobulle.

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

      donne

      a href="Visite-rapide-d-Agones.html">Visite rapide d'Agonès

      Je sèche.

      As-tu déjà rencontré ce genre de « galère » ?

    • Salut,

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

      Il manque un < dans ton code...

    • Effectivement, j’ai enlevé le 1er « < » pour montrer que sans lui, j’ai bien un point sur ma carte, avec une infobulle mais qu’il n’y a alors pas de lien actif, du html apparaît...
      Si je mets le « < », pas de point sur la carte.

      De mon côté, je continue d’explorer.
      J’arrive au résultat espéré en n’utilisant pas la fonction json_encode et en renseignant directement des caractère unicodes :

      "title":"\u003Ca href=\"#URL_ARTICLE\"\u003E #TITRE \u003C\/a\u003E",

      Ca passe, mais peut-être pas partout ? Mes tests sont très partiels.

      La fonction « json_encode » est pourtant standard en php 5.3.9 (je teste en local avec easyphp).
      J’imagine que c’est elle qu’appelle le filtre « json_encode ».

      Ca te parle ?
      Tu vois mieux ?

    • marjolaine

      Bonjour,

      Beau travail pour ce plugin, et bravo pour la doc présentée qui est assez complète.
      Je me raccroche à ce fil , car j’ai un autre problème avec les info-bulles : En suivant la doc fournie, j’arrive à afficher correctement les info-bulles avec un lien vers l’article concerné.
      Cependant si j’ai deux articles qui sont liés au même point , seul un des deux apparaît dans l’info-bulle. Y aurait-il un moyen de faire afficher les deux liens des deux articles dans une seule info-bulle ? (le plugin Gmap savait le faire), ou bien peut-être ai-je mal paramétré l’info-bulle : par rapport à votre documentation j’ai enlevé l’* après #TITRE pour ne plus voir apparaître les numéros figurant dans les titres de mes articles.
      je suis sous SPIP 3.05 avec GIS4 (Revision : 67638) et ZPIP-V1
      Merci d’avance

    • Bonjour,
      <Zénitude>
      Étant Bouddhiste et bien décidé à garder ma Zénitude, voici l’illumination de bouddha pour surcharger mes infobulles.
      Débarrasser du langage Json, il est plus facile d’inclure les logos,descriptions et même pourquoi pas les distances par une autre boucle GIS.

      "properties": { 
      
      			"title":[#TITRE|sinon{ je_vais_me_fâcher}|json_encode)],
      			"description":[(#INCLURE{fond=dossier/merci_bouddha, id_xxx}|json_encode)][(#SET{logo_doc,''})]

      </Zénitude>
      Bonne fin du monde 2012 ;-)

    • Bonjour,

      Je reviens à mon ouvrage « quelques » temps plus tard.
      Et je pense avoir trouvé, sans vraiment comprendre tout de même.

      La consigne de personnalisation de l’infobulle est correcte.

      Pour mon site, cela a fonctionné quand j’ai recopié la ligne dans l’éditeur (notepad++) en utilisant le clavier. EN recopiant au sens strict donc.
      Le copier-coller depuis le navigateur induisait une erreur. Un transcodage quelque part peut-être ?

    • Pour ne pas s’énerver inutilement soyons SPIP #INCLURE
      Un exemple en fonctionnement

    • ploufplouf

      Bonjour,

      J’ai bien essayé de remplacé la ligne citée dans la doc pour affiché un lien vers l’article dans l’infobulle et personnaliser les infos par un inclure mais rien à faire...

      J’ai bien lu tous vos commentaires mais ça ne fonctionne pas non plus... Quelqu’un peut-il mettre une solution détaillée pour être sur de nerien avoir oublié ?

      Merci

    • Bonjour ploufplouf,
      À quoi ressemble le code de ta page ?

    • ploufplouf

      Re,

      tu veux quel code ? Mon squelette ou le code généré ?

      Pour le code généré ca fait un peu long pour le mettre ici...

      pour mon squelette ca donne l’inclure classique :

      [(#INCLURE{fond=modeles/carte_gis,
      		        limit=500,
                  fullscreen=oui,
                  width=100%,
                  height=400px,
                  zoom=12})]

      pour le généré la partie de l’infobulle ca donne :

      <div class="leaflet-popup-pane"><div style="opacity: 1; transform: translate(133px, -170px); bottom: 28px; left: -90px;" class="leaflet-popup  leaflet-zoom-animated"><a href="#close" class="leaflet-popup-close-button">×</a><div class="leaflet-popup-content-wrapper"><div style="width: 140px;" class="leaflet-popup-content"><strong class="title">BOWLING DE DEAUVILLE</strong></div></div><div class="leaflet-popup-tip-container"><div class="leaflet-popup-tip"></div></div></div></div></div>

      suivi du script js du plugin

      Je sais pas si ceci va t’aider, sinon dis moi ce que je peux te fournir comme infos utiles...

      Merci Gluco

    • Salut

      Tu as modifier le fichier json/gis_article.html ? si se sont des articles ?

    • Pour Gluco :

      Je ne comprends pas trop ton INCLURE. Il se situe où ? dans je gis-json ou ailleurs ?
      D’autre par, j’aimerai modifier l’apparence de l’infobulle, mais pas moyen de surcharger le syle de celle ci, car je ne trouve pas le css !!
      En tout cas ton site de randonnées est superbe !

    • dans le json du point, je peut te filer mes codes j’ai tous mis en place

    • ploufplouf

      Bonjour,

      L’inclure se trouve dans mon squelette dans lequel j’affiche la carte. J’ai tenté de modifié le fichier json/gis_article.html comme dit dans la doc mais ca ne change rien malheureusement pour moi donc je cherche comme faire pour quel e lien soit actif et les infobulles personnalisées...

      Donc s’il y a des codes pour cette mise en place qui fonctionnent je suis preneur.

      Merci

    • Tu vides ton caches via ftp? car sans cela ça sera pas pris en compte déjà.

    • ploufplouf

      Oui je vides bien mon cache. Je vais tout de même faire les modifs comme décrites et attendre une journée complète pour voir si le cache se vide bien et que le problème ne vienne pas de là... Ca m’a déjà joué des tours...

      Merci

    • envoi moi ton code par mail si tu veux, je te retourne la correction si besoin

    • Bonsoir,

      j’ai déposé ma contribution sur le site mais pour les plus impatients voici les fichiers

      Packs

      Je vous souhaite un bon amusement ! ;-)

    Répondre à ce message

  • 3

    Bonjour,
    Sous GIS4.1.11 et SPIP 3.0.5 avec cette instruction
    [(#INCLUREfond=modeles/carte_gis,
    autocenterandzoom=oui,
    id_article=#ID_ARTICLE,
    height=320px,
    width=95%,
    zoom=12
    )]

    la valeur du zoom n’est pas prise en compte. Et si je ne met pas la ligne « zoom=12 », la valeur déclarée du zoom du point de l’article n’est pas prise en compte également (un point par article).
    La carte s’affiche bien centrée sur le point, mais avec un zoom maxi.

    Un exemple : http://www.afrepa.org/combs-la-ville-seine-et-marne.html

    Où est mon erreur ?

    • Je me réponds à moi même après avoir trouver une solution sans utiliser autocenterandzoom=oui qui semble mettre d’office un zoom maxi :


      [(#INCLUREfond=modeles/carte_gis,
      id_article=#ID_ARTICLE,
      height=320px,
      width=95%,
      lat=#LAT,
      lon=#LON,
      zoom=12
      )]

    • Salut, oui c’est bien ça le paramètre autocenterandzoom fonctionne bien quand ta carte comporte plusieurs marqueurs. Par contre, si celle-ci ne contient qu’un marqueur il vaut mieux passer manuellement les valeurs lat, lon et zoom à la carte (lat et lon peuvent être tirés d’une boucle, et le zoom défini en dur par exemple).

    • Bonjour Jesam,

      Merci beaucoup pour ta solution, j’étais en train de me casser les dents sur le même problème, centrer automatiquement une carte sur un point mais pouvoir contrôler le zoom.

      Par contre, il m’a fallu mettre une boucle autour de l’inclusion du modèle.

      <BOUCLE_gis(ARTICLES){gis}{id_article}>
         #INCLURE{fond=modeles/carte_gis, id_article=#ID_ARTICLE, lat=#LAT, lon=#LON, zoom=12}
      </BOUCLE_gis>

      Julie

    Répondre à ce message

  • 2

    Bonjour,

    J’essaye d’utiliser la saisie carte plusieurs fois dans un même formulaire. Le seul problème c’est que les marqueurs s’affichent tous sur la même carte d’une des saisies carte ! Souvent la dernière.
    J’ai regardé si il y avait quelque chose comme id_map, c’est le cas puisque le paramètre nom est utilisé, mais ça n’y fait rien pour ça. Ça doit être dans je javascript où un tel discriminant de mise à jour au clic manque. Une idée ?

    Merci

    SPIP 3.0.5 [19905]
    GIS 4.1.15

    • Problème réglé en remplaçant :
      form_map par [form_map_(#ENV{nom})]
      et init_map par [init_map_(#ENV{nom})]

      Je ne sais pas commiter ça malheureusement...

      En collant et adaptant à minima le bout de code concerné de modeles/carte_gis.html j’ai réussi à afficher un fichier GPX :

      <BOUCLE_test_gpx(CONDITION){si (#ENV{gpx}|oui)}>
        // Définir les couches GPX ajoutées à la carte
        #SET{gpx, #ENV{gpx}}
        [(#GET{gpx}|is_array|non) #SET{gpx, #ARRAY{0,#GET{gpx}}} ]
        <BOUCLE_gpx(POUR){tableau #GET{gpx}}>
          [(#VALEUR|intval|oui)
          var gpx_#COMPTEUR_BOUCLE = new L.GPX(['(#VALEUR|generer_url_entite{document}|url_absolue)'], {async: true}); ]
          [(#VALEUR|intval|non)
          var gpx_#COMPTEUR_BOUCLE = new L.GPX(['(#VALEUR|copie_locale)'], {async: true}); ]
          [(#ENV{centrer_fichier}|!={non}|et{#TOTAL_BOUCLE|>{1}|non})
          gpx_#COMPTEUR_BOUCLE.on("loaded", function(e) { [form_map_(#ENV{nom})].fitBounds(e.target.getBounds()); });]
          [form_map_(#ENV{nom})].addLayer(gpx_#COMPTEUR_BOUCLE);
        </BOUCLE_gpx>
      </BOUCLE_test_gpx>

      J’aimerai maintenant que la carte se centre avec ce fichier lat et lon sont nuls. Pour l’instant ça ne fonctionne que pour la dernière saisie carte de ma page... un peu le même problème ! Quelqu’un a une idée ?

      Merci
      Vop’

    • Problème réglé en remplaçant :

      form_map par [form_map_(#ENV{nom})]
      et init_map par [init_map_(#ENV{nom})]

      Je ne sais pas commiter ça mais voici le fichier saisies/carte.html modifié en PJ au besoin...

      En collant et adaptant à minima le bout de code concerné de modeles/carte_gis.html j’ai réussi à afficher un fichier GPX :

      <BOUCLE_test_gpx(CONDITION){si (#ENV{gpx}|oui)}>
      	// Définir les couches GPX ajoutées à la carte
      	#SET{gpx, #ENV{gpx}}
      	[(#GET{gpx}|is_array|non) #SET{gpx, #ARRAY{0,#GET{gpx}}} ]
      	<BOUCLE_gpx(POUR){tableau #GET{gpx}}>
      		[(#VALEUR|intval|oui)
      		var gpx_#COMPTEUR_BOUCLE = new L.GPX(['(#VALEUR|generer_url_entite{document}|url_absolue)'], {async: true}); ]
      		[(#VALEUR|intval|non)
      		var gpx_#COMPTEUR_BOUCLE = new L.GPX(['(#VALEUR|copie_locale)'], {async: true}); ]
      		[(#ENV{centrer_fichier}|!={non}|et{#TOTAL_BOUCLE|>{1}|non})
      		gpx_#COMPTEUR_BOUCLE.on("loaded", function(e) { [form_map_(#ENV{nom})].fitBounds(e.target.getBounds()); });]
      		[form_map_(#ENV{nom})].addLayer(gpx_#COMPTEUR_BOUCLE);
      	</BOUCLE_gpx>
      </BOUCLE_test_gpx>

      J’aimerai maintenant que la carte se centre avec ce fichier lat et lon sont nuls. Pour l’instant ça ne fonctionne que pour la dernière saisie carte de ma page... un peu le même problème ! Quelqu’un a une idée ?

      Merci
      Vop’

    Répondre à ce message

  • 4
    ploufplouf

    Bonjour,

    J’ai bien tout lu le forum espérant y trouver la solution à mon problème, e,n vain...
    Donc j’ai un souci, j’affiche une carte sur chaque page article avec un point lier et un seul... mais à ma grande surprise les marqueur des autres articles qui ont aussi un point lié s’affiche également.

    Comment faire pour n’afficher que le point lié à l’article sur chaque carte présente dans ma page article ?

    J’ai utilisé le modélè avec l’inclure :

    {fond=modeles/carte_gis,
    	
                id_article=#ID_ARTICLE,
                fullscreen=oui,
                width=100%,
                height=200px,
                zoom=12}

    je spécifie dedans l’id de l’article mais ca ne marche pas à l’affichage sur le site public par contre dans le back-office j’ai bien un seul et unique point qui s’affiche.

    Une idée... ?

    Merci

    • Pour compléter tes tests : as tu essayé en passant un id_article explicite dans ton modèle ?

      {fond=modeles/carte_gis,   
                 id_article=123,
                 ...
    • ploufplouf

      Bonjour,

      Oui j’ai essayé... mais sur le coup pas de changement...

      Mais le lendemain tout est revenu à la normale et j’ai bien juste le point lié à l’article qui s’affiche sur ma carte, certainement un problème de cache que j’avais pourtant vidé en plus de le désactiver mais ca arrive parfois...

      Merci

    • tu devrais mettre à jour ton plugin : un bogue qui causait ce genre de problème à été corrigé hier (27/01/2013)...

    • ploufplouf

      Je vais le faire de suite, j’ai vu les modifs sur le fil de la zone...

      Merci

    Répondre à ce message

  • 1

    Bonjour,
    un petit souci à l’installation...
    j’ai un message ’noajax’ quand j’essaie de valider le paramétrage GIS.
    je suis sur un SPIP 3.0.5 [19905] et GIS 4.1.14 SVN [68220]

    j’ai manqué qq chose ?
    Merci de votre aide

    • Je me réponds.
      Désactivation de tous les plugins puis réactivation. erreur disparue.

      Merci pour ce super plugin.
      Michel

    Répondre à ce message

  • Bonjour,

    Deux petites questions :

    • ou mettre le dossier et fichier /json/gis_article dans Z ? Je n’ai aucun lien dans l’infobulle.
    • Est il prévu une extension vers la fonction MarkerClusterer ? Je vais avoir beaucoup de markers sur 5 cantons et ça fait fouillis. J’ai tenté des trucs mais sans succès.

    Merci..

    Répondre à ce message

  • 5

    Bonjour,

    Que d’améliorations !! Super.

    J’ai un problème cependant avec la boucle exemple ici :

    <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>
    </BOUCLE_m>

    Si je passe dans l’environnement une distance par exemple 20 et que je reprends :

    <BOUCLE_b(GIS){gis distance<#ENV{km}}>

    Il ne se passe rien. C’est comme si le #ENV était totalement ignoré. Comment faire pour changer la valeur ici ?

    • Bonjour,
      J’ai été confronté à ce même problème.

      <BOUCLE_m(GIS){id_gis=1}>
         
          <BOUCLE_b(GIS){!id_gis}{gis distance}>
          
                [(#ENV{km}|>={#DISTANCE}|oui)<INCLURE{fond=dossier/fichier, id_xxx}>]
      		
         </BOUCLE_b>
      
      </BOUCLE_m>
    • Bonjour

      Et tu mets quoi dans le inclure ?
      Je pense que le filtre distance pourrais être amélioré.

    • Bonjour Pierre,
      Beaucoup plus parlant voici mon exemple,
      dans mon cas je voulais filtrer les auteurs avec la valeur de distance #ENV{dist} après un post.
      Dans ma première « boucle geo moi » je récupère mon id_gis, dans la deuxième les id_gis des auteurs en suite je compare avec mon #ENV{dist} la condition remplie l’ id_auteur est transmise à mon include puis repris dans une boucle auteur qui m’affiche la bio ...
      J’avoue que c’est contraignant mais c’est la seule solution que j’ai trouvé, effectivement une amélioration serait la bienvenue bien que déjà le plugin est extra ( merci aux développeurs).
      Pour ma part le problème résolu, j’attends la version clustering ;-)

      <BOUCLE_GEO_MOI(spip_gis_liens){objet=auteur}{id_objet=#SESSION{id_auteur}}>
      #SET{moi_geo,#ID_GIS}
      </BOUCLE_GEO_MOI>
      
      <BOUCLE_AUTRE(spip_gis_liens){objet=auteur}{!id_objet}>
      
      			#SET{ob,#ID_GIS}
      			#SET{ob_auteur,#ID_OBJET}
          
         <BOUCLE_m(GIS){id_gis=#GET{moi_geo}}>
         
          <BOUCLE_b(GIS){id_gis=#GET{ob}}{gis distance}>
          [(#ENV{dist}|>={#DISTANCE}|oui)<INCLURE{fond=auteur/inc_bio_auteur}{id_auteur=#GET{ob_auteur}}>]
      		
         </BOUCLE_b>
          </BOUCLE_m>
      
      </BOUCLE_GEO_AUTRE>
    • Bonjour

      Merci mais en fait tu fais du plugins complexe que ce que gis pourrais prévoir non ?
      Tu as une adresse ou je peux voir le code en fonction ?

    • Sans doute !
      j’imagine que la procédure n’est pas très orthodoxe,
      mais je ne suis pas le seul à vouloir effectuer des recherches de distance, je pense que la démarche de Bernard est la même, en tout cas cela répond à ma demande.
      Pour l’instant je suis en version développement,mais je ne manquerai pas de t’envoyer l’adresse une fois le site en ligne.

    Répondre à ce message

  • Dans carte_gis.html, ligne 160,

    popupContent = popupContent + feature.properties.description;

    il faudrait rajouter +’ ’ entre les deux, car les 2 textes se touchent...

    Répondre à ce message

  • Bonjour,

    Je teste actuellement votre plugin, l’occasion pour moi de vous féliciter pour cet excellent travail : bravo !

    Je rencontre cependant quelques menus défauts à l’utilisation - désolé d’être désagréable :)) - et peut-être est-ce dû à une configuration insuffisante de ma part, ou bien à l’utilisation d’autres plugins - ou peut-être simplement quelques améliorations à apporter ? =°)

    Gis 4 activé sur un Spip 3.0.5 en mode html 5.

    -  Je souhaiterais passer sur des couches GMap, or lorsque j’active une des couches (roadmap, satelitte ou terrain), l’enregistrement de la configuration s’effectue sans problème (+ chargement des scripts ok) mais je ne vois aucun changement côté public : un paramètre spécifique doit-il être pris compte ?

    -  A l’affichage, je n’utilise plus le bouton ’recalculer la page’ sinon je perds tous les points sur mes cartes (même en rechargeant la page de manière classique) et malheureusement cela intervient également lors d’une navigation page par page (le centrage auto ne s’effectue pas, la carte reste vide) : ce défaut n’intervient pas systématiquement mais suffisamment pour vous le signaler.

    Ne pouvant pour l’instant en juger par moi même, question complémentaire : une fois les couches GMap activées, l’utilisateur a-t-il le choix d’afficher en mode satellite ou terrain ?

    Merci d’avance de vos réponses et aides,

    Répondre à ce message

  • 4

    Bonjour,

    Y a-t-il une entrée JavaScript afin d’ajouter des points (à partir d’un json) sur une carte déjà affichée.
    On cliquerait sur un lien qui ajoute des marqueurs sur la carte.

    Merci

    • En fait peut-être pourrait-on proposer une option du modèle carte_gis de type point=seuls qui ne relance pas le script de création/affichage de la carte, et ne fait qu’aller chercher les points pour les mettre sur la carte.

    • Oui c’est possible, mais pas à intégrer dans les fonctions par défaut du plugin, le but étant de ne pas produire une usine à gaz. Pour y arriver il faut utiliser une fonctionnalité que je viens d’intégrer à GIS dernièrement : http://zone.spip.org/trac/spip-zone/changeset/67274/

      Le log de commit explique comment utiliser ce pipeline js. Tu peux regarder comment je l’exploite sur lestaxinomes.org :

      http://www.lestaxinomes.org/album7

      ++

    • Humm.. je n’arrive pas encore à saisir si ça répond à mon besoin.
      Le callback est appelé après le chargement de la carte donc défini au chargement de la page. Mais à ce moment-là, je ne sais pas encore quels points vont être chargés.
      C’est après avoir cliqué pour appel d’une noisette en Ajax que mes points seront dispos.

    • Stéphane Santon

      Alors pour ne pas produire une usine à gaz : séparer le modèle en 2 parties :

      • un premier qui crée la carte,
      • le second qui insère les points ?

    Répondre à ce message

  • Salut,

    Sur une même page j’affiche une map avec ses marqueurs, et en dessous des blocs listant le contenu des marqueurs. J’aimerais qu’au clic sur un bloc, cela provoque l’ouverture de la fenetre correspondante sur la map, afin que l’utilisateur sache à quel marqueur le bloc fait référence... Y a t il un moyen simple pour ce faire ?

    THx !

    Répondre à ce message

  • 1

    Yo,

    Y’a une coquille dans la doc : pour afficher l’adresse, la ville, le code postal, le pays, etc. il ne faut pas suffixer avec « _GIS ».

    Répondre à ce message

  • 1

    Bonjour,

    Ne possedant pas encore de smartphone, je me permets de vous poser qques questions plus sur le theme de la goelocalisation en temps réel d’un téléphone que sur le plugin GIS.

    je ne comprends pas comment un téléphone portable peut transmettre ses coordonnées GPS au site internet (le mien) afin que ce dernier affiche sur une carte la position.

    enfin, est-ce concevable de réaliser ceci avec le pugin GIS (ou GMap) ? Car afficher des points depuis la partie privee n’est pas envisageable dans cette optique.

    j’ai qd-meme qques adresses a fournir si certains veulent se documenter.
    http://html5professor.com/tutoriels-6.html
    http://www.alsacreations.com/tuto/lire/926-geolocalisation-geolocation-html5.html
    http://www.html5-css3.fr/html5/tutoriel-geolocalisation-html5
    http://www.pearltrees.com/#/N-fa=702937&N-u=1_61531&N-p=17095825&N-s=1_2361433&N-f=1_2361433&N-play=1

    Bravo qd meme à l’auteur du plugin, ayant fait un peu de programmation en autodidacte, je me rends compte de la quantité de boulot necessaire pour en arriver à ce résultat. Maintenant faut suivre le projet... le plus délicat (AMHA). Bon courage

    Merci,
    areuh

    • Stéphane Santon

      Bonjour,

      C’est le navigateur Web qui a un module de localisation GPS alimenté en données par l’OS du smartphone, lui-même par le GPS.
      Le site Web peut alors appeler une fonction JavaScript qui récupère les coordonnées.

    Répondre à ce message

  • 2

    Bonjour,

    Un grand bravo pour ce plugin qui marque une nette avancée dans son domaine.
    Je vous suggère deux améliorations qui de mon point de vue seraient très utiles :
    1- Pouvoir lier un point via une carte en cliquant sur le marqueur. Actuellement le formulaire de recherche est certes pratique mais quand on a bcp de points la recherche directement sur la carte pourrait être un plus.
    2- Pouvoir passer en critère de chaque carte la couche à utiliser. Cela permettrait de mixer le fond en fonction du thème de la carte à afficher.

    Voilà pour mes impressions et encore bravo pour le super boulot.

    Sam

    • Salut, et merci pour les commentaires.

      Pour le point 1, j’y avais pensé mais je trouve justement qu’à partir du moment où le site comporte quelques centaines ou milliers de points une interface de choix sur une carte serait contre intuitive.

      Pour le point 2, oui je suis d’accord. Il faut juste trouver un système d’identifiant unique pour chaque couche (on a déjà une info de ce type pour chaque couche, ça peut donc se faire). Je vais tenter d’intégrer ça quand j’aurai un moment, à moins que quelqu’un se décide à le faire avant moi :p

      ++

    • Salut,

      En fait il faudrait pouvoir avoir le choix entre recherche littérale et recherche cartographique. Là ce serait le top !
      Pour le reste je n’ai malheureusement pas les compétences nécessaire au développement d’une telle amélioration. Je serais donc patient en attendant qu’elle devienne un jour réalité ;o)

      Sam

    Répondre à ce message

  • 3

    Bjr,

    je n’arrive pas à installer GIS 4 sur un spip version 3.0.5, en fait c’est la librairie Leaflet qui n’est pas active.

    J’ai le message suivant « Ce plugin nécessite la librairie leaflet-gis-4.1.13 http://github.com/downloads/brunob/Leaflet/leaflet-gis-4.1.13.zip »

    J’ai pourtant uploader leaflet-gis-4.1.13 dans le répertoire plugins-dist !?

    Est-ce quelqu’un pourrais m’aider ?

    Merci d’avance.

    • Salut, comme indiqué dans le message affiché par SPIP, les librairies sont récupérées automatiquement et déposées dans le répertoire lib à la racine de l’installation de SPIP (répertoire à créer s’il n’existe pas).

    • Bjr b_b,

      effectivement ça marche mieux comme ça !

      Merci beaucoup !!!

    • b_b,

      désolé mais je galère encore !

      je n’ai pas de marker affiché sur la carte dans mon article !

      1/ j’ai configuré GIS :
      -  indiqué des coordonnées : oui
      -  zoom : 15
      -  OpenStreetMap
      -  Geocoder : non
      -  Bing : non
      -  afficher champs... : oui
      -  centrer... : oui
      -  activer - articles : oui

      là j’ai bien mon marker (bleu) sur la carte !

      2/ j’ai créé 3 points géolocalisés
      j’ai bien las marker !

      3/ mis du texte et le code dans l’article <carte_gis1|zoom=16|limit=100|scale=oui|>

      4/ j’ai lié un point avec mon article
      j’ai bien le marker sur ma carte dans la zone Geolocalisation !

      Mais pas de marker sur la carte dans mon article !?
      ni dans la prévisualisation de l’article dans e backoffice ni sur le site !?

      Merci d’avance !

    Répondre à ce message

  • 1

    Bonsoir

    Je tente de modifier l’infobulle pour les auteurs mais ça donne rien. Quelqu’un à déjà fait ?
    J’ai mis [(#INCLUREfond=modeles/carte_gis,objet=auteurs,limit=1000)] et dans le json [(#SET{titre,<a href="#URL_AUTEUR">#NOM*</a>})]"title":[(#GET{titre}|json_encode)],

    Mais pour le moment ça change rien, j’aurais louper un morceau ?

    • re

      Avec un s à objet [(#INCLUREfond=modeles/carte_gis,objets=auteurs,limit=1000)] dans le squelette ça fonctionne mieux

    Répondre à ce message

  • 3

    Bonjour,

    j’ai installé GIS4 sur un site jusqu’à présent je n’avais pas noté de problème majeur mais depuis la dernière mise à jour j’ai pas mal de problème. Les cartes des points liés aux articles n’affichent plus aucun point (alors que les carte preview dans le back office oui, mais sans les afficher tous (plus de 50 point liés)), dans le back office page gis_tous idem plus aucun marker n’apparait alors qu’avant ça marchait très bien. Donc si tu as une piste pour m’aider à ce que ça fonctionne à nouveau je suis preneur.

    Sinon coté configuration j’ai jamais réussi à utiliser les layer Google mais bon c’est moins génant vu qu’on peut utiliser les autres layers.

    • Salut, sans l’url du site en question il me sera plus que difficile de t’aider...

      ++

    • http://www.afj.asso.fr/ mais tu verras pas grand chose vu que j’ai caché la misère sur le site public en attendant de trouver une solution sur mon serveur local. Si t’es sur l’irc dans la soirée, je vais y trainer aussi, je pourrais t’ouvrir un compte pour que tu vois le problème en backoffice.

    • Je me fouette avec des orties c’était de mon côté qu’était l’erreur.

      Et pour ceux à qui ça arriverait le bug venait d’un point dont les coordonnées n’était pas bien enregistrées dans la BDD, du coup le json généré était invalide et ne s’affichait pas. Je précise qu’à l’origine cela vient d’une manipulation manuelle de la BDD de ma part ce qui disculpe totalement GIS.

      merci à b_b pour son aide sur IRC
      Gloire éternelle à GIS
      ++

    Répondre à ce message

  • 2
    Stéphane Santon

    Bonjour,

    Je vais me lancer dans GIS4 (est-ce bien celui-ci le ’meilleur’ à prendre ??).
    Peux-tu indiquer succinctement comment est géré le critère distance en requêtes ?
    Calcul détaillé dans la requête SQL ? Algorithme simplifié ?

    Gestion des fonctionnalités GeoSpatial de MySQL 5.1 ?

    En GIS2, j’avais créé une procedure stockée dans la base MySQL. Le critère est-il surchargeable pour mettre en oeuvre un appel personnalisé ?

    Merci

    Répondre à ce message

  • 3

    Bonjour,

    Ca semble être la journée des problèmes avec GIS 4 ; j’y ajoute mon grain de sel, désolé...

    Le plugin est vraiment top, mais je ne parviens pas à le faire fonctionner sous IE7 (ou IE mode de compatibilité). Suis-je le seul ?

    Ma config :
    -  SPIP 3.0.5 tout neuf installé spécialement pour des tests.
    -  GIS 4.1.10.

    Ca ne semble pas provenir de Leaflet, qui annonce une compatibilité suffisante pour IE7.

    Grosse différence de comportement entre IE7 et IE9, c’est que la console d’IE7 renvoie :
    SCRIPT1028: Identificateur, chaîne ou nombre attendu

    À mon sens, ça vient probablement d’une pétouille présente dans modeles/gis/carte_gis.html et modeles/gis/carte_gis_preview.html, respectivement lignes 148 et 74 :

    iconAnchor: new L.Point( feature.properties.icon_anchor\[0\], feature.properties.icon_anchor\[1\] ),
    }));

    où IE7 digère mal (comme d’habitude) la virgule en fin de liste de paramètres . J’ai donc essayé de la supprimer :

    iconAnchor: new L.Point( feature.properties.icon_anchor\[0\], feature.properties.icon_anchor\[1\] )
    }));

    ... mais rien à faire, le problème persiste (malgré vidage de tous les caches et compagnie) !

    Vu que je ne trouve pas de solution, je vais probablement me tourner vers la version 3. Je ne peux pas me passer de la compatibilité IE7. C’est dommage car la v4 est vraiment super...

    Bref, si une idée traîne je suis preneur !

    Répondre à ce message

  • Re-salut,

    Désolé de faire mon boulay mais je n’arrive pas à afficher tous les points des articles d’une rubrique et de ses sous rubriques via le paramètre « branche » :
    [(#INCLUREfond=modeles/carte_gis,autocenterandzoom=oui,objets=articles,branche)]

    => Ca me renvoie tous les points, y compris ceux de la rubrique parente (en mode « id_secteur »).

    Je m’y prends mal ?

    Répondre à ce message

  • 6

    Salut,

    J’ai un problème dans l’espace privé pour associer un point géolocalisé à mes articles : lorsque je clique sur "Lier un point", la map ne s’affiche pas, et l’erreur suivante apparait dans Firebug :

    « ReferenceError : callback is not defined
    (54 out of range 3) »

    Une idée ?

    Merci !

    • Salut, oui j’avais introduit un bug dans la version 4.1.9 puis corrigé dans la 4.1.10. Une mise à jour corrigera ton problème.

    • Merci pour ta réponse mais c’est bien la dernière version (4.1.10) que j’ai installée, en tout cas c’est celle qui est mis à disposition depuis cette page (http://files.spip.org/spip-zone/gis4.zip) et c’est ce qui apparait dans l’interface de gestion des plugins de spip...

      Y’a une version plus récente ?

    • As-tu bien vidé le cache du site après la mise à jour du plugin ?

    • A vrai dire je ne l’ai pas mis à jour, je l’ai directement installé tel quel (je m’y mets aujourd’hui). Y’a une manip particulière à faire pour le mettre à jour, la version proposée en dl sur cette page n’est pas la dernière ?

      A noter que le problème est circonscrit à l’onglet « Lier un point », les maps apparaissent bien sur les autres onglets.

    • Ha oui, my bad j’avais oublié de corriger un autre bug ;) Voilà qui est fait :

      http://zone.spip.org/trac/spip-zone/changeset/67388/

      Le zip sera à jour dans moins d’une heure, merci pour le signalement ++

    • Ca marche ! Merci pour ta réactivité (et pour l’excellent job bien sûr) +++

    Répondre à ce message

  • 1
    Pierre-Philippe Fady

    Bonjour,

    bravo pour tout ce travail !
    Je ne retrouve plus la fonction : gis_focus_marker(id_gis, id_map) dans la nouvelle version.
    Y en a t’il une nouvelle qui la remplace ?

    • TinkaTinka

      Une bonne question qui est posée là : un élément ou début de réponse est-il possible ?
      Merci d’avance... et effectivement un GRAND bravo et merci aux développeurs !

    Répondre à ce message

  • Bonjour,

    et merci pour ce plugin qui va m’être très utile. Seulement premier accro :) Il est destiné à montrer l’ensemble des futurs événements de plusieurs sports. J’ai donc associé la carte aux événements, et les événements ont un mot-clé correspondant au sport pratiqué.

    Comment puis-je faire pour avoir un marqueur de couleur différente suivant le sport ? Comment associé le mot-clé à un marqueur ?

    J’ai constater que beaucoup y étaient arrivés, mais je n’ai vu aucune solution dans ma recherche.

    Merci :)

    Répondre à ce message

  • Bon bah ya pas à dire, cette nouvelle mouture, c’est de la boulette en barre de 15 !

    Les cartes sont quand même vachement plus propre que les GMaps de la première version, le geo-coder, c’est tout simplement énorme.

    Bon la prise en main m’a donné quelques sueurs froides au départ (je passais un vieux site spip 2.0 qq chose avec GIS 1 en SPIP 3 GIS 4 ^^) mais avec un bon RTFM finalemen,t ça passe ^^

    Juste une remarque : Désactivez bien le compresseur html de SPIP (au profit d’une compress serveur GZip) sinon vous pouvez oublier les repères sur vos cartes (pas encore compris pourquoi mais j’investigue sec ! ^^)

    Autre chose, sur lequel je suis en train de bosser et pour lequel je vais sans doute proposer un petit commit (si le patron m’y autorise :P) c’est sur une mise automatique des coordonnées des maps en métas de géolocalisation (avec un ’utilise plugin metas’ par exemple, je vais voir comment gérer tout ça)

    Bref, merci, merci, merci et euh... ah oui : Merci ! :-)

    Répondre à ce message

  • 1
    Haqqtiviste

    décidément...

    quand affficher 1 point devient perilleux.

    une carte dans un article avec le point de l’article en question. pas moyen de centrer sur le point, la fonction centrer_auto fait un zoom trop fort, il n’y a rien de visible on croit à un bug.

    j’essaie ça pour récupérer les coordonnés du point en question. mais rien.
    <carte_gis|lat=get{#LAT}|lon=get{#LON}|zoom=14|type=carte|control=small>

    http://www.muslim-mag.com/?Mosquee-d-Echirolles,446

    heeeeeelp.merci.

    • Haqqtiviste

      en fait j’ai inséré le modele carte_gis_preview dans le squelette article. il faut juste que je fasse un tri pour afficher uniquement si l’article contient un point GIS déclaré.

    Répondre à ce message

  • 6
    Haqqtiviste

    bonsoir,

    en spip3 et Zpip et gis4

    voici le contenu de mon inclure :

    [(#MODELE{carte_gis, objets=articles, id_rubrique=33, zoom=12, limit=100, scale=oui, fullscreen=oui})]

    rien ne s’affiche sur la page dédiée à la map :

    http://www.muslim-mag.com/spip.php?page=mosk

    mon fichier json est une copie de celui proposé plus haut. (gis_articles.html)

    je suppute un pb de js, mais quoi... ?

    merci

    • Salut, ta page comporte bien un erreur javascript :

      TypeError : jQuery(« div#menubar div > ul »).superfish is not a function

      Ligne 44 de ce fichier http://www.muslim-mag.com/squelettes/js/main.loading.js

      Sans cette erreur tout devrait fonctionner. Autre point, j’ai eu une erreur furtive en tentant d’accéder à ton site, l’erreur provenait du plugin googlemaps api ; Attention, ce plugin ne doit pas être activé en même temps que GIS.

      ++

    • haqqtiviste

      ok, merci, je vois ça en fin d’aprèm. mais le fichier .js est celui fourni par le squelette sur contrib. étonnant.

    • Haqqtiviste

      en ayant plusieurs ligne du .js je récupère enfin mon fond de carte, il me reste à mettre en oeuvreet comprendre pourquoi mes points ne s’affichent pas.

      merci en tout cas.

    • Ouep, tout est rentré dans l’ordre côté javascript, il faudrait tout de même signaler à l’auteur de ton squelette qu’il y a quelque chose qui cloche ;)

      Tes marqueurs ne s’affichent pas car le JSON qui alimente la carte n’est pas valide. Voilà le problème :

      "title":"title":"<a href=\".\/?Mosquee-d-Echirolles,446\">Mosqu\u00e9e d'Echirolles<\/a>",

      title en double ;)

    • Haqqtiviste

      ok, un GRAND merci.
      le cache a été un peu capricieux, mais au final c’est chouette.

    Répondre à ce message

  • 4

    Bonjour,

    encore un grand bravo aux auteurs !

    je rencontre un petit problème après avoir inclus le code suivant dans le squelette auteur.html

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

    cela ne semble pas fonctionner dans l’espace public alors que dans l’espace privé c’est OK
    exemple : http://urgences-serveur.fr/_secretariat-pr-p-carli,159_.html
    la géolocalisation est activée pour les auteurs (cf document joint)

    Ai je mal paramétré le Plugin ?

    pour info lorsque objets=articles l’affichage est OK dans l’espace public

    Merci de m’avoir lu

    MNA WM UOL

    • Salut, le json qui alimente ta carte n’est pas valide :

      http://urgences-serveur.fr/spip.php?page=gis_json&objets=auteurs&limit=500

      As-tu personnalisé un squelette du plugin ?

    • Bonjour,

      Je n’ai pas (encore) personnalisé les squelettes GIS
      Je viens de réinstaller le plugin, vider le cache, placer les squelettes GIS dans mon dossier squelette et le problème persiste :(

    • Ok, je crois que j’ai repéré la cause de ton bug, c’est la compression HTML de SPIP qui rend le code généré par le squelette JSON invalide. Désactive cette option dans la configuration du site, vide le cache et le problème devrait disparaître.

      ++

    • Trop fort ! Chapeau l’artiste... C’était effectivement la compression HTML de SPIP.

      Merci

      MNA WM UOL

    Répondre à ce message

  • Bonsoir,

    Merci pour ce plugin génial qui fonctionne parfaitement.

    Pour des raisons propres au projet sur lequel je travaille, j’ai voulu positionner les points sur la carte à partir de 2 champs extra #LATITUDE et #LONGITUDE de ma table article, sans passer par l’association des objets GIS <-> ARTICLE.

    Pour ceux qui chercheraient à faire la même chose, il faut surcharger le fichier json/gis_articles.html en remplaçant les trois premières lignes par :

    	<BOUCLE_art(ARTICLES) {spip_articles.latitude!=''} {spip_articles.longitude!=''} {id_article ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}>
    		{"type": "Feature",
    		"geometry": {"type": "Point", "coordinates": [#LONGITUDE, #LATITUDE]},

    etc.

    et appeler le modèle comme d’habitude, en utilisant le paramètre objets=articles.

    Répondre à ce message

  • 1

    Salut !

    Je découvre le plugin GIS avec Leaflet. Ben, c’est bien chouette. Merci aux auteurs.

    Bogue au passage : en mode plein écran, le zoom via la combinaison MAJ+étendre a un comportement étrange (la sélection est décalée par rapport à la position du pointeur), a priori, en rapport à la position de la carte en fond.

    Oilà oilà.

    Répondre à ce message

  • 1

    Bonjour, est il possible d’utiliser ce plugin pour afficher des points de géolocalisation sur une carte personnelle ?
    je m’explique, je souhaiterai utiliser ce plugin pour mettre un plan d’un bâtiment avec plusieurs point de vue, ces points possèderaient des documents joints (plan pdf de la pièce, photos...)

    Si ce n’est pas vraiment prévu, connaitriez vous un plugin me permettant de réaliser tout ou partie de cela svp ?

    merci

    Répondre à ce message

  • 1
    Miguel Perez Subias

    ¿ Est il possible utilisser la geolocalisation GIS sur des nouvelles tables (nuveaux objets) ajoutees sur la base de données ?

    Merci pour le temps et pour ton travail.

    Miguel

    • Salut, oui c’est possible à partir du moment où ton objet est bien déclaré dans SPIP avec l’API de déclaration des objets :

      http://www.spip.net/fr_article5525.html

      Si c’est bien le cas, tu pourras cocher la case correspondant à ton objet dans la page de config de GIS pour activer la géolocalisation sur ton objet.

      ++
      b_b

    Répondre à ce message

  • Je viens de passer une journée entière à galérer sur le plugin GMAP (sur un spip 2.1) et malgré les habitudes que j’ai avec ce plugin, je crois que je vais passer à GIS 4 et mettre à jour le SPIP, mais avant cela je voudrais être certain de ne pas repasser encore un jour ou plus à triturer dans tous les sens en vain.

    Je vous expose mon besoin, merci de me dire simplement s’il y a possibilité d’atteindre le résultat désiré sous GIS 4, avant que je n’implose dans un bloups déchirant.

    L’objectif : afficher sur une carte les inscrits à un événement, je vais chercher l’adresse de chaque inscrit dans le champ correspondant (en fait trois champs : rue, code postal, ville que je concatène) des résultats du plugin FORMidable. Je n’ai donc pas de longitude, latitude mais une adresse que je transmets à Googlemaps par le biais du Geocoder, qu’il a la politesse de traduire en point sur ma carte.

    Sur GMAP, tout fonctionnait bien, jusqu’à ce que je me rende compte que passés les dix inscrits, les suivants n’apparaissaient pas, pour une raison qui m’échappe complétement le maximum de points simultanés que j’ai réussi à atteindre est de 11, mais la plupart de temps pendant mes tests j’aboutissais à 8 points. Sans que je sache s’il y a une restriction du côté de google ou un bug dans le plugin ou autre chose, en tous cas le problème ne semble pas venir des données saisies dans la base.

    Désolé pour le paté, mais le stress d’une journée à tourner en rond m’empêche de faire court :D

    Pitié dites moi que j’arriverais à ce que je veux avec GIS 4 !

    Répondre à ce message

  • 7
    oursbavard

    Bravo pour le boulot ! C’est pile ce que j’attendais, notamment pour la possibilité de se servir d’autres objets SPIP (auteurs...). Mais j’ai un petit souci...

    J’ai conservé mon modèle antérieur qui me permettait d’afficher sur une carte tous les articles d’une rubrique précise. Le voici : <carte_gis1|id_rubrique=32|zoom=8|control=small> (l’adresse de la carte en situation est : http://oursbavard.free.fr/spip.php?article113). Aujourd’hui, l’affichage ne se fait plus, ni dans la partie privée, ni dans la partie publique. S’agit-il du bug décrit dans la présentation ci-dessus ?

    Merci d’avance

    • Salut, oui le bug que tu rencontres est bien celui décrit dans la documentation du modèle. En regardant les paramètres passés au modèle dans ta page, on voit ceci :

      id_article = 113
      id_rubrique = 32
      id_secteur = 26

      Ton modèle reçoit des paramètres que tu ne lui à pas passé... En attendant il est possible d’obtenir de bons résultats en utilisant le modèle depuis vos squelettes.

      Il faut vraiment qu’on trouve une solution pour régler ce problème dans SPIP, il y a déjà un ticket ouvert pour ce bug : http://core.spip.org/issues/2788

      ++

    • oursbavard

      Merci de la réponse rapide ! Je vais voir ce que je fais. Peut-être tester GIS 2/3 ?

    • oursbavard

      Pour contourner le problème des articles d’une rubrique qui ne s’affichent plus en tant que points, est-il possible « manuellement » (ou plutôt de façon semi-automatisée par un script quelconque) de transformer les articles en question en objets « point » ?
      Merci d’avance,

    • Salut,

      Peut-être tester GIS 2/3 ?

      Non cela ne réglera pas le problème car le bug vient de SPIP 3, il faut juste patienter qu’on trouve une solution propre au problème et qu’on l’applique à SPIP.

      ++

    • Bonjour,

      Je poursuis ma maj en GIS4.
      Je raccroche ma question à ce fil car ça m’a l’air lié.

      En utiilisant le modèle dans mon squelette, je n’arrive pas à afficher les articles localisés appartenant à une rubrique (la variable est valorisée, vérification faite).

                  [(#INCLURE{fond=modeles/carte_gis,
                  objets=articles,
                  id_rubrique=#ENV{id_rubrique}
      ...
                  })]

      Alors que cela fonctionne nickel avec les articles localisés pour un mot donné.

                  [(#INCLURE{fond=modeles/carte_gis,
                  objets=articles,
                  id_mot=#ENV{id_mot}
      ...
                  })]

      La boucle contenue dans gis_articles.html me semble hors de cause. Elle fonctionne quand je l’extrais dans le squelette appelant :

      <BOUCLE_art(ARTICLES){gis}{id_article ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{id_auteur ?}{recherche ?}{","}>
      #ID_GIS-#TITRE
      </BOUCLE_art>

      Je crains que, contrairement à ce que je lis ci-dessus, le problème ne soit pas que dans le cas d’une balise modèle insérée dans un article, mais aussi dans le cas d’une insertion du modèle dans un squelette.

      Qu’en pensez-vous ?

      Une parade ?

    • Salut,

      Qu’en pensez-vous ?

      Non non, je suis certain de ce que je dis dans la doc, il n’y a aucun problème avec l’utilisation du modèle depuis les squelettes.

      Une parade ?

      Oui peut être, à condition que tu nous file un lien vers la page en question :p

    • ok. Je m’en doutais.
      C’était au cas où...

      Pour le lien, pas possible, je teste en local.
      Il doit y avoir qqc que je ne maîtrise pas dans mon environnement de dev. Après les liens ko dans le tître, c’est le modèle gis_articles sur le critère rubrique....

      Je continue à chercher (c’est laborieux). Et je partagerai mes trouvailles (j’espère) et/ou mes futures pistes/interrogations.

      A+

    Répondre à ce message

  • Bonjour, comment faire pour afficher les sous rubriques (géolocalisées) d’une rubrique ?

    Répondre à ce message

  • 6

    Bonjour. Lorsque je veux créer un nouveau point : la carte n’est pas chargée. Firebug me donne l’erreur suivante

    L is not defined
    (?)($=function())?exec=...eau=oui (ligne 352)
    ()?exec=...eau=oui (ligne 461)
    [Stopper sur une erreur] 	
    
    var marker = new L.Marker(new L.LatLng(0, 0), {draggable: true});
    • Salut, et voici la rafale de questions habituelles :

      -  quelle version du plugin GIS ?
      -  quelle est l’url du site ?
      -  as-tu vidé le cache du site et de ton navigateur ?

      ++

    • -  quelle version du plugin GIS ?
      J’ai eu le problème sur la 3 (en spip 2.1.17) et sur la 4 (spip 3.0.4).
      -  quelle est l’url du site ?
      http://www.webgardener.fr/ogm/ (hébergement ovh).
      -  as-tu vidé le cache du site et de ton navigateur ?
      oui. J’ai réinstallé plusieurs fois le plugin aussi.

    • Tu n’as certainement pas eu d’erreur avec leaflet pour la version 3 car celle-ci utilise Mapstraction et non Leaflet. Par contre, si tu as une erreur lors de la création de point avec les deux versions du plugin, c’est que tu dois avoir un script qui génère une erreur js dans tes pages, il faut que tu trouves quel script pourrait faire ça si c’est bien le cas.

    • Oui effectivement l’erreur avec la version 3 est

      syntax error
      (?)()OpenLayers.js (ligne 126)
      OpenLayers.js()OpenLayers.js (ligne 125)
      [Stopper sur une erreur] 	
      
      form_map.setCenterAndZoom(new mxn.LatLonPoint(,),);

      J’ai essayé sur deux spip différents installés sur deux hébergements (OVH et SIVIT).
      Bizarre d’autant que j’avais déjà essayé ces plugins avec succès par le passé.

    • bonjour,

      J’ai le même genre de pépin avec spip 3.0.4 sur lequel je tente d’utiliser GIS 4.1.3 SVN [64849]. Il n’y a pas d’autre plugin actif si ce n’est SAISIES 1.26.4 SVN [65119] dont dépend GIS. Mon cache est vide.

      La page « ecrire/ ?exec=configurer_gis » fonctionne correctement, et je choisis une couche OpenStreetMap. Par contre la page « ecrire/ ?exec=gis_edit&new=oui » n’affiche pas la carte.

      Firebug renseigne l’erreur :

      L is not defined
      var marker = new L.Marker(new L.LatLng(0, 0), draggable : true) ;

      et renseigne la ligne 337.

      Le spip tourne en local et n’est pas accessible depuis internet.
      Sur un autre site en ligne (spip 3.0.3 / GIS 3.3.7 ), je constate que ça marche.

      Sinon, voilà un plugin qui a bien évolué. Chapeau !!
      Merci d’avance pour le coup de main.

    • Et hop, corrigé dans la version 4.1.4 :

      http://zone.spip.org/trac/spip-zone/changeset/65356

      Merci pour le signalement ++

    Répondre à ce message

  • 1

    Bonjour,

    Je ne parviens pas à afficher les couches Google, alors que les autres fonctionnent.
    Y-a-t-il un paramétrage spécifique a effectuer ?

    Merci

    • Salut, comme d’habitude, il faut nous donner un peu plus d’infos pour être aidée :

      Quelle version de SPIP ? Quelle version du plugin ? Et surtout, quelle est l’adresse de la page où on peut observer le problème ?

      Au hasard (enfin pas vraiment), as-tu vidé le cache de ton site ?

      Sinon, je peux juste te donner la réponse classique : ça marche chez moi © ^^

      ++

    Répondre à ce message

  • Bravo pour le boulot ! Une véritable perle ce plugin. Je l’utilise historiquement sur de nombreux sites et vient juste de le tester dans sa mouture 4.0 ce matin ! Je suis bluffé de l’évolution. Merci.

    Répondre à ce message

  • Pierre-Philippe Fady

    Bonjour,

    bravo pour tout ce travail.
    Après avoir mis à jour gis3 -> gis4, je me rend compte que la fonction « gis_focus_marker » (qui me servait à mettre en évidence un marker sur une carte en cliquant sur un lien du type ) a disparue.
    Pourriez vous m’indiquer la nouvelle syntaxe à utiliser ?

    d’avance merci

    Répondre à ce message

  • 2
    Raphaël

    Ce plugin a l’air vraiment bien. Je me pose la question de savoir si l’on peut ajouter un fond de carte de son choix (une image).

    • Pour l’instant le plugin n’est pas prévu pour ça, par contre tu peux le faire de ton côté en bidouillant. Voir la doc de leaflet à ce propos, surtout la partie qui explique comment jouer avec L.ImageOverlay :

      http://leaflet.cloudmade.com/reference.html#imageoverlay

      ++

    • Raphaël

      En fait, mon intention est d’utiliser une vieille carte du monde. L’objectif n’est évidemment pas d’obtenir des coordonnées précises et réelles par rapport à nos cartes actuelles, mais de placer des points sur cette carte.

      Exemple avec cette carte disponible sur la Library of Congress :
      http://www.loc.gov/item/2006627265

      Penses-tu que ce soit envisageable ?

    Répondre à ce message

  • Super génial coolissimement top fun MAIS j’ai rapidement rencontré UN problème.

    C’est peu, mais non des moindres (et il faudrait peut-être l’indiquer dans la doc, je ne sais pas) : ce ne sont pas seulement les fonds de carte qui ont changé, mais aussi le géocodeur.

    Google est parti, remplacé par le géocodeur libre d’OSM, sauf que les données sont immensément moins complètes, et que dans la majorité des cas en France, on perd le numéro de la rue, et pire encore souvent même le code postal !

    Du coup, pour pas mal de besoin, ça risque de poser problème si on arrive même plus à avoir le champ du code postal rempli automatiquement, mais aussi si on perd le numéro de maison alors qu’on l’avait pourtant rentré dans le champ de recherche...

    Exemple frappant : dans une pourtant grande ville comme Bordeaux, je tape mon adresse complète dans le champ de recherche, avec numéro de rue et code postal compris. Résultat ? Le champ « Adresse » ne comporte plus que le nom de la rue, la ville a été changé par Talence, car c’est ça qu’OSM met en premier dans ses résultats (débile !...) avant même Bordeaux. Bref, du grand n’importe quoi, et je pourrais en citer plein des exemples similaires car j’ai testé la même chose dans plusieurs coins de France pour être sûr.

    Idées : proposer le géocodeur de Google en option, en expliquant que le webmaster à l’obligation d’utiliser les fonds de carte de Google s’il active cette fonctionnalité. Ou trouver un autre géocodeur ayant des résultats pertinents, fut-il non libre, mais avec des meilleurs CGU que Google (Mapquest version proprio fonctionne mais il est assez galère, faut une clé, etc).

    Voilà pour l’explication du truc chiant. Sinon tout le reste : excellent ! :)

    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