为什么会这样?
maps::map.where('world', -73.97058, 40.76813)
## "USA"
maps::map.where('world', -73.59143, 40.74178)
## "USA:New York:Long Island"
为什么第二次调用返回的不仅仅是USA
?
答案 0 :(得分:0)
世界地图中的每个多边形都有不同的名称。 '美国'是美国主要的大陆多边形。所有其他多边形(岛屿等)也是美国的一部分,具有如此长的名称。所有其他国家也使用相同的命名方案。所以你也将拥有法国'和法国:科西嘉岛'等
绘制地图时,maps::map('world','usa')
实际上会绘制以这些字母开头的所有多边形。但添加选项exact=TRUE
将仅绘制主多边形。
map.where()
返回该点所在的多边形的全名。如果您只想要国家/地区名称,则可以使用类似
strsplit( map.where(...), ':')[[1]][1]