Как вытащить данные из Google Адресов в листы Google

Я очень начинающий программист, поэтому, пожалуйста, будьте осторожны.

То, что я пытаюсь сделать, это получить местоположения formatted_phone_number и веб-сайт из карт / мест Google на основе координат, экспортированных из карт Google. Файл KML, экспортированный из карт Google, содержит только название местоположения, а также его широту и долготу.

Я имею в виду API Google Адресов - Сведения о месте. Вот Лист с координатами ресторанов, которые я хочу получить, номера телефонов и сайт. Этот список затем будет импортирован в Insightly в виде CSV-файла.

Я нашел этот скрипт 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;
}

Я полагаю, что сценарий должен быть примерно таким, чтобы получить информацию о месте каждого места.

Спасибо за любую помощь.

0 ответов

Я просто собрал что-то именно для этой цели - добавив номер телефона в список, где у меня было название компании и адрес.

Вам понадобится ключ API Google. Это бесплатно, просто занимает пару минут, чтобы настроить.

Надеюсь это поможет!

function phoneLookup(place, city, state) {
    var API_KEY = YOUR_API_KEY;
    var url = 'https://maps.googleapis.com/maps/api/place/textsearch/json?query=' +
      place + ' ' + city + ' ' + state + '&key=' + API_KEY;
    var response = UrlFetchApp.fetch(url);
    var json = response.getContentText();
    obj = JSON.parse(json);
    placeId = obj.results[0].place_id;
    var url = 'https://maps.googleapis.com/maps/api/place/details/json?' +
      'placeid='+ placeId + '&fields=name,formatted_phone_number,website&key=' + 
      API_KEY;
    var response = UrlFetchApp.fetch(url);
    var json = response.getContentText();
    obj2 = JSON.parse(json);
    phoneNo = obj2.result.formatted_phone_number;
    web = obj2.result.website;
    phoneAndWeb = phoneNo + ', ' + web
    return phoneAndWeb
}
Другие вопросы по тегам