#1 Mon 28 July 2008 16:20
- stephane.sautonie
- Participant occasionnel
- Date d'inscription: 11 Jul 2008
- Messages: 24
Problème de points
Bonjour à tous,
j'ai un petit soucis qui me retarde beaucoup.
Je travaille sur MapInfo 9.
Je possède 2 tables qui possèdent des points de coordonnées en commun.
Afin d'extraires ces coordonnées pour en faire une nouvelle table, j'utilise la commande SQL suivante :
coord_toit_toarcien.NodeX And coord_toit_toarcien.NodeY = coord_BP_j1.NodeX And coord_BP_j1.NodeY
La syntaxe est correct mais le message "aucun enregistrement n'est sélectionné" apparaît.
Et puis rien.
Quelqu'un peut-il m'aider? Merci.
Hors ligne
#2 Mon 28 July 2008 16:44
- nicoboud
- Membre
- Lieu: Nantes
- Date d'inscription: 12 Oct 2007
- Messages: 860
Re: Problème de points
coord_toit_toarcien.NodeX And coord_toit_toarcien.NodeY = coord_BP_j1.NodeX And coord_BP_j1.NodeY
Bonjour,
Cette syntaxe est acceptée par MapInfo bien qu'elle soit incorrecte.
Il vaut mieux mieux écrire : coord_toit_toarcien.NodeX=coord_BP_j1.NodeX and coord_toit_toarcien.NodeY=coord_BP_j1.NodeY
ou si ce sont des objets points : coord_toit_toarcien.Obj intersects coord_BP_j1.Obj
Nicolas.
Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS
Hors ligne
#3 Mon 28 July 2008 16:59
- stephane.sautonie
- Participant occasionnel
- Date d'inscription: 11 Jul 2008
- Messages: 24
Re: Problème de points
Merci, les deux possibilités fonctionnent.
Par contre des points non communs subsistent.
Je pense que certains points non communs ont en la coordonnée X ou Y.
Est-ce qu'il n'y a pas une petite astuce pour éviter cela?
Hors ligne
#4 Tue 29 July 2008 06:58
- JM
- Participant occasionnel
- Lieu: Toulouse
- Date d'inscription: 1 Jun 2006
- Messages: 34
Re: Problème de points
Bonjour,
Il se peut que tes coordonnées soient très proches mais pas rigoureusement identiques (décimales différentes par exemple ...).
Si c'est le cas une égalité stricte ne marchera pas.
Tu peux essayer de pallier celà en créant un tout petit buffer autour d'une de tes couches de points (en récupérant son identifiant) et en passant par une requête avec opérateur géographique de type "contains" ou "within" selon ta manière de travailler.
C'est un peu plus lourd mais ça marche assez bien quand je rencontre ce type de difficulté.
Hors ligne
#5 Tue 29 July 2008 09:38
- stephane.sautonie
- Participant occasionnel
- Date d'inscription: 11 Jul 2008
- Messages: 24
Re: Problème de points
Merci, mais je suis débutant et j'ignore ce qu'est un buffer.
Hors ligne
#6 Tue 29 July 2008 10:20
- JM
- Participant occasionnel
- Lieu: Toulouse
- Date d'inscription: 1 Jun 2006
- Messages: 34
Re: Problème de points
Re-bonjour
Un buffer c'est un "tampon" chez Mapinfo
Dans le menu objet tu as une option "tampon", tu peux passer par la création de ces objets (un tampon et un objet créé dans un périmètre entourant un autre objet)
Donc autour de tes points tu peux créer un patit cercle (tampon ou buffer) représentant l'incertitude autour de la précision de tes coordonnées et chercher les objets qui sont dans ce périmètre.
Sinon tu peux passer par une requête sql du type :
Colonnes : *
Tables : P02 [une de tes 2 tables de points]
Critères : OBJ intersects any ( select buffer ( OBJ , 6 , 10 , "m" ) from P01) [où P01 est ton autre table de points]
Cette expression va te sélectionner entre tes 2 tables tous les objets communs dans un périmètre de 10 mètres
Le "6" correspond au nombre de facettes du tampon généré (tu peux le laisser tel quel ou l'augmenter à 12 pour t'approcher d'un cercle régulier)
Le "10" correspond au rayon de recherche du tampon et le "m" à l'unité de recherche (ici le mètre)
Si ton imprécision entre tes coordonnées et de l'ordre du mètre, tu remplaces le "10" par "1" (ou des valeurs inférieures selon tes besoins)
Tu obtiendras une table qui donne la sélection des points de P01 contenus dans le périmètre des tampons générés à partir de P02
Les paramètres restent à affiner selon la précision de tes tables.
Hors ligne
#7 Tue 29 July 2008 13:12
- stephane.sautonie
- Participant occasionnel
- Date d'inscription: 11 Jul 2008
- Messages: 24
Re: Problème de points
Malheureusement cette manipulation me donne 4 fois plus de points que prévu (environ 20000 au lieu de 5000).
Sinon, peut-on associer les colonnes X et Y dans la commande SQL?
J'ai l'impression qu'il traite ces colonnes séparément alors qu'il faudrait qu'elles soient considérée ensemble.
La requête "And" ne semble pas satisfaire cela.
Merci.
Hors ligne
#8 Tue 29 July 2008 13:49
- JM
- Participant occasionnel
- Lieu: Toulouse
- Date d'inscription: 1 Jun 2006
- Messages: 34
Re: Problème de points
Il faudrait que tu me joignes un extrait (ou la totalité selon la taille) des données à traiter pour comprendre (structure ...etc..)
A partir de celà je pourrais essayer de chercher. Si j'ai bien compris tu cherches à générer une table unique sans doublons ?
Hors ligne
#9 Tue 29 July 2008 14:25
- stephane.sautonie
- Participant occasionnel
- Date d'inscription: 11 Jul 2008
- Messages: 24
Re: Problème de points
Merci, finalement j'y suis arrivé. J'avais une erreur au niveau d'une table à cause d'une précédente manipulation.
A présent ta requête SQL initiale fonctionne très bien.
Merci encore et je suis désolé de t'avoir fait perdre ton temps.
Hors ligne