Геокодирование местоположений данных с Google в R - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь использовать очень хорошо написанные инструкции из этого блога: https://www.jessesadler.com/post/geocoding-with-r/ для геокодирования данных о местоположении в R, включая конкретные города и города на Гавайях. У меня проблемы с извлечением информации из Google. При запуске mutate_geocode мои данные запускаются, но выходные данные не собираются. Я обошел это пока с ручным вводом lat и lon только для одного местоположения моего набора данных, пытаясь решить проблему. Теперь, когда я использую 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])
}

Post Manual Ввод точек lon и lat Я сталкиваюсь с этой ошибкой:

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

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

1 Ответ

0 голосов
/ 24 января 2019

В качестве альтернативы вы можете использовать однострочник для быстрого геокодирования через 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. центроиды ( lon , lat ), которые важны для Карт Google и
  2. граничные блоки ( lon_min , lat_min , lon_max , lat_max ), которые отображают такие службы, как OSM или тычинка нужна.
...