#1 Mon 11 December 2006 16:57
- hanczyk
- Participant assidu
- Lieu: Châlons-en-Champagne
- Date d'inscription: 21 Apr 2006
- Messages: 596
Requête SQL géographique
version : MI 7.8
tables : 2 tables graphiques MaTable1 - MaTable2
objectif : sélectionner les objets de MaTable2 compris dans ou une partie dans un objet de MaTable1
partly Within ou contains part me convienne sauf que les objets ayant un coté contigue est sélectionné (pour moi cet objet ne doit pas être pris en compte)
comment affiner ma requête ?
PS : j'ai utilisé le moteur de recherche mais faute de temps je ne peux consulter tous les messages !
merci
Jean-Marc Hanczyk
Hors ligne
#2 Mon 11 December 2006 17:14
Re: Requête SQL géographique
Hello,
Peut être en utilisant les centroïdes plutot que les entités elle même ?
Je n'ai plus la requête en tête mais ca doit pouvoir se retrouver je pense.
Geomatiquement,
Robin.
PS : Merci pour ce message clair et détaillé ! Ca fait plaisir aux modérateurs
EDIT : en fait c'est "contain" qui selectionne sur la base des centroïdes, mais il vous faut aussi les polygones contenus en partie. Donc ma solution n'est pas suffisante. Et la même requête sur la même couche, mais en faisant un tampon léger vers l'intérieur des polygones ?
Hors ligne
#3 Mon 11 December 2006 23:02
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Requête SQL géographique
Bonsoir,
Pour affiner, ou même en guise de critère principal on peut tester la surface d'intersection entre objets par
AreaOverlap(maTable2.obj,maTable1.obj)>0
Hors ligne
#4 Tue 12 December 2006 13:38
- hanczyk
- Participant assidu
- Lieu: Châlons-en-Champagne
- Date d'inscription: 21 Apr 2006
- Messages: 596
Re: Requête SQL géographique
merci Maurice,
pour la communauté voici mon critère qui a répondu à ma requête :
MaTable2 . obj partly within MaTable1 . obj and areaOverlap ( MaTable2 . obj , MaTable1 . obj ) > 0
Jean-Marc Hanczyk
Hors ligne