Bonjour,
Je souhaite mettre sur mon blog de balade à vélo une carte avec l'ensemble des tracés GPX en récupérant dynamiquement les GPX associés aux articles concernés. Cette première partie fonctionne assez correctement. Sauf que l'affichage de l'ensemble des tracés peut être très long, s'il y avait une piste pour que ça soit plus rapide ?
Le code utilisé : #SET{gpxid,''}
<BOUCLE_articles(ARTICLES){id_rubrique IN 3}{!id_document=12} >
<BOUCLE_gpx(DOCUMENTS){extension==gpx}{id_article}> #SET{gpxid,#GET{gpxid}|concat{",",#ID_DOCUMENT}}
</BOUCLE_gpx>
</BOUCLE_articles>
[(#INCLURE{fond=modeles/carte_gis,id_map=3,zoom=5,centrer_fichier=non,lat=48.20,tooltip=oui, lon=16.37,fullscreen=oui,gpx= #LISTE {#GET{gpxid}} )]
A voir sur cette page d'essai : https://velovacances.jack31.org/spip.php?page=cartegpx
Ensuite dans l'idéal j'aurais aimé qu'en cliquant sur le tracé on puisse faire le lien avec l'article. Je ne vois pas bien comment. Il y a bien une info qui remonte au survol du GPX (la distance en km)
Bonjour,
Je souhaite mettre sur mon blog de balade à vélo une carte avec l'ensemble des tracés GPX en récupérant dynamiquement les GPX associés aux articles concernés. Cette première partie fonctionne assez correctement. Sauf que l'affichage de l'ensemble des tracés peut être très long, s'il y avait une piste pour que ça soit plus rapide ?
Le problème ne vient pas vraiment du code mais du volume de données à transférer, ta page charge 21,80 Mo de fichiers GPX, ça n'est pas rien
Dans ce genre de cas il ya plusieurs pistes d'optimisation :
- utiliser des fichiers topojson plutôt que du GPX (obtenus après conversion des GPX)
- plus simple, utiliser GIS Geometries et importer tes tracés en base de données, ainsi le site utiliserait du geojson pour leur affichage et tu gagnerais peut-être un peu en poids, mais jamais autant qu'avec du topjson
- simplifier le tracé de tes GPX (ou du topojson généré), mais dans ce cas tu perdras en précision du tracé
Par ailleurs j'aurais aimé pouvoir alterner les couleurs des GPX comme indiqué dans Astuces GIS
En utilisant GIS Geometries tu peux spécifier la couleur des tracés directement depuis l'espace privé après avoir importé tes fichiers en base.
Sinon, l'astuce en question fonctionne sur ta page avec :
Sinon, l'astuce en question fonctionne sur ta page avec :
.leaflet-interactive:nth-child(0n+2) {stroke:#000 !important;}
Peut-être une erreur de saisie de la personne qui a rédigé cette astuce ?
Je renvoie parce que je n'avais répondu qu'à Jluc
Bonjour
Sur ce point précis même avec le + ça ne marchait pas très bien chez moi alors j'ai regardé la doc w3c et j'ai trouvé nth-child(even) qui marche bien (odd aurait fait l'affaire aussi je suppose).
Merci à tous les deux,
Jacques
Le 17/06/2019 à 18:18, JLuc a écrit :
Le 17/06/2019 à 18:05, Bruno Bergot a écrit :
Sinon, l'astuce en question fonctionne sur ta page avec :
.leaflet-interactive:nth-child(0n+2) {stroke:#000 !important;}
Peut-être une erreur de saisie de la personne qui a rédigé cette astuce ?
Le problème ne vient pas vraiment du code mais du volume de données à transférer, ta page charge 21,80 Mo de fichiers GPX, ça n'est pas rien
Ah oui effectivement...
Dans ce genre de cas il ya plusieurs pistes d'optimisation :
- utiliser des fichiers topojson plutôt que du GPX (obtenus après conversion des GPX)
- plus simple, utiliser GIS Geometries et importer tes tracés en base de données, ainsi le site utiliserait du geojson pour leur affichage et tu gagnerais peut-être un peu en poids, mais jamais autant qu'avec du topjson
- simplifier le tracé de tes GPX (ou du topojson généré), mais dans ce cas tu perdras en précision du tracé
OK j'ai commencé de regarder GIS Géométrie en local... A lire la doc je n'aurais pas imaginé que cela pouvait m'être utile pour ça ^^
Par ailleurs j'aurais aimé pouvoir alterner les couleurs des GPX comme indiqué dans Astuces GIS
En utilisant GIS Geometries tu peux spécifier la couleur des tracés directement depuis l'espace privé après avoir importé tes fichiers en base.
OK, pour l'instant je patine un peu dans mes essais en local... Mais comment importer les fichiers en base ? Un par un ?
Et pour chaque article :
- Actuellement quand je créée un article je ne créée pas un point géolocalisé, j'importe mon GPX et je mets son numéro de doc dans l'appel du modèle
- Avec GIS Géométrie je créée un point, j'importe le GPX mais comment je l'appelle dans le modèle ?
Ces questions m'intéressent beaucoup car j'ai pas mal d'itinéraires
passés et futurs à visualiser.
Jacques, quel système utilises-tu pour enregistrer tes ballades et
comment fais-tu pour exporter et transferer les données ?
Là je prépare des déplacements à venir. Dans un premier temps mon but
est de développer une solution qui permettrait de publier les données
après chaque étape quotidienne.
A long terme j'aimerais établir une solution qui trace, enregistre et
affiche l'itinéraire en temps réel ou avec un très bref délai. Bien sûr
il y a des services qui font ca bien, mais je préfère consacrer mon
temps pour une solution entièrement libre.
Pour les trajets passés on a simplement autorisé Google à nous
espionner. D'où la deuxième question:
Est-ce que vous connaissez un procédé pour exporter les données
d'itinéraires enregistrés avec google maps? De préférence ce serait du
libre afin de vraiment "libérer les données".
On a des centaines d'itinéraires enregistrés avec ce système alors ce
serait un excellent point de départ de les utiliser sous forme de
données au lieu de publier de simples captures d'écran qui en plus
posent des problèmes de droit d'auteur.
Merci et bonne route !
:-)k++
On 17.06.19 19:15, Jacques wrote:
Merci pour la réponse !
Le 17/06/2019 à 18:05, Bruno Bergot a écrit :
Le problème ne vient pas vraiment du code mais du volume de données à
transférer, ta page charge 21,80 Mo de fichiers GPX, ça n'est pas rien
Ah oui effectivement...
Dans ce genre de cas il ya plusieurs pistes d'optimisation :
- utiliser des fichiers topojson plutôt que du GPX (obtenus après
conversion des GPX)
- plus simple, utiliser GIS Geometries et importer tes tracés en base
de données, ainsi le site utiliserait du geojson pour leur affichage
et tu gagnerais peut-être un peu en poids, mais jamais autant qu'avec
du topjson
- simplifier le tracé de tes GPX (ou du topojson généré), mais dans ce
cas tu perdras en précision du tracé
OK j'ai commencé de regarder GIS Géométrie en local... A lire la doc je
n'aurais pas imaginé que cela pouvait m'être utile pour ça ^^
Par ailleurs j'aurais aimé pouvoir alterner les couleurs des GPX
comme indiqué dans Astuces GIS
En utilisant GIS Geometries tu peux spécifier la couleur des tracés
directement depuis l'espace privé après avoir importé tes fichiers en
base.
OK, pour l'instant je patine un peu dans mes essais en local... Mais
comment importer les fichiers en base ? Un par un ?
Et pour chaque article :
- Actuellement quand je créée un article je ne créée pas un point
géolocalisé, j'importe mon GPX et je mets son numéro de doc dans l'appel
du modèle
- Avec GIS Géométrie je créée un point, j'importe le GPX mais comment je
l'appelle dans le modèle ?
Ces questions m'intéressent beaucoup car j'ai pas mal d'itinéraires
passés et futurs à visualiser.
Jacques, quel système utilises-tu pour enregistrer tes ballades et
comment fais-tu pour exporter et transferer les données ?
Là je prépare des déplacements à venir. Dans un premier temps mon but
est de développer une solution qui permettrait de publier les données
après chaque étape quotidienne.
A long terme j'aimerais établir une solution qui trace, enregistre et
affiche l'itinéraire en temps réel ou avec un très bref délai. Bien sûr
il y a des services qui font ca bien, mais je préfère consacrer mon
temps pour une solution entièrement libre.
Pour les trajets passés on a simplement autorisé Google à nous
espionner. D'où la deuxième question:
Est-ce que vous connaissez un procédé pour exporter les données
d'itinéraires enregistrés avec google maps? De préférence ce serait du
libre afin de vraiment "libérer les données".
On a des centaines d'itinéraires enregistrés avec ce système alors ce
serait un excellent point de départ de les utiliser sous forme de
données au lieu de publier de simples captures d'écran qui en plus
posent des problèmes de droit d'auteur.
Merci et bonne route !
:-)k++
dans le même cas pour mon site perso, mais avec beaucoup moins d'itinéraire
On 17.06.19 19:15, Jacques wrote:
Merci pour la réponse !
Le 17/06/2019 à 18:05, Bruno Bergot a écrit :
Le problème ne vient pas vraiment du code mais du volume de données à
transférer, ta page charge 21,80 Mo de fichiers GPX, ça n'est pas rien
Ah oui effectivement...
Dans ce genre de cas il ya plusieurs pistes d'optimisation :
- utiliser des fichiers topojson plutôt que du GPX (obtenus après
conversion des GPX)
- plus simple, utiliser GIS Geometries et importer tes tracés en base
de données, ainsi le site utiliserait du geojson pour leur affichage
et tu gagnerais peut-être un peu en poids, mais jamais autant qu'avec
du topjson
- simplifier le tracé de tes GPX (ou du topojson généré), mais dans ce
cas tu perdras en précision du tracé
OK j'ai commencé de regarder GIS Géométrie en local... A lire la doc je
n'aurais pas imaginé que cela pouvait m'être utile pour ça ^^
Par ailleurs j'aurais aimé pouvoir alterner les couleurs des GPX
comme indiqué dans Astuces GIS
En utilisant GIS Geometries tu peux spécifier la couleur des tracés
directement depuis l'espace privé après avoir importé tes fichiers en
base.
OK, pour l'instant je patine un peu dans mes essais en local... Mais
comment importer les fichiers en base ? Un par un ?
Et pour chaque article :
- Actuellement quand je créée un article je ne créée pas un point
géolocalisé, j'importe mon GPX et je mets son numéro de doc dans l'appel
du modèle
- Avec GIS Géométrie je créée un point, j'importe le GPX mais comment je
l'appelle dans le modèle ?
"Réussir sa vie, plutôt que de vivre sa réussite"
"Il n'y a qu'un passé et il n'existe qu'un seul présent, par contre il y a une multitude de futurs, mais seuls l'un d'eux se réalise"
OK, pour l'instant je patine un peu dans mes essais en local... Mais comment importer les fichiers en base ? Un par un ?
Et pour chaque article :
- Actuellement quand je créée un article je ne créée pas un point géolocalisé, j'importe mon GPX et je mets son numéro de doc dans l'appel du modèle
- Avec GIS Géométrie je créée un point, j'importe le GPX mais comment je l'appelle dans le modèle ?
Comme n'importe quel autre point/objet GIS, par son identifiant propre, par celui du ou des articles auxquels sont liés les points/objets
Ces questions m'intéressent beaucoup car j'ai pas mal d'itinéraires
passés et futurs à visualiser.
Jacques, quel système utilises-tu pour enregistrer tes ballades et
comment fais-tu pour exporter et transferer les données ?
Je lui avais conseillé d'acheter un petit dongle GPS, il référence son matériel sur son site ici :
Est-ce que vous connaissez un procédé pour exporter les données
d'itinéraires enregistrés avec google maps? De préférence ce serait du
libre afin de vraiment "libérer les données".
Une carte google permet toujours d'exporter ses données au format KML, tu peux ensuite les convertir dans le format de ton choix avec plein d'outils comme qgis, ogr2ogr cf :
Il y a aussi des services en ligne comme celui qui suit :
OK, pour l'instant je patine un peu dans mes essais en local... Mais comment importer les fichiers en base ? Un par un ?
Et pour chaque article :
- Actuellement quand je créée un article je ne créée pas un point géolocalisé, j'importe mon GPX et je mets son numéro de doc dans l'appel du modèle
- Avec GIS Géométrie je créée un point, j'importe le GPX mais comment je l'appelle dans le modèle ?
Comme n'importe quel autre point/objet GIS, par son identifiant propre, par celui du ou des articles auxquels sont liés les points/objets
Oui, j'ai essayé en conservant mon insertion de modèle dans l'article, mais sans le numéro de gpx puisque c'est un point lié maintenant :
<carte_gis2|objets=documents_article|id_article=116|tooltip=oui|lat = 44.55| lon = 28.05|centrer_fichier = non| zoom=10|scale=oui|fullscreen = oui >
ça ne fonctionne pas
J'ai essayé de rajouter l'id du point, puis en appelant également objets=gis
<carte_gis2|objets=gis|id_article=116|tooltip=oui|lat = 44.55| lon = 28.05|centrer_fichier = non| zoom=10|scale=oui|fullscreen = oui|id_gis=940 >
Le gpx n'apparait toujours pas...
C'est peut-être comme n'importe quel autre point, mais apparemment il faut que je change quelque chose chez moi...
Jacques
Ah, génial, merci Bruno, il y a donc tous les éléments nécessaires et il
ne reste qu'à les assembler pour en développer un petit système fonctionnel.
:-)k++
On 18.06.19 16:48, Bruno Bergot wrote:
Hop,
Le 18/06/2019 à 07:50, klaus++ a écrit :
Salut Jacques et Bruno !
Ces questions m'intéressent beaucoup car j'ai pas mal d'itinéraires
passés et futurs à visualiser.
Jacques, quel système utilises-tu pour enregistrer tes ballades et
comment fais-tu pour exporter et transferer les données ?
Je lui avais conseillé d'acheter un petit dongle GPS, il référence son
matériel sur son site ici :
Est-ce que vous connaissez un procédé pour exporter les données
d'itinéraires enregistrés avec google maps? De préférence ce serait du
libre afin de vraiment "libérer les données".
Une carte google permet toujours d'exporter ses données au format KML,
tu peux ensuite les convertir dans le format de ton choix avec plein
d'outils comme qgis, ogr2ogr cf :
Dans ce genre de cas il ya plusieurs pistes d'optimisation :
- utiliser des fichiers topojson plutôt que du GPX (obtenus après conversion des GPX)
J'ai fait un peu joujou avec topojson. C'est impressionnant. Pour convertir en topojson je n'ai trouvé que ce service en ligne GPX to TopoJSON Converter Online - MyGeodata Cloud qui permet de convertir en ligne directement de gpx à topojson, mais on a droit qu'à 3 fichiers gratuits par mois. Le service est impressionnant parce qu'il décompose le gpx en 5 fichiers et la trace elle-même représente très peu.
Sur un essai avec le même fichier :
gpx = 545 ko
geometry = 88 ko (approximativement)
Uniquement la trace en topojson = 39 ko
Par contre pour l'utiliser chez moi en 3.2.4 il a fallu déclarer le type de documents topojson dans la table. A l'occasion d'une 3.2.5 ? Une petite release d'été?
Mais actuellement ça demande trop de manipulations, même si je payais l'abonnement à mygeodata. C'est dommage parce qu'en plus la trace topojson s'affiche comme un kml ou un gpx.
- plus simple, utiliser GIS Geometries et importer tes tracés en base de données, ainsi le site utiliserait du geojson pour leur affichage et tu gagnerais peut-être un peu en poids, mais jamais autant qu'avec du topjson
La taille du fichier en base serait un bon compromis mais je bloque sur l'utilisation. Soit j'utilise objets=articles et les tracés s'affichent bien, mais pas mes documents qui ne sont pas des points. Soit j'utilise objets=documents et je n'affiche plus les traces gpx intégrées en points.
Sans compter que j'avais personnalisé le json/gis_documents fourni pour afficher la photo en vignette (mais même avec le gis_documents original j'ai le problème.
Je passe sans doute à côté de quelque chose de trivial ?
Par ailleurs j'ai une 50ne de traces gpx déjà présentes dans mon site, je suppose qu'il n'y a pas de solution pour les intégrer en auto en base dans geometry ? Ceci-dit c'est secondaire, si le point au dessus est réglé ça me prendra moins de temps de le faire à la main que le temps que j'ai passé sur le sujet depuis le début ^^
Oui, j'ai essayé en conservant mon insertion de modèle dans l'article, mais sans le numéro de gpx puisque c'est un point lié maintenant :
<carte_gis2|objets=documents_article|id_article=116|tooltip=oui|lat = 44.55| lon = 28.05|centrer_fichier = non| zoom=10|scale=oui|fullscreen = oui >
ça ne fonctionne pas
Partons du postulat suivant : l'objet gis correspondant à ton tracé GPX importé en base est bien lié à ton article.
Le paramètre objets ne peut pas prendre de valeur documents_articles car il n'y a pas de squelette json associé cf :
J'ai essayé de rajouter l'id du point, puis en appelant également objets=gis
<carte_gis2|objets=gis|id_article=116|tooltip=oui|lat = 44.55| lon = 28.05|centrer_fichier = non| zoom=10|scale=oui|fullscreen = oui|id_gis=940 >
Là tu demandes à afficher les objets GIS directement, en précisant que tu souhaites afficher les points liés à l'article 116. Si tu veux afficher un point avec son id c'est id_gis qu'il faut passer au modèle.
Dans ce genre de cas il ya plusieurs pistes d'optimisation :
- utiliser des fichiers topojson plutôt que du GPX (obtenus après conversion des GPX)
J'ai fait un peu joujou avec topojson. C'est impressionnant. Pour convertir en topojson je n'ai trouvé que ce service en ligne GPX to TopoJSON Converter Online - MyGeodata Cloud qui permet de convertir en ligne directement de gpx à topojson, mais on a droit qu'à 3 fichiers gratuits par mois. Le service est impressionnant parce qu'il décompose le gpx en 5 fichiers et la trace elle-même représente très peu.
Par contre pour l'utiliser chez moi en 3.2.4 il a fallu déclarer le type de documents topojson dans la table. A l'occasion d'une 3.2.5 ? Une petite release d'été?
Pas besoin, SPIP accepte déjà les fichiers JSON, et un topjson peut très bien porter cette extension car c'est bien du JSON
La taille du fichier en base serait un bon compromis mais je bloque sur l'utilisation. Soit j'utilise objets=articles et les tracés s'affichent bien, mais pas mes documents qui ne sont pas des points. Soit j'utilise objets=documents et je n'affiche plus les traces gpx intégrées en points.
Sans compter que j'avais personnalisé le json/gis_documents fourni pour afficher la photo en vignette (mais même avec le gis_documents original j'ai le problème.
Je passe sans doute à côté de quelque chose de trivial ?
Par contre pour l'utiliser chez moi en 3.2.4 il a fallu déclarer le type de documents topojson dans la table. A l'occasion d'une 3.2.5 ? Une petite release d'été?
Pas besoin, SPIP accepte déjà les fichiers JSON, et un topjson peut très bien porter cette extension car c'est bien du JSON
En local j'avais essayé et ça m'avait enregistré en zip. Une fois topojson ajouté dans la table spip_types_documents.
Je viens d'essayer en ligne alors que je n'ai pas encore modifié la table et le fichier 2019-06-12_09-33.topojson est enregistré en 2019-06-12_09-33.topojson.zip en tout cas chez moi l'extension n'est pas reconnue.
J'ai téléchargé un fichier avec l'extension json et ça le charge correctement.
documents_articles c’est un json que j’ai adapté… (je croyais l’avoir dit) id_gis n’est pas indiqué dans les paramètres qu’on peut passer au modèle dans la doc… mais j’avais essayé… Chez moi ça marche mais ça ne fonctionne pas… a voir en prévisu pendant une paire d’heures (je n’ai pas encore fait le tri des photos… je vais manger) Jacques
Cela dit, on ne connait pas le contenu de ton squelette de JSON
personnalisé, donc les paramètres qu'il faut lui envoyé dépendent juste
tout simplement de ce que le squelette de JSON utilise réellement…
D'ailleurs pourquoi tu continues de passer id_article, si tu passes
id_gis ? Suivant la ou les boucles utilisées, c'est peut-être ça qui…
Cela dit, on ne connait pas le contenu de ton squelette de JSON
personnalisé, donc les paramètres qu'il faut lui envoyé dépendent juste
tout simplement de ce que le squelette de JSON utilise réellement…
D'ailleurs pourquoi tu continues de passer id_article, si tu passes
id_gis ? Suivant la ou les boucles utilisées, c'est peut-être ça qui…
Parce que je ne veux les photos que de cet article (je continue de les charger là, y'en a pas mal aujourd'hui c'est ça de glander sur les bateaux ^^)
l'id_gis c'est pour afficher le gpx intégré au point...
Ton squelette JSON ne va chercher que
- les documents
- lié à un article
- ayant un point GIS lié
À aucun moment tu ne vas chercher de point GIS précis en plus, donc
forcément ça ne peut pas faire de magie. Ta carte affiche ce qui est
dans ton squelette perso à toi, ni plus ni moins.
À toi de l'ajouter en plus avec une boucle GIS supplémentaire et une
virgule pour séparer si ça sort quelque chose.