2010-07-18 31 views
2

J'ai vu une photo dont j'aimerais localiser l'emplacement. Dans ce sont un garage BP et un supermarché Sainsburys. Google Maps contient toutes les informations et je suis sûr que beaucoup d'autres le font - ce que je voudrais, c'est être capable de faire rapidement une opération de type jointure sur les données. Il faudrait quand même que la proximité soit limitée, mais si le nom de la ville ou les 4 premiers chiffres du code postal (Royaume-Uni) seraient utilisés, ce serait parfait.Existe-t-il un moyen de croiser les emplacements de Sainsburys avec les garages BP pour obtenir des endroits où ils sont ensemble?

Des idées?

Ce serait génial si cela pouvait être généralisé, par exemple, je pourrais trouver tous les campings avec des centres de jeux intérieurs à proximité, ou quoi que ce soit?

+0

Eh bien, je suppose que l'obtention des données est la première étape. Une fois que vous avez des codes postaux, vous pouvez probablement utiliser l'API googlemaps pour obtenir les coordonnées LatLon, et vous devriez aussi avoir des méthodes pour la distance. Je ne sais pas si c'est la distance euclidienne ou manhattan que vous voulez ... 'ensemble' serait petit nombre dans les deux cas je suppose –

+0

Eh bien, je ne suis pas vraiment dérangé par la distance comme je l'ai dit 4 chiffres pour réduire la liste, 5 chiffres serait mieux. Dans le pire des cas, il suffirait de faire correspondre les noms de villes à rien de mieux. Ce ne sont pas les calculs lat-lon que je lutterais avec ce sont les appariements et les données initiales. GoogleMaps me donne une carte avec toutes les boutiques Sainsburys sur ... et maintenant? Une fois que j'ai obtenu le pire cas de lat-lon serait de faire une "jointure interne" et de calculer toutes les distances paires, puis trier par la distance. – pbhj

+0

Il semble que l'API Google Adresses puisse renvoyer les informations nécessaires, consultez la page https://developers.google.com/places/documentation/search. Donc, j'ai besoin de mien - ce qui donne lat, lon pour les lieux retournés - et ensuite vider l'information à un db et faire une recherche de correspondance. Malheureusement, je ne peux pas effectuer de recherche sur l'ensemble du pays, mais je dois spécifier un emplacement et un rayon <= 50 km. – pbhj

Répondre

0

Il existe un moyen de le faire, mais il est probable que mettre la main sur les données demandera plus de travail que de coder une solution. Une fois que vous avez les lat/longs pour les 'points d'intérêt', vous devez juste utiliser un théorème de pythagoras (rapide 'sale'), des distances de grand cercle (plus lent et moins sale), ou des distances de conduite (lent, plus réaliste - probablement exagéré) - ou encore un brut "ce qui est dans un carré de 1km pour cet endroit", très rapide et plus sale que le reste, je pense. :)

+0

J'espérais peut-être un service de connexion ou du code que je pourrais utiliser, disons, avec l'API GoogleMaps? – pbhj