Я очень плохо знаком с R, и как консультант, работающий с логистической компанией, я заинтересован в получении примеров кодов TSP / VRP, чтобы посмотреть, как будет работать доказательство концепции.
Я скачал R 3.5.1 и некоторые библиотеки, необходимые для запуска примера кода для решения проблем TSP.Тем не менее, я застрял, так как он использует ggmap и ggplot2 для запуска адресов геокодирования, но, тем не менее, Google устарел в поддержке вызовов их геокодированияAPI без appKey.
исходный код геокодирования выглядит следующим образом:
#geocode_df <- function(address) {
# reply <- geocode(address, output = "all")$results[[1]]
# tibble(
# address = reply$formatted_address,
# lon = reply$geometry$location$lng,
# lat = reply$geometry$location$lat
# )
#}
Я попытался изменить для использования прямого getURL и синтаксического анализа JSON следующим образом:
#geocode_df <- function(address){
# address<- gsub(' ','%20',address)
# geo_data <- getURL(paste("https://maps.googleapis.com/maps/api/geocode/json?address=",address,"&key=appKEY", sep=""))
# json <- fromJSON(geo_data)
# address = json$results[[1]]$formatted_address
# lon = json$results[[1]]$geometry$location$lng
# lat = json$results[[1]]$geometry$location$lat
# reply <- data.frame(address, lat, lon)
# tibble(
# address = reply$address,
# lon = reply$lon,
# lat = reply$lat
# )
#}
, а также попытался использовать опцию библиотеки googleway следующим образом:
geocode_df <- function(address) {
reply <- google_geocode(address=address,key="[appKey]")$results[[1]]
tibble(
address = reply$formatted_address,
lon = reply$geometry$location$lng,
lat = reply$geometry$location$lat
)
}
однако оба моих альтернативных способа столкнулись со следующей ошибкой: Ошибка: Столбцы address
, lon
, lat
должны быть 1d атомными векторами или списками
Любой желающий может объяснить, что означает эта ошибка и как это сделать.Я решаю это?
Это, должно быть, вопрос новичка, но, пожалуйста, потерпите меня, поскольку я действительно новичок в R.
Ваша помощь очень ценится.