jQuery를 사용하여 google API를 사용하여 지오 코딩을 사용하고 있습니다. 다음은 내가 시도한 코드입니다.Google API, jQuery를 사용하여 지오 코딩에서 4 개의 우편 번호를 추출한 것
jQuery(document).ready(function() {
var geocoder = new google.maps.Geocoder();
jQuery('AddressPicker1').autocomplete({
source: function (request, response) {
geocoder.geocode({ address: request.term}, function (results, status) {
if (status === google.maps.GeocoderStatus.OK) {
response(jQuery.map(results, function(item) {
var streetNumber = "";
var streetName = "";
var cityName = "";
var zip = "";
var country = "";
var countyName = "";
var state = "";
for (var component =0; component < item.address_components.length; component++) {
if (item.address_components[component] != undefined && item.address_components[component] != null) {
if (jQuery.inArray("street_number", item.address_components[component].types) > -1){
streetNumber = item.address_components[component].long_name;
}
if (jQuery.inArray("route", item.address_components[component].types) > -1){
streetName = item.address_components[component].long_name;
}
if (jQuery.inArray("locality", item.address_components[component].types) > -1){
cityName = item.address_components[component].long_name;
}
if (jQuery.inArray("postal_code", item.address_components[component].types) > -1){
zip = item.address_components[component].long_name;
}
if (jQuery.inArray("country", item.address_components[component].types) > -1){
country = item.address_components[component].long_name;
}
if (jQuery.inArray("administrative_area_level_2", item.address_components[component].types) > -1){
countyName = item.address_components[component].long_name;
}
if (jQuery.inArray("administrative_area_level_1", item.address_components[component].types) > -1){
state = item.address_components[component].short_name;
}
}
}
return {
label : item.formatted_address,
value : item.formatted_address,
latitude : item.geometry.location.lat(),
longitude : item.geometry.location.lng(),
streetNo : streetNumber,
streetName : streetName,
city : cityName.toUpperCase() ,
zip : zip,
country : country,
county : countyName.toUpperCase(),
state : state
}
}));
}
});
},
select: function (event, ui) {
jQuery('StreetNumber').val(ui.item.streetNo);
jQuery('StreetName').val(ui.item.streetName);
jQuery('City').val(ui.item.city);
jQuery('Zip').val(ui.item.zip);
jQuery('Country').val(ui.item.country);
jQuery('CountyName').val(ui.item.county);
jQuery('StateCode').val(ui.item.state);
jQuery('GeocodedLatitude').val(ui.item.latitude);
jQuery('GeocodedLongitude').val(ui.item.longitude);
}
검색 중에 문제가 발생했습니다. 나는 응답에서 추가 4 자리를 얻지 못했다. 예, 검색 텍스트 "60 MAIN ST, HUNTINGTON NY 11743-6961". 응답에서 'postal_code'속성을 통해 '11743'속성을 검색했습니다. 하지만 응답에서 '6961'을 검색 할 수 없습니다.
이 시나리오에서 전체 우편 번호를 가져 오는 옵션이 있습니까?
또는 다른 검색 방법과 4 개의 우편 번호로 검색해야합니다.
미리 감사드립니다.
예 매트. 네가 옳아. LiveAddress API에 대해 살펴 보겠습니다. 감사 – Ramasamy