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

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: Calcul distance minimales point à point

magali di salvo a écrit:

peut-être vaudrait-il mieux chercher outil mbx qui le fait "tout seul" ?


...Ou en cherchant un tout petit peu dans les archives wink
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

 

Pied de page des forums

Powered by FluxBB