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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 25 March 2014 10:23

B.LAVA
Juste Inscrit !
Date d'inscription: 25 Mar 2014
Messages: 9

Sélectionner Ligne en fonction de points

Bonjour,

J'utilise Mapinfo 8.5

Je travaille sur 2 couches :
- Une couche de polylignes : COURS_EAU
- Une couche de points sur lesquels j'ai fait des buffers : POINTS

Les points se trouvent sur les cours d'eau (certains cours d'eau n'ont pas de point).

J'aimerais pouvoir afficher les cours d'eau qui ne montrent pas de point.

Je pensais faire une sélection SQL mais elle ne fonctionne pas :
Table: COURS_EAU, POINTS
critères : COURS_EAU.Obj Intersects POINT.Obj
Résultat dans la Table : Selection

Mais un message d'erreur me dit "Aucun enregistrement n'est sélectionné"

Pouvez vous m'aider?

Merci d'avance

Hors ligne

 

#2 Tue 25 March 2014 10:55

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Sélectionner Ligne en fonction de points

Salut et bienvenue,

Si tu cherches les cours d'eau qui n'intersectent aucune entité points
La requête serait plutôt de ce style:

Code:

select * from Table_Cours_Eau where not obj intersects any (select obj from Table_BufferPoints) into Resultat

A+
Joël

Hors ligne

 

#3 Tue 25 March 2014 13:09

B.LAVA
Juste Inscrit !
Date d'inscription: 25 Mar 2014
Messages: 9

Re: Sélectionner Ligne en fonction de points

Oui. Sinon je pensais inverser la sélection.

Mais est ce que la démarche est la bonne (fonctionner par sélection SQL) ou pas?

car comme dit plus haut, j'obtiens juste un message d'erreur.

Hors ligne

 

#4 Tue 25 March 2014 13:33

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Sélectionner Ligne en fonction de points

Passer par une requête est toujours plus facile qu'en manuel wink
Par contre si je prends ta requête -> Celle ci est en réalité une jointure spatiale
Dans "Selection" tu devrais retrouver tes tables jointes (cours d'eau et points)
A chaque cours d'eau -> ses points.
Pour n'avoir qu'une sélection de cours d'eau qui sont intersectés par des points (et ce ne sera pas une jointure)

Code:

select * from Table_Cours_Eau where obj intersects any (select obj from Table_BufferPoints) into Resultat

Dans Resultat tu retrouveras que tes cours d'eau (pas de données de tes points dans la table) qui sont intersectés par des points.
Et là tu inverses la sélection.
Mais pourquoi cette étape -> quand tu peux directement demander ceux qui ne sont pas intersectés.
Je ne sais pas si je suis clair là sad
A+
Joël

Hors ligne

 

#5 Tue 25 March 2014 14:45

JF BEHM
Participant actif
Lieu: toulouse
Date d'inscription: 9 Aug 2013
Messages: 126
Site web

Re: Sélectionner Ligne en fonction de points

Bonjour,
tu fais des buffers sur tes points, c'est ça ? Peut-être que la distance n'est pas suffisante.
Si tu ne fait pas de zones tampons, tu ne trouveras jamais de points qui intersectent les polylignes.


Jean-François Behm, formateur SIG, jf.behm@texte-a-enlever.idgeo.fr, formations@texte-a-enlever.idgeo.fr
IDGEO, www.idgeo.fr
Institut de Développement de la Géomatique  42, avenue de Général de Croutte - 31100 toulouse

Hors ligne

 

#6 Tue 25 March 2014 15:55

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Sélectionner Ligne en fonction de points

Une autre possibilité est de créer les buffers sur les cours d'eau et de construire la requête comme ceci:

Code:

Select *  from Table_Buffers_Cours_Eau where not obj contains any (select obj from Table_Points) into Resultat

A+
Joël

Hors ligne

 

#7 Wed 26 March 2014 14:01

B.LAVA
Juste Inscrit !
Date d'inscription: 25 Mar 2014
Messages: 9

Re: Sélectionner Ligne en fonction de points

Oui, j'ai des buffers sur mes points. Si je zoom au max, les points intersectent bien les lignes.
J'avais pensé faire les buffers sur les cours d'eau. J'essayerais cette méthode aussi.

Par contre, pour les requêtes proposées par Spacejo, je ne comprend pas comment les lancer. Pouvez vous m'aider la dessus?

Merci encore

Hors ligne

 

#8 Wed 26 March 2014 14:15

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Sélectionner Ligne en fonction de points

Mapinfo dispose d'une fenêtre de commande appelée FMB (Fenêtre MapBasic)
Elle s'affiche en faisant: Options --> Afficher Fenêtre MapBasic.
Tu copies la requête que tu veux puis tu la colles dans cette fenêtre, tu modifies le nom des tables pour qu'ils correspondent à ton cas (Table_Buffers_Cours_Eau, Table_Points)
Une mise en garde (le curseur qui clignote doit être en bout de ligne -> vu que tu vas faire des modifs wink ).
Puis tu valides.
Dans la sélection appelée "Resultat" -> tu devrais retrouver ce que tu cherches.
Je passe toujours par cet outil mais il doit être possible de le faire aussi par le requêteur -> Sélection -> Sélection SQL.
A+
Joël

Hors ligne

 

#9 Wed 26 March 2014 14:28

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Sélectionner Ligne en fonction de points

Oui, j'ai des buffers sur mes points. Si je zoom au max, les points intersectent bien les lignes.


Lorsque tu as crées tes buffers --> tu les as crées dans la table d'origine, dans une nouvelle table?
Ceci expliquerait pourquoi Mapinfo ne trouve aucun enregitrement.

Hors ligne

 

#10 Wed 26 March 2014 14:35

B.LAVA
Juste Inscrit !
Date d'inscription: 25 Mar 2014
Messages: 9

Re: Sélectionner Ligne en fonction de points

Ok merci beaucoup, je commence à y voir plus clair.

Par contre quand je rentre la requète :

select * from Table_Cours_Eau where not obj intersects any (select obj from Table_BufferPoints) into Resultat


J'obtient : "La  table Table_Cours_Eau n'est pas ouverte" ....

Désolé ;-)

Hors ligne

 

#11 Wed 26 March 2014 14:40

B.LAVA
Juste Inscrit !
Date d'inscription: 25 Mar 2014
Messages: 9

Re: Sélectionner Ligne en fonction de points

Spacejo a écrit:

Oui, j'ai des buffers sur mes points. Si je zoom au max, les points intersectent bien les lignes.


Lorsque tu as crées tes buffers --> tu les as crées dans la table d'origine, dans une nouvelle table?
Ceci expliquerait pourquoi Mapinfo ne trouve aucun enregitrement.


Bonne question !

J'explique comment je procède :

Je rend ma couche POINTS modifiable.
Je sélectionne tous les points
Puis Objet->Tampon
Je rentre ma valeur de rayon, "un tampon pour chaque objet", méthode de calcul : "sphérique"
Suivant ->
Ok

Mes buffers apparaissent sur ma carte.

Après......

Hors ligne

 

#12 Wed 26 March 2014 15:34

B.LAVA
Juste Inscrit !
Date d'inscription: 25 Mar 2014
Messages: 9

Re: Sélectionner Ligne en fonction de points

Ok, ça marche, j'ai réussi à avoir ma sélection ! J'ai bidouillé avec toutes les solutions que vous m'avez proposées et ça a marché ! Super merci :-)

Merci beaucoup !

Dernière modification par B.LAVA (Wed 26 March 2014 16:32)

Hors ligne

 

#13 Wed 26 March 2014 19:36

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Sélectionner Ligne en fonction de points

J'explique comment je procède :

Je rend ma couche POINTS modifiable.
Je sélectionne tous les points
Puis Objet->Tampon
Je rentre ma valeur de rayon, "un tampon pour chaque objet", méthode de calcul : "sphérique"
Suivant ->
Ok

Mes buffers apparaissent sur ma carte.

Après......


Effectivement vu comme ça -> il ne te demande pas si tu veux tes buffers dans une autre table wink
Je pensais que tu passais par là:
Table -> Tampon
et là tu demandes que les tampons soient sur une autre table.
Ainsi tu as une couche buffers ce qui est plus simple.

J'obtient : "La  table Table_Cours_Eau n'est pas ouverte" ....


Et oui comme je te l'avais dit au dessus --->

Tu copies la requête que tu veux puis tu la colles dans cette fenêtre, tu modifies le nom des tables pour qu'ils correspondent à ton cas (Table_Buffers_Cours_Eau, Table_Points)


A+
Joël

Hors ligne

 

#14 Thu 27 March 2014 13:40

B.LAVA
Juste Inscrit !
Date d'inscription: 25 Mar 2014
Messages: 9

Re: Sélectionner Ligne en fonction de points

Merci beaucoup

Hors ligne

 

Pied de page des forums

Powered by FluxBB