우편 번호로 도시 및 주 검색 Google Geocode API [닫힘]


82

기본적으로 우편 번호 내에서 도시 및 주 목록을 검색하고 싶습니다. Google의 Geocode API가 그렇게 할 수 있습니까? 문서를 살펴 보았지만 정보가 압도적이라는 것을 알았습니다.

어떤 도움을 주시면 감사하겠습니다. 이러한 작업을 수행하는 다른 방법이 있으면 알려주십시오.

감사

편집 : http://maps.google.com/maps/geo?output=xml&q=14606을 통해시와 주를 검색 할 수 있었지만 이에 대한 제한이 있습니까?


HERE Maps Geocoding REST API를 사용할 수 있습니다 . 프로젝트를 만들고 REST 자격 증명을 가져옵니다. 1 시간 동안 기다렸다가 ( 처음 에는 InvalidCredentials 오류가 표시됨) 예를 들어 전화를 겁니다 geocoder.cit.api.here.com/6.2/geocode.json?PostalCode=2400&country=Denmark&app_id={APP_ID}&app_code={APP_CODE}&gen=9( 주소 부분 제공 가능 )
aexl

답변:


109

사용 지오 코딩 API를

예를 들어 zip 77379를 조회하려면 다음과 같은 요청을 사용합니다.

https://maps.googleapis.com/maps/api/geocode/json?address=77379&sensor=true&key=YOUR_GOOGLE_PLATFORM_API_KEY


10
sensor = false를 의미 합니까?
Rup

19
"참고 : Geocoding API는 Google지도와 함께 만 사용할 수 있습니다. 결과를지도에 표시하지 않고 지오 코딩하는 것은 금지됩니다."
Andy Ray

2
@Rup 센서는 더 이상 필요하지 않습니다.
Dejell

2
"도시 우편 번호 API를"인터넷 검색을 할 때 구글의 첫 번째 히트이며, 이것은하지 그 :( 분명히
DuckPuncher

6
@KevinLeary result_type은 우편 번호로 제한되지 않습니다. Google의 지오 코더는 우편 번호를 주소 번호로 착각합니다 (zip 89100 시도). 대신에 사용하는 형식이됩니다 maps.googleapis.com/maps/api/geocode/... 여기에 설명 된대로 : developers.google.com/maps/documentation/geocoding/...
마이크 Kormendy에게

53

웹 기반 API로이를 수행하는 몇 가지 방법을 찾았습니다. 우편 번호가 그들의 것이기 때문에 미국 우편 서비스 가 가장 정확할 것이라고 생각 하지만 Ziptastic 은 훨씬 쉬워 보입니다.

US Postal Service HTTP / XML API 사용

XML 기반 웹 API를 문서화하는 미국 우편 서비스 웹 사이트 의이 페이지, 특히이 PDF 문서 의 섹션 4.0 (22 페이지)에 따르면 5 자리 우편 번호가 포함 된 XML 요청을 보낼 수있는 URL이 있습니다. 해당시 /도를 포함하는 XML 문서로 응답합니다.

문서에 따르면 다음과 같이 보낼 수 있습니다.

http://SERVERNAME/ShippingAPITest.dll?API=CityStateLookup&XML=<CityStateLookupRequest%20USERID="xxxxxxx"><ZipCode ID= "0"><Zip5>90210</Zip5></ZipCode></CityStateLookupRequest>

그리고 다음과 같은 결과를 받게됩니다.

<?xml version="1.0"?> 
<CityStateLookupResponse> 
    <ZipCode ID="0"> 
        <Zip5>90210</Zip5> 
        <City>BEVERLY HILLS</City> 
        <State>CA</State> 
    </ZipCode> 
</CityStateLookupResponse>

USPS API를 사용하기 전에 등록 할 것을 요구하지만 내가 말할 수있는 한 액세스에 대한 비용은 없습니다. 그건 그렇고, 그들의 API에는 몇 가지 다른 기능이 있습니다. 주소 표준화 및 우편 번호 조회는 물론 전체 추적, 배송, 라벨 등을 수행 할 수 있습니다.

Ziptastic HTTP / JSON API 사용 ( 더 이상 지원되지 않음 )

업데이트 : 2017 년 8 월 13 일부로 Ziptastic은 이제 유료 API이며 여기 에서 찾을 수 있습니다.

이것은 꽤 새로운 서비스이지만 문서에 따르면 http://ziptasticapi.com에 GET 요청을 보내는 것만으로도 다음과 같이 보입니다 .

GET http://ziptasticapi.com/48867

그리고 다음 행을 따라 JSON 객체를 반환합니다.

{"country": "US", "state": "MI", "city": "OWOSSO"}

실제로 작동합니다. 다음과 같이 명령 줄에서이를 테스트 할 수 있습니다.

curl http://ziptasticapi.com/48867 

8
Ziptastic 추천에 대한 큰 사랑. <3!
ceejayoz

5
US Postal Service는 메일 링과 관련된 활동에 API를 사용하지 않는 한 귀하의 액세스 요청을 거부 할 것입니다. 적어도 그것은 내 경험이었습니다.
eaj

1
@eaj 사실입니다. "주소 유효성 검사 API는 USPS 배송 또는 우편 서비스와 함께 만 사용할 수 있습니다."
dragan.stepanovic

2
Ziptastic은 더 이상 지원되지 않습니다. 더 이상 사용하면 안됩니다.
vaindil

2
@RationalRabbit : Ziptastic이 이제 유료 API라는 업데이트를 제출했습니다.
Richard Jones

14
function getCityState($zip, $blnUSA = true) {
    $url = "http://maps.googleapis.com/maps/api/geocode/json?address=" . $zip . "&sensor=true";

    $address_info = file_get_contents($url);
    $json = json_decode($address_info);
    $city = "";
    $state = "";
    $country = "";
    if (count($json->results) > 0) {
        //break up the components
        $arrComponents = $json->results[0]->address_components;

        foreach($arrComponents as $index=>$component) {
            $type = $component->types[0];

            if ($city == "" && ($type == "sublocality_level_1" || $type == "locality") ) {
                $city = trim($component->short_name);
            }
            if ($state == "" && $type=="administrative_area_level_1") {
                $state = trim($component->short_name);
            }
            if ($country == "" && $type=="country") {
                $country = trim($component->short_name);

                if ($blnUSA && $country!="US") {
                    $city = "";
                    $state = "";
                    break;
                }
            }
            if ($city != "" && $state != "" && $country != "") {
                //we're done
                break;
            }
        }
    }
    $arrReturn = array("city"=>$city, "state"=>$state, "country"=>$country);

    die(json_encode($arrReturn));
}

코드의 일부는 나에게 약간의 비트, 덕분에 많이 :) 도움이
Kamlesh

6

몇 달 전, 내 프로젝트 중 하나에 대해 동일한 요구 사항이있었습니다. 나는 그것을 조금 검색하고 다음 해결책을 찾았습니다. 이것이 유일한 해결책은 아니지만 더 간단한 해결책 중 하나를 찾았습니다 .

http://www.webservicex.net/uszip.asmx 에서 웹 서비스를 사용 하십시오 .
구체적으로 GetInfoByZIP()방법.

모든 우편 번호 ( ex: 40220) 로 쿼리 할 수 있으며 다음과 같은 응답을 받게됩니다.

<?xml version="1.0" encoding="UTF-8"?>
 <NewDataSet>
  <Table>
   <CITY>Louisville</CITY> 
   <STATE>KY</STATE> 
   <ZIP>40220</ZIP> 
   <AREA_CODE>502</AREA_CODE> 
   <TIME_ZONE>E</TIME_ZONE> 
  </Table> 
</NewDataSet>

도움이 되었기를 바랍니다...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.