Получить координаты широты и долготы для городов / стран, которые с тех пор изменили названия?

Скажем, у меня есть вектор городов и стран, который может включать или не включать названия мест, названия которых с тех пор изменились:

locations <- c("Paris, France", "Sarajevo, Yugoslavia", "Rome, Italy", "Leningrad, Soviet Union", "St Petersburg, Russia")

Проблема в том, что я не могу использовать что-то вроде ggmap::geocode, поскольку оно не работает для местоположений, имена которых изменились:

ggmap::geocode(locations, source = "dsk")

       lon      lat
1  2.34880 48.85341 #Works for Paris
2       NA       NA #Didn't work for Sarajevo
3 12.48390 41.89474 #Works for Rome
4 98.00000 60.00000 #Didn't work for the old name of St Petersburg  seems to just get the center of Russia
5 30.26417 59.89444 #Worked for St Petersburg

Могу ли я использовать альтернативные функции? Если мне нужно «обновить» названия городов и стран, есть ли простой способ пройти через это? У меня есть сотни мест, в которых я искал координаты долготы и широты.


person Phil    schedule 30.07.2017    source источник


Ответы (1)


Возможно, это не то, что вы имели в виду, но если вы используете тот же самый код только с названиями городов (а не стран), по крайней мере, два упомянутых вами случая (Сараево и Ленинград), похоже, будут работать нормально. Вы можете попробовать запустить функцию с измененным вектором locations, включая только названия городов, и посмотреть, будут ли по-прежнему возникать ошибки. Что-то вроде этого:

(cities <- gsub(',.*', '', locations))

## [1] "Paris"         "Sarajevo"      "Rome"          "Leningrad"     "St Petersburg"

cbind(ggmap::geocode(cities, source = 'dsk'), cities)

##        lon      lat        cities
## 1  2.34880 48.85341         Paris
## 2 18.35644 43.84864      Sarajevo
## 3 12.48390 41.89474          Rome
## 4 30.26417 59.89444     Leningrad
## 5 30.26417 59.89444 St Petersburg
person Oriol Mirosa    schedule 31.07.2017
comment
Интересный. Один из редких случаев, когда меньше информации лучше. Спасибо! - person Phil; 31.07.2017
comment
Кажется, больше не работает. Error in ggmap::geocode(., source = "dsk") : datasciencetoolkit.org terminated its map service, sorry! - person jay.sf; 15.03.2019