Comment puis-je recherche basée sur la distance avec l'API Google Maps?
-
20-09-2019 - |
Question
- Donc, voici la question ... J'ai un champ où les utilisateurs peuvent saisir leur adresse (qui sera géocodées via l'API Google Maps).
- J'ai plusieurs adresses de widgets dans ma base de données (enregistrée en tant qu'adresse .. nouveau peut facilement être géocodées).
Ce que je dois est pour l'utilisateur de saisir leur adresse et pour obtenir une liste de mes widgets à venir sur la base distance de leur adresse. J'ai des milliers d'adresses pour mes widgets et les utilisateurs ont un nombre infini d'adresses évidemment.
Toutes les idées?
Merci.
La solution
SELECT latitude, longitude, SQRT( POW( 69.1 * ( latitude - 52.58 ) , 2 ) +
POW( 69.1 * ( - 1.12 - longitude ) * COS( latitude / 57.3 ) , 2 ) ) AS distance
FROM location ORDER BY distance
Cliquez ici Ils fournissent plusieurs façons de calculer la distance - choisir ce qui fonctionne le mieux pour vous
.Autres conseils
Si vous stockez les éléments dans une base de données MySQL, puis est ici la base de ce que vous avez besoin
Vous ne pouvez vraiment pas utiliser Google pour calculer votre filtrage géographique à distance. Pour ce faire, vous devez envoyer vos données, faites-les stocker, et interroger pour vous. Ils peuvent offrir ce service, maintenant ou dans l'avenir, mais je n'ai pas entendu parler.
Pour de plus juridique, plus capable, plus cher:
A / As à points ou lieux d'intérêt sont entrés par les clients de votre site, recueillir les géo coordiniates. Ensuite, utilisez votre propre moteur de recherche et par distance d'un point. Peut constituer une violation de l'accord avec Google, mais ils mentionnent des résultats de mise en cache « » pour prendre la charge de leurs serveurs. (La raison est mon avis personnel.)
B / utiliser Google pour faire géocodage en vrac, peut-être un à la fois, à un maximum de 5000 par jour et par votre adresse IP du dernier site que j'ai vu. Même pas sûr si ce n'est pas une violation de l'accord d'utilisation.
C / Acheter un contrat avec un service de géocodage et de stocker ce qu'ils géocodage pour vous.
D / Achat d'une bibliothèque de géocodage et de faire votre propre géocodage.
Ce billet de blog, "Calculer Distance en utilisant l'API Google Maps ", peut être d'une certaine aide.