Recherche des emplacements les plus proches à l'aide de l'API Google Maps
Salut, je suis en train d'écrire une application qui montre les stations de vélo à proximité une adresse. J'ai la liste de latitude et de longitude emplacement de chaque station de vélo à partir d'un service.
Je peux marquer ma position actuelle, ou à toute adresse jusqu'à présent. Comment puis-je afficher toutes les stations de vélo près de ma position sur la carte. Dois-je d'abord obtenir la plus proche des lieux de Google à partir de l'emplacement actuel, puis accéder à la base de données de location de vélo et de faire des repères sur la carte? Quelle est la meilleure approche?
source d'informationauteur Geoplex
Vous devez vous connecter pour publier un commentaire.
Si vous avez déjà les coordonnées de vos stations de vélo et si vous faites confiance à ces données, puis il suffit de l'utiliser pour dessiner vos marqueurs. Maintenant, vous devez définir ce que "près" les moyens.
Vous avez des solutions différentes. Soit vous choisissez de tirer les marqueurs pour toutes les stations de vélo à l'intérieur de la carte (mais qui pourrait être de plusieurs marqueurs pour dessiner en fonction du niveau de zoom, ou vous devez prévenir votre script de l'élaboration de l'marqueurs avant un certain niveau de zoom est atteint) ou vous pouvez dessiner les marqueurs au sein de n kilomètres autour d'un lieu (peut-être l'emplacement de l'utilisateur, la carte, les coordonnées du centre, etc.).
Pour la deuxième solution, et si vous êtes le stockage de vos stations de vélo dans une base de données MySQL, vous pouvez faire une requête de ce genre:
$lat
et$lng
être votre les coordonnées du centrelat
etlng
être votre MySQL noms de colonne15
le rayon (en km) autour de vos coordonnéesIl utilise le Haversine formule. De bonnes informations peuvent être trouvées ici.
Espère que cette aide, mais nous ne savons pas vraiment comment vous avez organisé vos données dans votre application. Nous donner plus d'infos si vous avez besoin de plus d'aide sur ce!
Juste Au cas où quelqu'un est à la recherche d'une réponse correcte en 2016.
Il est très utile bibliothèque créé par google, La Géométrie de la bibliothèque a beaucoup de différentes méthodes qui peuvent aider à résoudre ce problème:
computeDistanceBetween()
Ce réponse explique exactement comment l'utiliser.
Ce sera généralement calculer la distance entre les deux passé LatLng objets.
De sorte que vous pouvez tout simplement:
L'algorithme précédent peut ne pas être optimisé, car certains d'entre nous peuvent avoir une multitude de milliers de coordonnées, ce que la méthode containsLocation() devient à portée de main, comme vous pouvez affiner votre recherche de la région par la spécification d'un polygone, vous pouvez chercher à l'intérieur.
Cela pourrait ne pas être la meilleure méthode pour trouver l'emplacement le plus proche, mais je crois qu'il va faire le travail si vous avez un nombre raisonnable de stations dans votre base de données.
Google aurait déjà ces résultats,
Mais si vous avez déjà vos coordonnées pour les places il me semble qu'il serait peut-être plus simple de juste parcelle de vos points.
J'ai la même chose et je l'ai résolu en utilisant la haversine
de la formule.
Voici mon exemple en PHP
Et pour le test j'ai utilisé ces coords
Le résultat devrait être
325932.546518
en mètres. Si tu veux en km seulement de diviser325932.546518/1000
=325.932546518km
La même formule pourrait être traduite en javascript suivant le guide haversine