#1 Tue 05 July 2016 01:19
- Charliecod
- Juste Inscrit !
- Lieu: Sydney
- Date d'inscription: 22 Feb 2010
- Messages: 7
Selection objets complexes
Bonjour,
Je voudrais selectionner des polygones se trouvant au sein d'autres polygones. J'ai deux layer, le premier avec de grands polygones (avec des trous) et un second avec de plus petits polygones (qui s'inserent dans les trous ou sont en dehors). Le probleme etant que le deuxieme layer a des polygones hors du premier, je ne peux pas faire une selection par intersect car il selectionne tous mes polygones du 2nd layer.
J'ai trouve sur internet une ligne de commande mapbasic pour la selection d'objets complexes (de type doughnut) mais je n'arrive pas a m'en servir:
Select * From {table} Where Val(Str$(ObjectInfo(Obj,21)) > 1
Merci de votre aide'
Cordialement
Ps: pas dáccent sur mon clavier je vous prie de m'en excuser.
Hors ligne
#2 Tue 05 July 2016 10:44
- nicoboud
- Membre
- Lieu: Nantes
- Date d'inscription: 12 Oct 2007
- Messages: 860
Re: Selection objets complexes
Bonjour,
Cette formule permet de sélectionner tous les objets complexes d'une seule et même table.
Mais si j'ai bien compris, vous voulez sélectionner les objets d'une table A qui sont à l'intérieur des 'trous' des objets complexes d'une table B.
Si c'est bien cela, il n'est pas possible de faire cette sélection car les objets complexes à trous de la table B n'intersecte pas, ni ne contienne les objets de la table A.
Pour Mapinfo, ces objets à l'intérieur des trous sont à "l'extérieur" de vos polygones complexes.
Pour arriver au résultat recherché, il faudrait au préalable supprimer les "trous" de vos objets complexes, puis faire une sélection classique du type:
Code:
Select * from table_A, table_B where table_B.obj contain table_A.obj into Selection
Nicolas.
Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS
Hors ligne
#3 Tue 05 July 2016 13:51
- Charliecod
- Juste Inscrit !
- Lieu: Sydney
- Date d'inscription: 22 Feb 2010
- Messages: 7
Re: Selection objets complexes
Bonjour,
Merci de votre reponse. Malheureusement ce conseil ne peut pas fonctionner dans mon cas.
Je joins un schema pour expliquer mon propos.
Comme je l'ai decrit precedemment je dispose de deux layer (A et B qui sont une combinaison de plus petits objets). Le layer A represente une couche d'objet inclus et la couche B des objets exclus de ma selection. Je ne souhaite extraire uniquement les objets B se trouvant entierement dans mes objets A (trous), comme le montre le schema avec les deux objets B a droite et gauche. L'objet B en haut du scema et celui en bas ne m'interesse pas et je souhaite ne pas les selectionner. Je travaille sur deux larges bases de donnees (deux etats australiens) et reperer les trous manuellement pour les selectionner, afin de les supprimer, me prendrait une eternite...
J'espere etre assez claire.
Si vous avez une idee je vous en remercie.
Cordialement.
Hors ligne
#4 Wed 06 July 2016 12:16
- nicoboud
- Membre
- Lieu: Nantes
- Date d'inscription: 12 Oct 2007
- Messages: 860
Re: Selection objets complexes
Bonjour,
à tester :
1- convertir tous les objets A en polylignes (sélectionner tous les objets A puis menu Objet>Convertir en polyligne)
2- désagréger tous les objets A (sélectionner tous les objets A puis menu Objet>Désagréger) en décochant "Conserver les trous dans les objets régions"
3-convertir de nouveau tous les objets A en polygone
Tous les trous auront été supprimés et transformés en polygones classiques.
4- Appliquez ensuite la formule SQL suivante :
Code:
Select * from table_A, table_B where table_A.obj entirely within table_B.obj into Selection
Nicolas.
Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS
Hors ligne
#5 Thu 07 July 2016 02:29
- Charliecod
- Juste Inscrit !
- Lieu: Sydney
- Date d'inscription: 22 Feb 2010
- Messages: 7
Re: Selection objets complexes
Bonjour,
Merci Nicolas. J'ai teste ta solution et malheureusement cela ne fonctionne pas.
Je joins une capture d'ecran de mon travail. En bleu la zone A et en rouge la zone B. La zone B recouvre en partie la zone A mais je ne souhaite conserver les parties B ne partageant aucune frontieres communes avec A.
J'ai essaye differentes techniques de selection mais je ne trouve pas de solution.
Le but de cette etape etant de differencier ces trous, par une couleur differente, lors de límpression de cartes par l'intermediaire de "MapInfoDataDrivenPages".
Merci
Cordialement
Charlie
Hors ligne
#6 Fri 08 July 2016 11:02
- nicoboud
- Membre
- Lieu: Nantes
- Date d'inscription: 12 Oct 2007
- Messages: 860
Re: Selection objets complexes
Bonjour,
La solution pourrait être entre l'étape 2 et l'étape 3 : faites une sélection des polylignes qui intersectent les objets B pour les supprimer !
Code:
Select * from table_B, table_A where table_A.obj intersects table_B.obj into Selection
Nicolas.
Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS
Hors ligne