#1 Wed 09 March 2011 19:20
Discriminer objets inclus et incluant
Bonjour,
J'ai une série d'objets.
Chaque objet en contient un plus petit.
J'aimerais sélectionner d'un côté les objets inclus, de l'autre les incluant....
Car ils ne désignent pas la même chose.
qqn voit-il comment procéder?
geodata au cerema et petits billets en géomatique
Hors ligne
#2 Thu 10 March 2011 09:18
Re: Discriminer objets inclus et incluant
Bonjour,
Quelque chose comme ca ?
Code:
SELECT a.A FROM tablea a, tableb b WHERE st_within(a.A, b.B) ; SELECT b.B FROM tablea a, tableb b WHERE st_contains(a.A, b.B) ;
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Thu 10 March 2011 13:55
Re: Discriminer objets inclus et incluant
merci!
sinon, n'y aurait pas de solution sans passer par postGIS?
Dernière modification par baobazz (Thu 10 March 2011 13:55)
geodata au cerema et petits billets en géomatique
Hors ligne
#4 Thu 10 March 2011 14:12
Re: Discriminer objets inclus et incluant
Bonjour,
Ben peut être les mêmes fonctions dans QGIS, via le menu vecteur ?
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#5 Thu 10 March 2011 18:21
Re: Discriminer objets inclus et incluant
Quelle fonction exactement? Il n'y a pas d'opérateurs spatiaux dans vecteur mais dans requête spatiale.
Le souci, c'est que quand on effectue la requête st_contains entre deux tables, un objet d'une table contient son "clone" de la deuxième table...
geodata au cerema et petits billets en géomatique
Hors ligne
#6 Tue 15 March 2011 10:19
- romain974
- Participant occasionnel
- Date d'inscription: 8 Feb 2011
- Messages: 28
Re: Discriminer objets inclus et incluant
si jamais tu n'y arrive pas et que tu ne souhaites pas installer postgis, essayes spatialite:
(en supposant que tu sois sous windows)
1/Télécharges le logiciel spatialite gui: http://www.gaia-gis.it/spatialite-2.4.0 … -1.4.1.zip (très léger, <10mo, sans installation ni dependances externes)
2/ Ouvres le logiciel
3/ crées une base de donnée (menu / creer une BDD)
4/ importes ton shapefile ( menu / load shapefile - srid=code epsg - charset: je te conseille iso-XXXX-15 -nom de colonne géométrique=geometry
5/ executes les requetes de Yves pour tester
6/ clic droit sur le resultat /export as shapefile
tout simple,
Hors ligne
#7 Tue 15 March 2011 10:25
- romain974
- Participant occasionnel
- Date d'inscription: 8 Feb 2011
- Messages: 28
Re: Discriminer objets inclus et incluant
exemple de requete pour: matable(id,geometry)
//selection des objets contenant d'autres objets:
SELECT
a.id
FROM matable as a
JOIN matable as b ON (
ST_contains(a.geometry,b.geometry)
AND
a.id<>b.id
) (#possibilité d'acceler via R*Tree)
GROUP BY 1
//selection des objets contenus dans d'autres objets:
SELECT
a.id
FROM matable as a
JOIN matable as b ON (
ST_within(a.geometry,b.geometry)
AND
a.id<>b.id
) (#possibilité d'acceler via R*Tree)
GROUP BY 1
Dernière modification par romain974 (Tue 15 March 2011 10:27)
Hors ligne