gpt4 book ai didi

r - ggmap 改变 map 的大小

转载 作者:行者123 更新时间:2023-12-04 04:10:57 26 4
gpt4 key购买 nike

我想创建一个不是完全正方形而是矩形的 map ,并且是我指定的大小。

require(ggmap)
tenmile <- get_map(location = c(lon = -122.486328, lat = 48.862813),
color = "color",
source = "google",
maptype = "roadmap",
zoom = 12)
tenmile.map <- ggmap(tenmile,
extent = "device",
ylab = "Latitude",
xlab = "Longitude")+ggtitle("GEOMean for Data from Oct 2013-Nov 2014")
tenmile.map + geom_point(data=pp, aes(x=lon, y=lat, size=geomean), color="red", alpha=0.5) +
geom_text(data=pp, aes(x=lon, y=lat, label = site), size=3, vjust = 1.25, hjust = -0.1)

我会发布我得到的东西和想要的东西的图片,但我没有足够的声誉点来发布图片。 =-(

最佳答案

Sandy Muspratt 的回答生成了一张矩形 map ,但它被拉伸(stretch)了。要获得未拉伸(stretch)的 map ,必须将比率调整为 map 所在位置的纬线和经线间距之间的比率。那是:

ratio = 1/cos(latitude)



如果纬度以度为单位,则变为:

ratio = 1/cos(pi*latitude/180)



我在这里举了一个使用巴塞罗那 map 的例子(巴塞罗那是一个很好的例子来检查拉伸(stretch),因为我们的大多数街道形成一个方形网格,变形变得很容易注意到)。
library(ggmap) library(mapproj) mapbcn <- get_map(location =
'Barcelona, Catalonia', zoom = 13)

# square map (default) ggmap(mapbcn)

# map cropped by latitude
ggmap(mapbcn) +
coord_fixed(ylim=c(41.36,41.41),
ratio=1/cos(pi*41.39/180))

# map cropped by longitude
ggmap(mapbcn) +
coord_fixed(xlim=c(2.14, 2.18),
ratio=1/cos(pi*41.39/180))

必须注意的是,如果 map 的面积小到不考虑地球的曲率——也就是说,假设子午线是平行的,那么这种方式坐标将继续为整个 map 工作(例如向 map 添加点)在 map 所示的区域内。在跨越数百公里的 map 中可能不准确,而在大陆比例尺的 map 中则非常错误。

关于r - ggmap 改变 map 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27915118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com