Kar*_*her 6 javascript database zipcode
是否可以在javascript中在客户端上实现一个函数,以便像这样使用它:
var county = get_county(zip_code);
Run Code Online (Sandbox Code Playgroud)
我的意思是可以通过脚本在线完成吗?或者我必须挖一些数据库?或者我必须买它?
任何帮助表示赞赏!
PS
在Dyrandz Famador的帮助下,我为GAS做了这个功能:
function get_county(zip) {
var county, response, result, adresses, i, j, n, type;
response = Maps.newGeocoder().geocode(zip);
for (i = 0; i < response.results.length; i++) {
result = response.results[i];
adresses = result.address_components;
n = adresses.length;
for (j=0;j<n;j++) {
type = adresses[j].types[0];
if (type == 'locality') county = (adresses[j].long_name);
if (type == 'administrative_area_level_2') {county =(adresses[j].long_name);}
}
}
return (county);
}
Run Code Online (Sandbox Code Playgroud)
您可以使用Google Maps API从邮政编码中获取地点信息
Google提供了许多API,其中包括Maps API.在此示例中,我们将显示使用邮政编码点击Google所需的所有代码,以便以城市,州和国家/地区的形式获取位置.
首先要做的是引用Google的Map API:
<script language="javascript" src="https://maps.google.com/maps/api/js?sensor=false"></script>
Run Code Online (Sandbox Code Playgroud)
接下来是用于输入邮政编码的小表格:
<form>
zip: <input type="text" name="zip" value="46032"> <a href="#" onclick="getLocation()">Get Address</a>
</form>
Run Code Online (Sandbox Code Playgroud)
你可以看到我有一个激活一个函数的链接“getLocation()”- 下面你会发现该函数和相关的代码:
...
<script language="javascript">
function getLocation(){
getAddressInfoByZip(document.forms[0].zip.value);
}
function response(obj){
console.log(obj);
}
function getAddressInfoByZip(zip){
if(zip.length >= 5 && typeof google != 'undefined'){
var addr = {};
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': zip }, function(results, status){
if (status == google.maps.GeocoderStatus.OK){
if (results.length >= 1) {
for (var ii = 0; ii < results[0].address_components.length; ii++){
var street_number = route = street = city = state = zipcode = country = formatted_address = '';
var types = results[0].address_components[ii].types.join(",");
if (types == "street_number"){
addr.street_number = results[0].address_components[ii].long_name;
}
if (types == "route" || types == "point_of_interest,establishment"){
addr.route = results[0].address_components[ii].long_name;
}
if (types == "sublocality,political" || types == "locality,political" || types == "neighborhood,political" || types == "administrative_area_level_3,political"){
addr.city = (city == '' || types == "locality,political") ? results[0].address_components[ii].long_name : city;
}
if (types == "administrative_area_level_1,political"){
addr.state = results[0].address_components[ii].short_name;
}
if (types == "postal_code" || types == "postal_code_prefix,postal_code"){
addr.zipcode = results[0].address_components[ii].long_name;
}
if (types == "country,political"){
addr.country = results[0].address_components[ii].long_name;
}
}
addr.success = true;
for (name in addr){
console.log('### google maps api ### ' + name + ': ' + addr[name] );
}
response(addr);
} else {
response({success:false});
}
} else {
response({success:false});
}
});
} else {
response({success:false});
}
}
</script>
...
Run Code Online (Sandbox Code Playgroud)
多数民众赞成 - 在Chrome中打开控制台并在输入不同的邮政编码时注意输出.
从这里得到它:http: //rickluna.com/wp/2012/09/using-the-google-maps-api-to-get-locations-from-zip-codes/