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 :

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

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

<carte_gis1|zoom=8|limit=100|scale=oui>

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

Paramètres du modèle

paramètre valeurs
id_carte_gis / id_map id unique de la carte (à définir si plusieurs cartes sont affichées sur une même page)
lat = 48.3 latitude du centre de la carte
lon = -4.7 longitude du centre de la carte
zoom = 5 zoom de la carte
minZoom = 10 zoom minimum autorisé
maxZoom = 13 zoom maximum autorisé
default_layer = 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;
}

Astuces et usages avancés

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

Footnotes

[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

441 discussions

  • 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”

    Reply to this 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.

    Reply to this 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 ;-).

    Reply to this 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.

    Reply to this 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 :)

    Reply to this 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.

    Reply to this 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

    Reply to this 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

    Reply to this 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!

    Reply to this 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 !

    Reply to this 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”....

    Reply to this 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

    Reply to this 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 !

    Reply to this 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!)

    Reply to this 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.

    Reply to this 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

    Reply to this message

  • 4

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

    • 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 ?

    Reply to this 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/

    Reply to this 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 !

    Reply to this 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.

    Reply to this 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 :)

    Reply to this 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

      1. #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.

    Reply to this 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 :)

    Reply to this 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.

    Reply to this 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

    Reply to this 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

    Reply to this 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.

    Reply to this 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 !

    Reply to this 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)]

    Reply to this 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

    Reply to this 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

    Reply to this 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

    Reply to this 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 :)

    Reply to this 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 ;)

    Reply to this 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

    Reply to this 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

    Reply to this 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

    Reply to this 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

    Reply to this 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

    Reply to this 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

    Reply to this 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

    Reply to this 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 !

    Reply to this 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) « 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 :)

    Reply to this 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.

    Reply to this 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

    Reply to this 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 !

    Reply to this message

  • 5

    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 (?).

    Reply to this 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 ;

    Reply to this 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.

    Reply to this 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.

    Reply to this 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

    Reply to this 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) :)

    Reply to this 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 !!

    Reply to this 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

    Reply to this 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.

    Reply to this 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.

    Reply to this 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é.

    Reply to this 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) ?

    Reply to this 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.

    Reply to this 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.

    Reply to this 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é.

    Reply to this 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

    Reply to this 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

    Reply to this 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, ’’)))),’[fr]’)+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, ’’)))),’[fr]’)+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, ’’)))),’[fr]’)+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

    Reply to this 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.

    Reply to this 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

    Reply to this 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

    Reply to this 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

    Reply to this 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

    Reply to this 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…>

    Reply to this 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

    Reply to this 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

    Reply to this 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

    Reply to this 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

    Reply to this 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

    Reply to this 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 ;)

    Reply to this message

  • 1
    Pierrot

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

    Reply to this 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

    Reply to this 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 là ?
      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.

    Reply to this 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 ?

    Reply to this 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

    Reply to this 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 !

    Reply to this 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

    Reply to this 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

    Reply to this 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 .
    @+

    Reply to this 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://bleaulib.org/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 :)

    Reply to this 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” :)

    Reply to this 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

    Reply to this 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 ?

    Reply to this 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

    Reply to this 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

    Reply to this 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 !

    Reply to this 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

    Reply to this 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.

    Reply to this 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 :)

    Reply to this 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.

    Reply to this 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 ;)

    Reply to this 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

    Reply to this 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 :-)

    Reply to this 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.

    Reply to this 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 ....

    Reply to this 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/

    Reply to this 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

    Reply to this 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

    Reply to this 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.

    Reply to this 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.

    Reply to this 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

    Reply to this 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

    Reply to this message

  • 1

    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

    • 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

    Reply to this 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.

       large|height = 200px>

      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 !

    Reply to this message

  • 5
    antoine

    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.

    • antoine

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

    • antoine

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

    • antoine

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

    Reply to this 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 !

    Reply to this 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.

    Reply to this 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 !

    Reply to this 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é.
    ++

    Reply to this 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

    Reply to this 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 :)

    Reply to this 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.

    Reply to this 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

    Reply to this 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

    Reply to this 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

    Reply to this 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.

    Reply to this 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 :)

    Reply to this 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.

    Reply to this 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 ?

    Reply to this 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.

    Reply to this 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 ?

    Reply to this 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.

    Reply to this 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

    Reply to this 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.

    Reply to this 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...</