우편 번호로 도시 및 주 조회 Google Geocode API
기본적으로 우편 번호 내에서 도시 및 주 목록을 검색하고 싶습니다. Google의 Geocode API가 그렇게 할 수 있습니까? 문서를 개최했지만 정보가 압도적이라는 것을 알았습니다.
어떤 도움을 주시면 감사하겠습니다. 대신 작업을 수행하는 다른 방법이 있으면 알려주십시오.
감사합니다
편집 : http://maps.google.com/maps/geo?output=xml&q=14606을 통해시와 주를 검색 할 수 있었지만 이에 대한 제한이 있습니까?
사용 지오 코딩 API를
예를 들어 zip 77379를 구매 한 다음과 같은 요청을 사용합니다.
http://maps.googleapis.com/maps/api/geocode/json?address=77379&sensor=true
웹 기반 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
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));
}
몇 달 전, 내 프로젝트 중 하나에 대해 동일한 요구 사항이있었습니다. 나는 그것을 조금 검색하고 다음 해결책을 찾았습니다. 이것이 유일한 해결책은 아니지만 더 간단한 해결책 중 하나를 찾았습니다 .
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>
도움이 되었기를 바랍니다...
참고 URL : https://stackoverflow.com/questions/4749706/lookup-city-and-state-by-zip-google-geocode-api
'ProgramingTip' 카테고리의 다른 글
테스트 파일을 JUnit으로 가져 오는 쉬운 방법 (0) | 2020.10.18 |
---|---|
Spring MVC에서 @ResponseBody를 사용할 때 MIME 유형 헤더를 사용하는 방법? (0) | 2020.10.18 |
자바 펼쳐없이 HTML 양식에서 배열 게시 (0) | 2020.10.18 |
Eclipse 텍스트 커서가 변경되고 편집기가 다르게 작동합니다. (0) | 2020.10.18 |
Spring AMQP + RabbitMQ 3.3.5 ACCESS_REFUSED- 인증 PLAIN을 사용하여 로그인이 거부되었습니다. (0) | 2020.10.18 |