Служба вызывается слишком много раз за один день: геокод ARRAY FORMULA - PullRequest
0 голосов
/ 21 апреля 2020

Я надеюсь, что кто-нибудь может мне помочь. У меня есть эта проблема в Google листах. У меня есть столбец Address (I), столбец Coordinates (J) и столбец Backup Coordinates (K).

Я использую скрипт для создания пользовательской формулы для вычисления координат по адресу с помощью Google услуги локализации. В моем столбце Координаты (J) у меня есть формула массива, подобная этой

= ARRAYFORMULA (ЕСЛИ (LEN (K2: K)> 0, K2: K, GEOCODE_GOOGLE (I2: I)))

Итак, если K имеет значение, я копирую это значение в свой столбец, в противном случае я использую пользовательскую формулу GEOCODE. Моя проблема в том, что я получаю эту ошибку:

Сервис Вызывается слишком много раз за один день: геокод. (строка 5)

Я знаю, что существуют ограничения на использование этого сервиса, но на моем листе только 20 или 30 новых строк в день, поэтому я думаю, возможно, проблема в моей формуле массива? Сейчас 200 строк, так что, может быть, формула выполняется 200 раз каждый раз, когда вставляется новая строка?

Пожалуйста, помогите, спасибо

1 Ответ

0 голосов
/ 23 апреля 2020

Если кому-то нужно решение, я нашел его. Я использовал эту пользовательскую формулу внутри формулы массива, поэтому в каждой новой строке на моем листе формула вычисляла координаты для всех строк, поэтому мне пришлось искать способ проверки, вычислена ли уже строка. Я добавил текст в свой адресный столбец. Например, если адрес «123 Mapple Street», теперь он говорит «123 Mapple Street..DoNotLocate ..», если он уже найден, поэтому мой сценарий не будет его геолоцировать.

Вот мой сценарий с проверка:

function GEOCODE_GOOGLE(address) {
  if (address.map) {
     return address.map(GEOCODE_GOOGLE)
  } else {
    var n = address.search("…DoNotLocate…");
    if (n == -1) {
     var r = Maps.newGeocoder().geocode(address)
     for (var i = 0; i < r.results.length; i++) {
      var res = r.results[i]
      return res.geometry.location.lat + ", " + res.geometry.location.lng
     }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...