Геокодирование местоположений данных с помощью Google в R

Я пытаюсь использовать хорошо написанные инструкции из этого блога: https://www.jessesadler.com/post/geocoding-with-r/ для геокодирования данных о местоположении в R, включая определенные районы и города на Гавайях. У меня проблемы с получением информации из Google. При запуске mutate_geocode мои данные запускаются, но выходные данные не собираются. Я пока обошелся с этим, введя вручную широту и долготу только для одного места в моем наборе данных, пытаясь устранить неполадки. Теперь, когда я использую get_googlemap, я получаю сообщение об ошибке «Ошибка в файле загрузки».

Я пробовал использовать mutate_geocode, а также запускать цикл с использованием геокода. Я либо не получаю вывода, либо получаю ошибку OVER_QUERY_LIMIT (которая кажется очень классической). После проверки моего лимита запросов я еще далек от предела.

Способ 1:

BH <- rename(location, place = Location)
BH_df <- as.data.frame(BH)
location_df <- mutate_geocode(HB, Location)

Способ 2:

origAddress <- read.csv("HSMBH.csv", stringsAsFactors = FALSE)
geocoded <- data.frame(stringsAsFactors = FALSE)
for(i in 1:nrow(origAddress))
{
  result <- geocode(HB$Location[i], output = "latlona", source = "google")
  HB$lon[i] <- as.character(result[1])
  HB$lat[i] <- as.character(result[2])
  HB$geoAddress[i] <- as.character(result[3])
}

Публикуйте ручной ввод точек долготы и широты. Я столкнулся с этой ошибкой:

map <- get_googlemap(center = c(-158.114, 21.59), zoom = 4)

Я надеюсь собрать точки широты и долготы для своих местоположений, а затем смогу использовать get_googlemap для создания карты, с помощью которой я могу построить точки плотности вхождений (у меня уже есть код для точек).


person Cole Hendrickson    schedule 16.01.2019    source источник
comment
Я считаю, что API теперь требует, чтобы вы зарегистрировались для получения ключа API и, возможно, дали номер кредитной карты, хотя они предоставляют вам кредит в размере 200 долларов каждый месяц. Однако прошло несколько месяцев, так что, возможно, все снова изменилось.   -  person alistaire    schedule 16.01.2019
comment
@alistaire, вот почему я подумал, а вы знаете, в какой момент с вас начнут взимать плату, после определенного количества запросов?   -  person Cole Hendrickson    schedule 16.01.2019
comment
Когда я смотрел последний раз, он дает вам кредит в размере 200 долларов в месяц и взимает плату за все, поэтому, если вы совершите звонки на сумму более 200 долларов, вам действительно придется платить. Вы можете установить ограничения, чтобы это не повторилось, если хотите, а вызовы API на 200 долларов - это довольно много, в зависимости от того, что вы пытаетесь сделать.   -  person alistaire    schedule 17.01.2019
comment
@ColeHendrickson Плата за вас взимается в основном за количество запросов. ценообразование довольно прозрачно. Я написал пошаговое руководство ранее, возможно, это поможет его запустить и запустить.   -  person Roman    schedule 24.01.2019


Ответы (1)


В качестве альтернативы вы можете использовать однострочник для быстрого геокодирования с помощью tmaptools::geocode_OSM():

Данные

library(tmaptools)
addresses <- data.frame(address = c("New York", "Berlin", "Huangpu Qu", 
                                    "Vienna", "St. Petersburg"), 
                                    stringsAsFactors = FALSE)

Код

result <- lapply(addresses[, 1], geocode_OSM)

> result 
$address
           query      lat       lon  lat_min  lat_max   lon_min   lon_max
1       New York 40.73086 -73.98716 40.47740 40.91618 -74.25909 -73.70018
2         Berlin 52.51704  13.38886 52.35704 52.67704  13.22886  13.54886
3     Huangpu Qu 31.21823 121.48030 31.19020 31.24653 121.45220 121.50596
4         Vienna 48.20835  16.37250 48.04835 48.36835  16.21250  16.53250
5 St. Petersburg 27.77038 -82.66951 27.64364 27.91390 -82.76902 -82.54062

Таким образом, у вас есть оба

  1. центроиды (долгота, широта), которые важны для Карт Google и
  2. граничные рамки (lon_min, lat_min, lon_max, lat_max), которые такие картографические сервисы, как OSM или Тычинки нужны.
person Roman    schedule 24.01.2019