【发布时间】:2018-02-27 18:42:01
【问题描述】:
假设我使用 ggmap 包生成了一张伦敦地图:
library(ggmap)
library(mapproj)
map <- get_map(location = "London", zoom = 11, maptype = "satellite")
p <- ggmap(map)+
theme(legend.position = "none")
print(p)
现在我想在这个图中添加一个带有一些中心坐标的圆(比如说:lon=-0.1,lat=52.23)和半径,例如以公里为单位。 我尝试使用类似问题(Draw a circle with ggplot2)的解决方案,您可以在函数中添加如下语句:
p <- p + annotate("path",
x = xc+r*cos(seq(0,2*pi,length.out=100)),
y = yc+r*sin(seq(0,2*pi,length.out=100)))
它有效,但由于比例不同,圆圈并不是真正的圆圈。可以正确绘制吗? 任何帮助将不胜感激!
编辑: 我找到了使用不同包的解决方案 (https://gis.stackexchange.com/questions/119736/ggmap-create-circle-symbol-where-radius-represents-distance-miles-or-km) 并且输出正确。不过,如果有人知道如何使用 ggmap 进行操作,请分享。
【问题讨论】:
-
您是否尝试将
+ coord_equal()添加到地图图的末尾? -
是的,但我认为那在距离方面不可靠
-
加上输出不同,例如从本网站获得的输出:freemaptools.com/radius-around-point.htm
-
我在创建圆圈的代码中看到的最大问题是,您的中心是纬度、长对,而不是给定英里或公里对中的距离对......如果你使用这篇文章@ 987654324@ 你可以生成一组 lat long 对,无论缩放如何,它们都应该生成一个给定大小的圆
标签: r google-maps ggplot2 data-analysis ggmap