2010-02-08 3 views
1

사용자 입력으로 '도시', '주'(미국 만 해당) 및 거리 (반경)를 사용하는 응용 프로그램을 구축 중이며 해당 반경의 모든 도시가 출력됩니다 . 무료 또는 유료 웹 서비스가 있습니까? 당신의 도움 에 대한도시 웹 서비스 또는 PHP 코드 근처

감사는 감사 Kaveri는

+1

나는 한시적으로 완전한 주소를 지오 코딩하기 위해 하나만 사용했지만, 거의 모든지도 API (Google, Yahoo 등)가이 작업을 수행 할 수 있다고 생각합니다. 아마 api에 대한 단일 호출은 아니지만, 일단 초기 점에 대한 지리 데이터가 있으면 기능을 구현해야합니다. – prodigitalson

+0

의견을 보내 주셔서 감사합니다. Google API를 선택했지만 약간 혼란 스럽습니다. 내 작업을 위해 http://ipinfodb.com/에서 geodata를 다운로드했습니다. 그것은 필요한 모든 정보를 가지고 있습니다. 두 도시 (우편 번호) 사이의 거리를 가져 오는 API를 찾았지만 불행히도 필요한 결과를 얻으려면 모든 도시를 확인해야합니다. 쉬운 방법으로 가져 오는 방법이 있어야합니다. http를 보면 : //www.geobytes.com/IpLocator.htm 그들은 당신의 IP에 더 가까운 모든 도시를 제공하고있는 오른쪽 상자에 있습니다. 나는 동일을 찾고있는 무엇인가이다. 그러나 나의 경우에는 사용자가 도시 정보와 거리를 입력한다. -Kaveri – user268982

답변

1

나는 개인적으로 그런 반경을 정의하는 위도와 LNG 사용합니다. Google Geocode를 조정하기 위해 도시를 감추는 데 도움이 필요하면 제 코드를 살펴보십시오. 아니면 그냥 회신하면 우리가 살펴 보겠습니다.

/** 
* @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; 
}