gpt4 book ai didi

javascript - 在谷歌地图反向地理编码中获取明确的城市名称

转载 作者:数据小太阳 更新时间:2023-10-29 06:06:23 24 4
gpt4 key购买 nike

使用 Google Maps Geocoding API,我能够获取特定坐标的格式化地址。为了获得确切的城市名称,我正在执行以下操作:

$.ajax({
url: 'http://maps.googleapis.com/maps/api/geocode/json?latlng='+lat+','+long+'&sensor=false',
success: function(data){
var formatted = data.results;
var address_array = formatted[6].formatted_address.split(',');
var city = address_array[0];
}
});

其中 latlong 是使用浏览器坐标导出的。我的问题如下:

从坐标 19.210072.1800,我得到的城市是 孟买,但是从大约 3 公里外的一组类似坐标,我得到城市为 孟买郊区。如何在不更改代码的成功函数的情况下获取 Mumbai?在我看来,结果数组并不总是坚持相同的格式,这在我显示城市名称时造成了问题。

最佳答案

所以我今天想弄清楚这个问题,如果它对任何人有帮助,我就会找到这个解决方案。 Google map 现在内置了地理编码器,因此您只需在加载 API 后创建一个地理编码器对象。

您可以轻松地将它包装在一个函数中,然后只返回一个包含城市、州和邮政编码的对象。该站点有助于让我了解不同“类型”的含义:Reverse Geocoding

var geocoder = new google.maps.Geocoder,
latitude = 28.54, //sub in your latitude
longitude = -81.39, //sub in your longitude
postal_code,
city,
state;
geocoder.geocode({'location': {lat:latitude, lng:longitude}}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
results.forEach(function(element){
element.address_components.forEach(function(element2){
element2.types.forEach(function(element3){
switch(element3){
case 'postal_code':
postal_code = element2.long_name;
break;
case 'administrative_area_level_1':
state = element2.long_name;
break;
case 'locality':
city = element2.long_name;
break;
}
})
});
});
}
});

关于javascript - 在谷歌地图反向地理编码中获取明确的城市名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27524422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com