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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 jeu. 14 septembre 2017 08:46

Ted
Membre
Date d'inscription: 16 janv. 2007
Messages: 155

[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 jeu. 14 septembre 2017 10:29

Loic_GR
Moderateur
Lieu: besancon
Date d'inscription: 12 mai 2011
Messages: 831
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 (jeu. 14 septembre 2017 10:31)


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

Hors ligne

 

#3 jeu. 14 septembre 2017 11:34

Ted
Membre
Date d'inscription: 16 janv. 2007
Messages: 155

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 jeu. 14 septembre 2017 15:27

Ted
Membre
Date d'inscription: 16 janv. 2007
Messages: 155

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 jeu. 14 septembre 2017 15:41

Loic_GR
Moderateur
Lieu: besancon
Date d'inscription: 12 mai 2011
Messages: 831
Site web

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

Super, merci pour ton retour.


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

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |