Trouver des villes dans un rayon de 10 km autour de code postal. L'API Google maps
J'ai récemment commencé à regarder à l'API Google Maps pour essayer quelque chose de nouveau dans mes sites web. Je suis actuellement en utilisant ce code:
<?php
$postcode = $_REQUEST['postcode'];
$url = 'http://maps.googleapis.com/maps/api/geocode/xml?address='.$postcode.'&sensor=false';
$parsedXML = simplexml_load_file($url);
if($parsedXML->status != "OK") {
echo "There has been a problem: " . $parsedXML->status;
}
$myAddress = array();
foreach($parsedXML->result->address_component as $component) {
if(is_array($component->type)) $type = (string)$component->type[0];
else $type = (string)$component->type;
$myAddress[$type] = (string)$component->long_name;
}
header('Content-Type: application/json');
echo json_encode($myAddress);
?>
qui utilise simplement un code postal qui-je définir et de recherche dans la base de données de Google, puis retourne à la ville, comté, etc.
Si possible, j'aimerais ne montrent pas seulement la ville la plus proche mais aussi tous accessibles en 5 à 10 milles de rayon. Quelqu'un pourrait-il me dire comment je pourrais faire s'il vous plaît?
Merci pour toute aide
il ya un couple de prometteur Q&: stackoverflow.com/search?q=radius+search+google+maps+php - qui de personnes avez-vous vérifié et pourquoi ne pas qu'ils vous aider à résoudre votre problème?
Je vais jeter un oeil par le biais de ces, j'ai regardé l'a suggéré postes tout en tapant ma question, mais n'ai pas vu beaucoup de trucs utiles. Savez-vous où je pourrais mettre la main sur un royaume-UNI code postal de la base de données sans avoir à payer de Royal Mail idiot de l'argent pour cela? J'ai vu un article qui disait wikileaks publié, mais c'était en 2009, donc im devinant ses pas complètement à jour
aucune idée, désolé. un rapide google a ordnancesurvey.co.uk/opendatadownload/products.html, mais im pas sûr de savoir si ces derniers sont libres d'utiliser ou d'utile.
Je vais jeter un oeil par le biais de ces, j'ai regardé l'a suggéré postes tout en tapant ma question, mais n'ai pas vu beaucoup de trucs utiles. Savez-vous où je pourrais mettre la main sur un royaume-UNI code postal de la base de données sans avoir à payer de Royal Mail idiot de l'argent pour cela? J'ai vu un article qui disait wikileaks publié, mais c'était en 2009, donc im devinant ses pas complètement à jour
aucune idée, désolé. un rapide google a ordnancesurvey.co.uk/opendatadownload/products.html, mais im pas sûr de savoir si ces derniers sont libres d'utiliser ou d'utile.
OriginalL'auteur Daniel Hutton | 2011-11-15
Vous devez vous connecter pour publier un commentaire.
Mise à jour: je l'ai écrit plus détaillé article sur le blog à propos de ce sujet spécifique sur http://www.mullie.eu/geographic-searches/
--
Boucle par toutes les villes à l'aide de l'API Google Maps pour chercher leurs latitude & longitude. Enregistrer ces quelque part (base de données). - Méfiez-vous, Google ne sera pas accepter une énorme quantité d'appels, afin d'accélérateur à vos appels.
Ensuite, lors de l'extraction d'une ville, vous pouvez utiliser un code similaire au code ci-dessous pour saisir les villes à l'intérieur d'une certaine plage:
Notes sur le code ci-dessus:
Je vais essayer de l'illustrer:
Au-dessus du cercle (un peu) est le rayon dans lequel vous voulez trouver des endroits à l'intérieur, en fonction de l'emplacement X. C'est trop difficile à accomplir tout droit sorti de votre DB, donc ce que nous avons fait extraire de la base de données est à la place environnante. Comme vous pouvez le voir, il est possible que les lieux (comme Y) relèvent de ces max & min les limites, si elles ne sont pas effectivement dans le rayon demandé. Ceux-ci peuvent ensuite être filtrées par le biais de PHP.
De s'attaquer à cette dernière question, vous pourriez en boucle tous les résultats et calculer la distance exacte entre les deux la racine de votre emplacement, et de la proximité correspondances trouvées, afin de déterminer si elles sont en fait au sein de votre rayon. Pour cela, vous pouvez utiliser ce code:
Cela permettra de calculer la (quasi) distance exacte entre l'emplacement X et l'emplacement de Y, et ensuite, vous pourrez filtrer exactement ces villes qui étaient assez près pour passer le rude db-fetch, mais pas assez près pour être réellement à l'intérieur de vos limites.
génial réponse, merci beaucoup
OriginalL'auteur matthiasmullie