Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Thu 08 October 2015 11:06

JulieDubois
Participant occasionnel
Date d'inscription: 3 Jul 2015
Messages: 13

QGIS 2.10.1 : Spatialite st_distance

Bonjour à tous,

J'ai une couche de points (t_points) et une couche de lignes (t_ecoulements) et cherche à savoir quelle est la ligne la + proche du point choisi en calculant les distances.

Mon script :

Code:

SELECT t_points.point POINT, t_ecoulements.id NOM,

st_distance (st_geomfromtext(t_points.geometrie, 2154),st_geomfromtext(t_ecoulements.geometrie, 2154)) as DISTANCE

FROM t_points, t_ecoulements

WHERE  t_points.point = 628

ORDER BY DISTANCE 

LIMIT 1

Pour obtenir les colonnes t_points.geometrie et t_ecoulements.geometrie, j'ai utilisé la calculatrice de champs avec l'expression "geom_to_wkt($geometry)"

La colonne DISTANCE renvoie uniquement des valeurs NULL, y'a t il une erreur dans mon code ?

Merci !

Julie

Hors ligne

 

#2 Thu 08 October 2015 14:39

Lsam
Participant assidu
Date d'inscription: 27 Nov 2013
Messages: 157

Re: QGIS 2.10.1 : Spatialite st_distance

Bonjour,

Il est inutile d'employer st_geomfromtext puisque tu disposes d'un champ geometrie dans ta table spatialite.

Voici une requête à tester :

Code:

SELECT t_points.point POINT, t_ecoulements.id NOM,
min(st_distance(t_points.geometrie,t_ecoulements.geometrie)) as DISTANCE
FROM t_points, t_ecoulements
WHERE  t_points.point = 628
GROUP BY 1,2

Dernière modification par Lsam (Thu 08 October 2015 14:40)

Hors ligne

 

#3 Thu 08 October 2015 15:40

Lsam
Participant assidu
Date d'inscription: 27 Nov 2013
Messages: 157

Re: QGIS 2.10.1 : Spatialite st_distance

En fait, j'ai comme un doute, tes champs geométrie sont du texte ? Pourquoi faire cette transformation en texte dans QGis puis la reconversion en géométrie dans Spatialite alors que tu peux importer facilement tes objets avec Qspatialite ?

Hors ligne

 

#4 Thu 08 October 2015 16:34

JulieDubois
Participant occasionnel
Date d'inscription: 3 Jul 2015
Messages: 13

Re: QGIS 2.10.1 : Spatialite st_distance

Merci pour cette réponse.

Il y a bien une colonne "geom" qui a été créée je pensais qu'elle contenait uniquement le type de la géométrie (MULTILINESTRING ou POINT).
En utilisant

Code:

SELECT t_points.point POINT, t_ecoulements.id NOM,
min(st_distance(t_points.geom,t_ecoulements.geom)) as DISTANCE
FROM t_points, t_ecoulements
WHERE  t_points.point = 628
GROUP BY 1,2

ma colonne DISTANCE reste NULL...

EDIT : Finalement ca marche avec ce code, mais je n'ai pas vraiment d'explications ..

Dernière modification par JulieDubois (Thu 08 October 2015 17:03)

Hors ligne

 

Pied de page des forums

Powered by FluxBB