Вы хотите убедиться, что в ваших адресах нет недопустимых или зарезервированных символов, поскольку любые функции геокодирования будут использовать ваш текст для создания URL-адресов для запроса API геокодирования. google_geocode
само по себе не дает очень полезного сообщения об ошибке, но, посмотрев URL-адрес, который вы разместили выше, сообщение об ошибке показывает, что необходимые параметры не были включены.
В этом случае #
имеет специальное значение в URL, поэтому вы получите сообщение об ошибке. К вашему сведению, мой ключ Google API сохранен как переменная среды GOOGLE_KEY
:
library(googleway)
Address <- c("175 College St #450, Toronto, ON M5T 1P7", "250 College St, Toronto, ON M5T 1R8")
set_key(Sys.getenv("GOOGLE_KEY"))
geocode_results <- lapply(Address, google_geocode)
sapply(geocode_results, function(x) x[["status"]])
#> [1] "OVER_QUERY_LIMIT" "OK"
Первый адрес имеет ошибку; он также имеет символ #
. Приведены списки зарезервированных символов, включая этот не зависящий от языка вопрос SO . Используя шаблон регулярных выражений, я удаляю все символы #
, (
или )
, которые могут быть в адресах, а затем повторяю попытку геокодирования.
clean_addresses <- gsub(pattern = "[#\\(\\)]", replacement = "", Address)
geocode_cleaned <- lapply(clean_addresses, google_geocode)
sapply(geocode_cleaned, function(x) x[["status"]])
#> [1] "OK" "OK"