如何将Google地方信息数据提取到Google表格中

时间:2017-04-28 03:56:35

标签: google-maps google-sheets google-sheets-api insightly

我是一个非常新手的程序员,所以请保持温和。

我尝试做的是根据Google地图导出的坐标从Google地图/地点中提取formatted_phone_number和网站的位置。从Google地图导出的KML文件仅包含位置名称及其纬度和经度。

我指的是Google Places API - Place Details。 这是Sheet,其中包含我想要获取电话号码和网站的餐馆坐标。然后将此列表作为csv文件导入Insightly。

我发现这个google工作表脚本可以根据地理编码获取地址,该地址有效:



var geocoder = Maps.newGeocoder(),
    cache = CacheService.getScriptCache();

function reverseGeocodeLatLngTest() {
  Logger.log(reverseGeocodeLatLng(51.70055389, 5.318333149));
}

function reverseGeocodeLatLng(latitude, longitude) {
//  var latitude = 51.69048,
//      longitude = 5.29362,
  var cacheKey = latitude + "+" + longitude,
    cached = cache.get(cacheKey);
  if(cached !== null) {
    return JSON.parse(cached);
  }
  Utilities.sleep(2000);

  var result = geocoder.reverseGeocode(latitude, longitude),
  //First response is the most specific
      response = result.results[0];
  if(response === undefined) {
    return "??";
  }
  function g(fieldName) {
    for (var i = 0; i < response.address_components.length; i++) {
      if(response.address_components[i].types.indexOf(fieldName) != -1) {
        return response.address_components[i];
      }
    }
    return {"long_name": "??"};
  }
  rValue = [[g("route").long_name, g("street_number").long_name, g("postal_code").long_name, g("locality").long_name, g('country').long_name, g('website').long_name]];
  cache.put(cacheKey, JSON.stringify(rValue));
  return rValue;
}
&#13;
&#13;
&#13;

我认为脚本应该与此接近,以获取每个位置的位置详细信息。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我只是为此目的整理了一些东西-将电话号码添加到我有公司名称和地址的列表中。

您将需要一个Google API密钥。它是免费的,只需几分钟即可完成设置。

希望这会有所帮助!

src