Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error creating geometry from value '{'geom': '', 'snap': []}' #3244

Closed
gzileni opened this issue Sep 23, 2022 · 9 comments
Closed

Error creating geometry from value '{'geom': '', 'snap': []}' #3244

gzileni opened this issue Sep 23, 2022 · 9 comments

Comments

@gzileni
Copy link

gzileni commented Sep 23, 2022

Lorsque j'essaie de créer un chemin et d'importer un fichier gpx, cette erreur est signalée sans pouvoir enregistrer les données.

Error creating geometry from value '{'geom': '', 'snap': []}' (Improper geometry input type: <class 'dict'>) ERROR 2022-09-23 11:12:51,328 django.contrib.gis Error creating geometry from value '{'geom': '', 'snap': []}' (Improper geometry input type: <class 'dict'>) Error creating geometry from value '' (String input unrecognized as WKT EWKT, and HEXEWKB.) ERROR 2022-09-23 11:12:52,605 django.contrib.gis Error creating geometry from value '' (String input unrecognized as WKT EWKT, and HEXEWKB.)

J'ai également fait quelques tests avec des fichiers gpx créés par GeoTrek en dessinant sur la carte et en important dans un nouveau chemin.

<?xml version="1.0" encoding="UTF-8"?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd" version="1.1" creator="gpx.py -- https://github.com/tkrajina/gpxpy">
  <trk>
    <name>[Sezione] test</name>
    <desc>Modified: just a few seconds ago</desc>
    <trkseg>
      <trkpt lat="44.95702412512111" lon="8.521742820739746">
        <ele>0.0</ele>
      </trkpt>
      <trkpt lat="45.108423337694006" lon="8.730483055114746">
        <ele>0.0</ele>
      </trkpt>
    </trkseg>
  </trk>
</gpx>

c'est le fichier .gpx créé avec erreur. Cela arrive aussi avec d'autres gpxs différents.
makinacorpus/django-mapentity#124 (comment)
#1296

@submarcos ?
@camillemonchicourt ?

@camillemonchicourt
Copy link
Member

Je viens de faire un test sur notre plateforme de test/démo (https://geotrekdemo.ecrins-parcnational.fr avec admin/admin) et n'ai pas eu de soucis sur cette zone :

image

image

L'erreur que vous indiquez semble mentionner que vous n'envoyez aucune géométrie.
Avez-vous bien terminé votre tracé, en recliquant une seconde fois sur le dernier point localisé ?
Sinon votre tracé est encore en cours d'édition et donc pas valide pour envoyer l'objet.

@gzileni
Copy link
Author

gzileni commented Sep 23, 2022

J'ai essayé les étapes suivantes et j'ai toujours la même erreur :

  1. J'ai chargé n'importe quel fichier gpx en cliquant sur l'icône du dossier sur la carte ;
  2. cliqué sur créer

Au lieu de cela, si je comprends bien, après avoir chargé un fichier gpx sur la carte, vous devez le marquer avec une ligne. Dessinez essentiellement une nouvelle ligne avec l'outil de dessin le long du chemin chargé à partir du fichier ?

@camillemonchicourt
Copy link
Member

Oui il faut dans tous les cas dessiner le tronçon.
L'import d'un GPX ne crée pas un tronçon mais est seulement affiché sur la carte pour aider à tracer l'objet et bien le caler sur la carte, car les GPX sont souvent peu précis.
Donc il faut tracer le tronçon précisément sur la carte.

@camillemonchicourt
Copy link
Member

Mais bien sûr, personne ne perd du temps à tracer tous les tronçons un par un dans Geotrek-admin.
On part tous d'une couche de notre territoire (SIG, OpenStreetMap, couches nationales comme IGN en France) et on les importe toutes d'un coup dans la base de données de Geotrek, par exemple avec QGIS comme expliqué ici - https://makina-corpus.com/sig-webmapping/importer-une-couche-de-troncons-dans-geotrek ou ici - https://geotrek.ecrins-parcnational.fr/articles/en/2018-02-geotrek-jamaica.html

@camillemonchicourt
Copy link
Member

Par contre, de notre côté, il faudrait un message d'erreur plus sympa quand on essaie de créer un tronçon sans géométrie.

@gzileni
Copy link
Author

gzileni commented Sep 24, 2022

D'accord. En lisant le code j'ai vu que vous utilisiez des plugins leafleftJS pour la carte, notamment lorsque vous chargez le fichier .gpx qui se transforme en GeoJSON pour pouvoir la visualiser.

Donc les données GeoJSON sont déjà là, il suffirait de les lire depuis la carte pour créer l'enregistrement dans la base de données sans faire d'autre dessin à main levée ou importer depuis QGis.

Si vous m'aidez à m'orienter dans le code, nous pouvons résoudre le problème en ajoutant une fonctionnalité pratique dans GeoTreck.

@camillemonchicourt
Copy link
Member

camillemonchicourt commented Sep 24, 2022

OK pourquoi pas.
Comme j'indiquai plus haut, le fonctionnement actuel est volontaire car on ne voulait importer directement des traces GPX dans les tronçons, car les GPS ne sont pas précis. Donc on a préféré uniquement les afficher sur les cartes pour aider à la saisie précise sur la carte.
Et ainsi garantir la qualité et la cohérence des tronçons.

Pour importer des tronçons en masse, on passe plutôt par l'outil d'import de Geotrek-admin (https://geotrek.readthedocs.io/en/2.87.2/install/import.html), ou par QGIS depuis un GPX, GeoJSON, SHP, GPKG ou autre (https://makina-corpus.com/sig-webmapping/importer-une-couche-de-troncons-dans-geotrek).

Je ne suis pas certain de l'intérêt de pouvoir créer la géométrie d'un tronçon en utilisant directement celle d'un GPX dans le formulaire de création d'un tronçon, mais pourquoi pas.

Par contre, il faudra garder la possibilité du fonctionnement actuel où on veut juste afficher le tronçon pour la visualiser sur la carte, mais tracer manuellement proprement le tronçon correspondant.
Il faudra aussi gérer le cas où le GPX comprend plusieurs tracés.
Et il faudra aussi voir les conséquences dans les autres modules, où on peut aussi importer un GPX pour l'afficher sur la carte et aider à localiser un POI, aménagement, signalétique, rando, etc.

@gzileni gzileni closed this as completed Oct 12, 2022
@gzileni
Copy link
Author

gzileni commented Oct 12, 2022

unfortunately the problem also happens when I try to modify a route on the map that has already been entered.

@gzileni gzileni closed this as not planned Won't fix, can't repro, duplicate, stale Oct 12, 2022
@camillemonchicourt
Copy link
Member

I dont understand the problem you have ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants