L'interrogation au sein de la longitude et de la latitude dans MySQL
Avant de demander spécifiques exemples de code, je voulais juste vous demander si il est possible de faire une requête à quelque chose comme ce pseudo-code:
sélectionner des éléments à partir de la table où lat/lon = -à moins de x km d'une certaine latitude/longitude-
Est que c'est faisable? Ou dois-je avoir à sauter à travers des cerceaux?
Toutes les bonnes approches qui pourraient être recommandées serait génial!
Vous devez vous connecter pour publier un commentaire.
Vous devez rechercher la Haversine formule, mais un bon départ pourrait être:
Citant à partir de la première url:
Voici l'instruction SQL qui permettra de trouver la plus proche de 20 emplacements qui sont dans un rayon de 25 miles à l'37, -122 coordonner. Il calcule la distance en fonction de la latitude/longitude de la ligne et de la cible de latitude/longitude, et puis demande uniquement les lignes où la valeur de la distance est inférieur à 25, les ordres de la totalité de la requête par la distance, et la limite à 20 résultats. Pour une recherche par kilomètres au lieu de kilomètres, remplacer 3959 avec 6371.
NULL
tout le temps.Je vous recommande fortement de l'aide soit SpatiaLite ou PostGIS pour ce genre d'opération. Ils ont construit dans le type de fonctions que vous essayez de main code. Ils ont aussi un soutien adéquat pour les données spatiales qui n'existe pas vraiment en MySQL.
Pas exactement une solution dans MySQL, mais une meilleure solution si vous voulez continuer à faire des requêtes spatiales dans l'avenir.