#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
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
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