#1 Tue 21 November 2006 10:15
- Yasmine
- Participant actif
- Lieu: Nevers
- Date d'inscription: 9 Sep 2005
- Messages: 117
Sélection
Bonjour!
Je souhaiterais sélectionner les documents d'urbanismes concernant un contour de forêt. Cette sélection concerne donc deux couches: une couche avec mon objet forêt et une couche avec les communes ayant un PLU.
Si j'utilise l'opérateur géographique "intersects" j'obtiens l'erreur suivante: si la forêt a, ne serait-ce qu'un point commun avec la limite d'une commune "PLU" voisine, cette commune est sélectionnée...
Par contre, si j'utilise l'opérateur "within", je n'ai que la commune contenant le centroïde de ma forêt qui est sélectionnée, or cette forêt peut être à cheval sur plusieurs communes...
Donc, la seule solution est de couper mon objet puis d'utiliser la fonction within?
J'aurais bien apprécié une solution plus directe car c'est une séletion que je veux automatiser dans un wor...
Je vous remercie par avance de vos idées!
Yasmine
Hors ligne
#2 Tue 21 November 2006 11:12
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Sélection
Bonjour,
Tu peux utiliser AreaOverlap(foret.obj,commune.obj)
qui renvoit une surface dans les unités par défaut ou par celles introduites par Set CoordSys Table ma_table
ET imposer une condition genre
Where AreaOverlap(foret.obj,commune.obj) > 10000 (si tu as fait le calcul en mètres carrés et que tu ne veus que les intersections de plus d'un hectare)
Hors ligne
#3 Tue 21 November 2006 13:03
- Yasmine
- Participant actif
- Lieu: Nevers
- Date d'inscription: 9 Sep 2005
- Messages: 117
Re: Sélection
et bien en effet... une forêt frontalière d'une commune avec un plan local d'urbanisme n'est pas concernée par ce PLU.
Maurice, je vais tester votre proposition mais je ne crois pas que les requêtes passents dans les wor...
Je vous tiens au courant dans l'a-midi et merci beaucoup!
Hors ligne
#4 Tue 21 November 2006 13:17
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Sélection
Pour peu que l'option ait été cochée dans les préférences "Démarrage", les requêtes de niveau 1 (requête sur tables) sont enregistrées dans les wor (pas les requêtes de niveau 2: requête sur une requête).
Pour s'y retrouver, ça peut être utile de finir la requête par un Into nom_explicite
Hors ligne
#5 Wed 22 November 2006 09:12
- Yasmine
- Participant actif
- Lieu: Nevers
- Date d'inscription: 9 Sep 2005
- Messages: 117
Re: Sélection
C'est encore moi,
Je dois vous avouer que je n'utilise que le B-A-BA des requêtes SQL. Et du coup, là ça se passe mal.
J'ai essayé ça mais ça ne marche pas:
Select foret_test . id , sum( areaoverlap ( foret_test . Obj , commune_test . Obj ) ) from foret_test, commune_test where foret_test.Obj Intersects commune_test.Obj into selection
Je patauge, je patauge...
Désolée de vous embêter à nouveau avec ça...
Hors ligne
#6 Wed 22 November 2006 09:42
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Sélection
On est là pour ça...
Select foret_test . id , commune_test.id from foret_test, commune_test where foret_test.Obj Intersects commune_test.Obj and areaoverlap (foret_test . Obj , commune_test . Obj) > 100 into foret100
devrait donner une sélection de forêts intersectant des communes sur plus de 100 m2
L'inversion forêt<->commune dans la requête devrait donner une sélection de communes intersectant les forêts sur plus de 100 m2
A vérifier et confirmer...
Hors ligne
#7 Wed 22 November 2006 11:25
- Yasmine
- Participant actif
- Lieu: Nevers
- Date d'inscription: 9 Sep 2005
- Messages: 117
Re: Sélection
ca marche! Merci beaucoup!
Cependant j'ai un problème concernant les unités. Il fait à chaque fois le calcul en sq mi, même si je précise avant Set CoordSys Table foret (table en lambert 2 étendu)...
Et c'est vrai qu'on n'est pas habitué à manipuler les miles
Hors ligne
#8 Wed 22 November 2006 11:52
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Sélection
...Et c'est vrai qu'on n'est pas habitué à manipuler les miles
En plus s'ils sont carrés !!
La petite ligne magique (que je mets dans mon startup.wor pour ne pas avoir à la retaper à chaque coup):
Set Area units "hectare" ou Set Area units "sq m"...ou autre unité
Tant qu'à y être on peut aussi mettre dans le startup.wor
Set Distance Units "m"
Set Paper Units "cm"
...et plein d'autres choses: appels à des mbx, Alter MapInfoDialog... (très amusant!), etc...
Hors ligne
#9 Wed 22 November 2006 13:04
- Yasmine
- Participant actif
- Lieu: Nevers
- Date d'inscription: 9 Sep 2005
- Messages: 117
Re: Sélection
C'est génial!
Que dire... Merci?!
Hors ligne