从Geocoder API中的Apps脚本中的LatLong返回国家/地区

时间:2015-12-18 03:58:13

标签: google-maps google-apps-script google-geocoder

我是新手,我试图通过点击谷歌地图地理编码器API并进行相反的操作,让Google Apps脚本通过一系列纬度和经度坐标吐出与该国相关的国家/地区。地理编码。

到目前为止,我的功能很差,看起来像这样:

function reverseGeocode() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheetByName("Output");
 var range = sheet.getRange("A1");

 sheet.setActiveRange(range);

 // Gets the address of a point in London.
 var response = Maps.newGeocoder().reverseGeocode(51.5096, -0.15537);
 for (var i = 0; i < response.results.length; i++) {
   var result = response.results[i];
   range.setValue(result.formatted_address);
     }
 };

此刻它只是将格式较长的地址吐出到单元格A1。知道我需要替换result.formatted_address以使其吐出国家吗?

我认为address_components.types的结果中有一个数组,其中有一个名为country的部分......但是因为我是新手,所以我不知道如何引用它!

1 个答案:

答案 0 :(得分:1)

这是一个根据你提到的address_components来提取像“country”这样的地址组件的函数。

function extractAddressComponent(componentList, componentName) {
  for(var i=0; i<componentList.length; i++) {
  if(componentList[i].types.indexOf(componentName)!=-1) {
    return componentList[i].long_name;
  }
}

}

插入样本我使用:

var country  = extractAddressComponent( result.address_components, "country");