Javascript从google autocomplete或lat和lng获取城市名称

Javascript从google autocomplete或lat和lng获取城市名称,javascript,jquery,google-maps,autocomplete,geocoding,Javascript,Jquery,Google Maps,Autocomplete,Geocoding,我找到了一种从google autocomplete或lat和lng获取正确城市名称的方法。现在我使用以下代码: google.maps.event.addListener(autocomplete, 'place_changed', function() { var place = autocomplete.getPlace(); for (var i = 0; i < place.address_components.length; i++) { for (var j = 0; j

我找到了一种从google autocomplete或lat和lng获取正确城市名称的方法。现在我使用以下代码:

google.maps.event.addListener(autocomplete, 'place_changed', function() {
var place = autocomplete.getPlace();
for (var i = 0; i < place.address_components.length; i++) {
  for (var j = 0; j < place.address_components[i].types.length; j++) {                 
        if (place.address_components[i].types[j] == "locality") {$("#city").val(place.address_components[i].long_name);
         }

结果有两个地址组件…

以下是我提取城市名称的方法:(使用地理编码结果示例的工作示例)

let结果=[
{
“地址组件”:[
{
“long_name”:“vulica Lienina”,
“短名称”:“vulica Lienina”,
“类型”:[“路线”]
},
{
“龙_名称”:“明斯克”,
“短名称”:“明斯克”,
“类型”:[“地区”、“政治”]
},
{
“long_名称”:“白俄罗斯”,
“短名称”:“由”,
“类型”:[“国家”、“政治”]
}
],
“地址”:“白俄罗斯明斯克vulica Lienina”,
“几何学”:{
“界限”:{
“东北”:{
“lat”:53.9049197,
“液化天然气”:27.5804421
},
“西南”:{
“lat”:53.8868641,
“液化天然气”:27.553896
}
},
“地点”:{
“lat”:53.8958051,
“液化天然气”:27.5659861
},
“位置类型”:“几何中心”,
“视口”:{
“东北”:{
“lat”:53.9049197,
“液化天然气”:27.5804421
},
“西南”:{
“lat”:53.8868641,
“液化天然气”:27.553896
}
}
},
“地点id”:“ChIJL_x0NsTP20YRE6LICTM5v2I”,
“类型”:[“路线”]
},
{
“地址组件”:[
{
“龙_名称”:“列宁纳”,
“短名称”:“列宁纳”,
“类型”:[“地区”、“政治”]
},
{
“龙之名”:“斯鲁基·拉琼”,
“短名称”:“斯鲁基·拉琼”,
“类型”:[“行政区\级别\ 2”,“政治”]
},
{
“long_姓名”:“Minskaja voblasć”,
“短名称”:“Minskaja voblasć”,
“类型”:[“行政区”和“一级”,“政治”]
},
{
“long_名称”:“白俄罗斯”,
“短名称”:“由”,
“类型”:[“国家”、“政治”]
}
],
“地址”:“白俄罗斯列宁纳”,
“几何学”:{
“界限”:{
“东北”:{
“lat”:53.0604058,
“液化天然气”:27.2418881
},
“西南”:{
“lat”:53.0405422,
“液化天然气”:27.2215462
}
},
“地点”:{
“lat”:53.0546355,
“液化天然气”:27.229549
},
“位置类型”:“近似值”,
“视口”:{
“东北”:{
“lat”:53.0604058,
“液化天然气”:27.2418881
},
“西南”:{
“lat”:53.0405422,
“液化天然气”:27.2215462
}
}
},
“地点id”:“ChIJNTp2Gl6t2UYRI1cE6L4oVh8”,
“类型”:[“地区”、“政治”]
}
]
让matches=results[0]。地址\组件。筛选器(地址\组件=>
[“地点”,“口语区”]。一些(word=>~address\u component.types.indexOf(word)))
如果(!matches | |!matches.length){
console.log(“无法解析城市名称”)
}否则{
console.log(“找到的城市:”,匹配[0]。短名称)//打印:明斯克

}
以下是我提取城市名称的方法:(使用地理编码结果示例的工作示例)

let结果=[
{
“地址组件”:[
{
“long_name”:“vulica Lienina”,
“短名称”:“vulica Lienina”,
“类型”:[“路线”]
},
{
“龙_名称”:“明斯克”,
“短名称”:“明斯克”,
“类型”:[“地区”、“政治”]
},
{
“long_名称”:“白俄罗斯”,
“短名称”:“由”,
“类型”:[“国家”、“政治”]
}
],
“地址”:“白俄罗斯明斯克vulica Lienina”,
“几何学”:{
“界限”:{
“东北”:{
“lat”:53.9049197,
“液化天然气”:27.5804421
},
“西南”:{
“lat”:53.8868641,
“液化天然气”:27.553896
}
},
“地点”:{
“lat”:53.8958051,
“液化天然气”:27.5659861
},
“位置类型”:“几何中心”,
“视口”:{
“东北”:{
“lat”:53.9049197,
“液化天然气”:27.5804421
},
“西南”:{
“lat”:53.8868641,
“液化天然气”:27.553896
}
}
},
“地点id”:“ChIJL_x0NsTP20YRE6LICTM5v2I”,
“类型”:[“路线”]
},
{
“地址组件”:[
{
“龙_名称”:“列宁纳”,
“短名称”:“列宁纳”,
“类型”:[“地区”、“政治”]
},
{
“龙之名”:“斯鲁基·拉琼”,
“短名称”:“斯鲁基·拉琼”,
“类型”:[“行政区\级别\ 2”,“政治”]
},
{
“long_姓名”:“Minskaja voblasć”,
“短名称”:“Minskaja voblasć”,
“类型”:[“行政区”和“一级”,“政治”]
},
{
“long_名称”:“白俄罗斯”,
“短名称”:“由”,
“类型”:[“国家”、“政治”]
}
],
“地址”:“白俄罗斯列宁纳”,
“几何学”:{
“界限”:{
“东北”:{
“lat”:53.0604058,
“液化天然气”:27.2418881
},
“西南”:{
“lat”:53.0405422,
“液化天然气”:27.2215462
}
},
“地点”:{
“lat”:53.0546355,
“液化天然气”:27.229549
},
“位置类型”:“近似值”,
“视口”:{
“东北”:{
“lat”:53.0604
 {
  "results" : [
  {
     "address_components" : [
        {
           "long_name" : "vulica Lienina",
           "short_name" : "vulica Lienina",
           "types" : [ "route" ]
        },
        {
           "long_name" : "Minsk",
           "short_name" : "Minsk",
           "types" : [ "locality", "political" ]
        },
        {
           "long_name" : "Belarus",
           "short_name" : "BY",
           "types" : [ "country", "political" ]
        }
     ],
     "formatted_address" : "vulica Lienina, Minsk, Belarus",
     "geometry" : {
        "bounds" : {
           "northeast" : {
              "lat" : 53.9049197,
              "lng" : 27.5804421
           },
           "southwest" : {
              "lat" : 53.8868641,
              "lng" : 27.553896
           }
        },
        "location" : {
           "lat" : 53.8958051,
           "lng" : 27.5659861
        },
        "location_type" : "GEOMETRIC_CENTER",
        "viewport" : {
           "northeast" : {
              "lat" : 53.9049197,
              "lng" : 27.5804421
           },
           "southwest" : {
              "lat" : 53.8868641,
              "lng" : 27.553896
           }
        }
     },
     "place_id" : "ChIJL_x0NsTP20YRE6LICTM5v2I",
     "types" : [ "route" ]
  },
  {
     "address_components" : [
        {
           "long_name" : "Lenina",
           "short_name" : "Lenina",
           "types" : [ "locality", "political" ]
        },
        {
           "long_name" : "Slucki rajon",
           "short_name" : "Slucki rajon",
           "types" : [ "administrative_area_level_2", "political" ]
        },
        {
           "long_name" : "Minskaja voblasć",
           "short_name" : "Minskaja voblasć",
           "types" : [ "administrative_area_level_1", "political" ]
        },
        {
           "long_name" : "Belarus",
           "short_name" : "BY",
           "types" : [ "country", "political" ]
        }
     ],
     "formatted_address" : "Lenina, Belarus",
     "geometry" : {
        "bounds" : {
           "northeast" : {
              "lat" : 53.0604058,
              "lng" : 27.2418881
           },
           "southwest" : {
              "lat" : 53.0405422,
              "lng" : 27.2215462
           }
        },
        "location" : {
           "lat" : 53.0546355,
           "lng" : 27.229549
        },
        "location_type" : "APPROXIMATE",
        "viewport" : {
           "northeast" : {
              "lat" : 53.0604058,
              "lng" : 27.2418881
           },
           "southwest" : {
              "lat" : 53.0405422,
              "lng" : 27.2215462
           }
        }
     },
     "place_id" : "ChIJNTp2Gl6t2UYRI1cE6L4oVh8",
     "types" : [ "locality", "political" ]
  }
 ],
"status" : "OK"
}