Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

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


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#4 Wed 06 July 2016 12:16

nicoboud
Moderateur
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


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#6 Fri 08 July 2016 11:02

nicoboud
Moderateur
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

 

Pied de page des forums

Powered by FluxBB