#1 Mon 06 August 2007 17:14
- seb10241024
- Juste Inscrit !
- Date d'inscription: 6 Aug 2007
- Messages: 2
Calcul distance minimales point à point
Bonjour à Tous,
j'ai deux tables de points. J'aimerais calculer la distance séparant chaque point de la table A du point le plus proche de la table B.
Je sais que c'est une question très basique, mais impossible de trouver une information dans le manuel de la version 8 (mais il se peut que je cherche mal). Je suis débutant, et un peu pressé par le temps, d'où cette demande.
Merci,
S
Hors ligne
#2 Mon 06 August 2007 18:22
- magali di salvo
- Participant actif
- Lieu: Lyon
- Date d'inscription: 21 Sep 2005
- Messages: 70
Re: Calcul distance minimales point à point
bonjour,
à moins de trouver un outil mbx qui le fasse, il faut je pense passer par des zones tampon et requêtes. En tout cas la V7.8 ne le fait pas...
Si vous avez peu de points, il faudrait créer une matrice de tous les couples (A,B) possibles avec la distance correspondante, par une requête SQL. Pour cela il faut que chaque table A et B dispose d'un identifiant unique et mettez aussi en colonne les X et Y avec l'extracteur de coordonnées, ce sera plus facile.
créez deux champs vide dans A et B pour permettre la jointure sinon vous aurez un message d'erreur car mapinfo n'arrivera pas à faire la jointure.
En résumé chaque table doit avoir 4 attributs : identifiant,champvide,x et y.
ensuite faites une selection SQL en entrant
Table : A,B
critère : A.champvide=B.champvide
colonne : A.identifiant,B.identifiant,cartesiandistance(a.x,a.y,b.x,b.y,"m")
Sauvegarder la table résultat sous forme d'une table Mapinfo que vous pouvez appeler "couplesAB". attention, elle fera la taille de A * taille de B.
Ensuite, sur cette table "coupleAB" faire une requête en entrant :
Table : couplesAB
grouper par : identifiant de A (=COL1)
colonne : identifiant de A (=COL1), Min(distance = COL3 )
Ensuite ajoutez un champs "dist_mini" à la table couplesAB et remplissez le par jointure sur l'identifiant de A avec le résultat de la requête précédente sur les distances mini.
Séléctionnez enfin dans couplesAB les objets dont COL3=dist_mini et vous obtiendrez les couples (A,B) de distance minimale avec la distance. vous pouvez joindre cette distance sur la table A via l'identifiant de A.
ce n'est quand même pas évident à faire....peut-être vaudrait-il mieux chercher outil mbx qui le fait "tout seul" ?
bon courage
magali di salvo, certu
Hors ligne
#3 Mon 06 August 2007 18:58
Re: Calcul distance minimales point à point
peut-être vaudrait-il mieux chercher outil mbx qui le fait "tout seul" ?
...Ou en cherchant un tout petit peu dans les archives
http://georezo.net/forum/viewtopic.php?id=48062
Hors ligne
#4 Tue 07 August 2007 18:32
- seb10241024
- Juste Inscrit !
- Date d'inscription: 6 Aug 2007
- Messages: 2
Re: Calcul distance minimales point à point
Merci pour vos réponses.
Je m'en suis sorti en exportant les coordonées de Mapinfo vers Excel, puis de Excel vers SAS, et une petite requête SQL a fait l'affaire.
Hors ligne