Déterminer si une coordonnée est dans le rayon de l'autre
Disons que j'ai une Table de lignes qui contiennent des coordonnées.
Quelle serait la meilleure façon de s'en sortir seules les lignes de coordonnées sont dans le rayon d'une autre coordonnée?
Pour simplifier ma question, je suis en train de donner l'exemple suivant:
Table like:
Columns: Latitude, Longitude.
Row1: 23.44444 24.55555
Row2: 32.44444 28.22222
Row3: 35.11111 32.12345
Dans une instruction SQL, comment puis-je obtenir les lignes de coordonnées sont dans le rayon de Row3 par exemple?
Vous devez vous connecter pour publier un commentaire.
Ce post montre comment faire cela dans SQL Server.
Et voici comment le faire dans MySQL:
GEOGRAPHY
type de données spatiales qui peut facilement calculer la distance (par exemple, laSTDistance
méthode) entre deux coordonnées. Je trouve cela plus agréable car il prend également en compte la courbure/forme ellipsoïdale de la terre. (L'article en haut de cette réponse semble supposer un plat de projection.) Probablement pas trop sensible si la distance est assez courte, mais peut-être sur une plus grande distance. Voir stackoverflow.com/a/501224/110871 concis exemple.ressemble à la formule de la distance est:
où Y et Z sont des points de chaque ligne tu veux tester, et y et z sont des points de exemple ligne.
de sorte que vous pourrait faire une telle chose:
lon
etlat
.$lon
et$lat
de formulaire de données point 1.Je ne sais pas comment faire cela dans access. Mais cette approche est de détroit que lente.
Qu'entendez-vous par dans le rayon de? Souhaitez-vous transmettre à une distance de 5 km, et de trouver toutes les lignes dans les 5 miles de la ligne x?
Vérifier si http://www.microsoft.com/sqlserver/2008/en/us/spatial-data.aspx