【问题标题】:Retrieving latitude/longitude coordinates for cities/countries that have since changed names?检索已更改名称的城市/国家/地区的纬度/经度坐标?
【发布时间】:2017-07-30 23:14:08
【问题描述】:

假设我有一个城市和国家的向量,其中可能包含也可能不包含已更改名称的地名:

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

我可以使用其他功能吗?如果我必须“更新”城市和国家的名称,是否有一种简单的方法可以解决这个问题?我有数百个地点要收集经度和纬度坐标。

【问题讨论】:

    标签: r geocode


    【解决方案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
    

    【讨论】:

    • 有趣。信息越少越好的罕见情况之一。谢谢!
    • 似乎不再起作用了。 Error in ggmap::geocode(., source = "dsk") : datasciencetoolkit.org terminated its map service, sorry!
    猜你喜欢
    • 2012-12-04
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 2011-09-03
    相关资源
    最近更新 更多