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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 14 September 2017 08:46

Ted
Participant assidu
Date d'inscription: 16 Jan 2007
Messages: 181

[spatialite vs postgis]: requête spatiale

Bonjour,

On m'a demandé de faire une requête spatiale sous SPATIALITE, afin de déterminer si des objets sont bien dans le bon polygone.
J'avais ce type de requête sous POSTGIS et qui fonctionnait bien. Voici la requête :

Code:

select a.* from Points as  a, Polygon as b where 
st_within(a.geom, b.geom) and a.depth <= b.drval1

=> me renvoie 2000 anomalies

Sous spatialite, j'ai du faire une modification notamment pour l'utilisation des index spatiaux (sinon des heures de travail pour une requête spatiale) :

Code:

select a.* from Points as 'a', Polygon as 'b' where 
st_within(a.geometry, b.geometry) and a.depth <= b.drval1 
and a.rowid in (select rowid from spatialindex where f_table_name = 'a' and search_frame = b.geometry)

=> me renvoie un résultat vide, quelqu'un aurait-il une idée sur ce qui est mal fait dans la seconde requête?

Cordialement

Hors ligne

 

#2 Thu 14 September 2017 10:29

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1025
Site web

Re: [spatialite vs postgis]: requête spatiale

Salut,

Pourquoi deux AND de plus dans la version spatialite ?

Dernière modification par Loic_GR (Thu 14 September 2017 10:31)


Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

#3 Thu 14 September 2017 11:34

Ted
Participant assidu
Date d'inscription: 16 Jan 2007
Messages: 181

Re: [spatialite vs postgis]: requête spatiale

Salut Loic_GR,

parce que l'utilisation de l'index spatial de Spatialite le requiert à priori :

Code:

SELECT * FROM mypolygs, mypoints
WHERE ST_INtersects(mypolygs.geom, mypoints.geom)
AND mypoints.ROWID IN (
SELECT ROWID FROM SpatialIndex
WHERE f_table_name = 'mypoints'
AND search_frame = mypolygs.geometry);

Hors ligne

 

#4 Thu 14 September 2017 15:27

Ted
Participant assidu
Date d'inscription: 16 Jan 2007
Messages: 181

Re: [spatialite vs postgis]: requête spatiale

Re,

Suite à un post sur le forum spatialite de google group, j'ai eu une réponse :
le f_table_name doit être le vrai nom de la table et non l'alias.

Ted

Hors ligne

 

#5 Thu 14 September 2017 15:41

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1025
Site web

Re: [spatialite vs postgis]: requête spatiale

Super, merci pour ton retour.


Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

Pied de page des forums

Powered by FluxBB