2010-02-08 4 views
1

Je construis une application qui prend 'City', 'State' (pour les Etats-Unis seulement) et la distance (rayon) comme entrées de l'utilisateur et la sortie sera toutes les villes dans ce rayon . Y a-t-il un service web gratuit ou payant disponible pour cela?Villes Near To Web Service Web ou un code PHP

Merci pour votre aide Cordialement Kaveri

+1

Je nai celui utilisé dans un certain temps et même alors que pour le géocodage des adresses complètes, mais je pense que presque toutes les api de cartes (Google, Yahoo, etc ..) va vous permettre de le faire. Ce n'est probablement pas un seul appel à l'API mais la fonctionnalité devrait être là pour l'implémenter de votre côté une fois que vous avez les géodonnées pour le point initial. – prodigitalson

+0

Merci pour votre commentaire. J'ai vérifié API google, mais confus un peu. J'ai téléchargé des géodonnées de http://ipinfodb.com/ pour mon travail. Il a toutes les informations nécessaires. J'ai trouvé l'API pour obtenir la distance entre deux villes (codes postaux) mais malheureusement je dois vérifier contre toutes les villes pour obtenir le résultat exigé. Je suis sûr qu'il devrait y avoir un moyen de l'obtenir facilement. Si vous regardez http : //www.geobytes.com/IpLocator.htm sur la boîte de droite, ils fournissent toutes les villes plus proches de votre adresse IP. Je suis un peu à la recherche de la même chose, mais dans mon cas, l'utilisateur saisit City info et la distance. -Kaveri – user268982

Répondre

1

J'utilise personnellement lat et lng pour définir un tel rayon. Jetez un oeil à mon code si vous avez besoin d'aide pour convertir une ville en coordonnées Google Géocode peut être vraiment utile. ou juste répondre et nous allons jeter un coup d'oeil.

/** 
* @author Stefano Groenland 
* @return string 
* 
* Uses the geobyte API for nearby cities in a radius arround the lat & long coords of a given location. 
*/ 
public function getLocationsInRadius(){ 
    $radius = Input::get('radius'); 
    $lat = Input::get('lat'); 
    $lng = Input::get('lng'); 

    $radius = $radius * 0.62137; //km to miles 
    $url = 'http://gd.geobytes.com/GetNearbyCities?radius='.$radius.'&Latitude='.$lat.'&Longitude='.$lng.'&limit=999'; 

    $response_json = file_get_contents($url); 

    $response = json_decode($response_json, true); 

    return $response; 
}