gpt4 book ai didi

r - 如何使用 R 在传单上绘制多边形?

转载 作者:行者123 更新时间:2023-12-04 12:51:46 25 4
gpt4 key购买 nike

我在尝试使用 R 在 Leaflet 顶部绘制 SpatialPolygonsDataFrame 时遇到了一个简单的问题。我的代码如下:

leaflet() %>%
addProviderTiles("CartoDB.Positron") %>%
setView(lng = -80.8858673, lat = 41.1450276, zoom = 5) %>%
addPolygons(data = SPDF, weight = 2, color = ~colorQuantile("red", SPDF$id)(id))

SPDF 是我的 SpatialPolygonsDataFrame。

当我执行这段代码时,它“没有绘制任何东西”,但只有 basemap 。我一直在四处寻找这个 question类似,但没有这个问题。

为了绘制多边形,我一直关注 this链接。

问题看似简单,却耗费了我不少时间。期待您的建议。感谢抽空。

NOTE: SPDF contains data exported from OSM, which means the coordinates (of POLYGONS) are without the decimal points as it is in the OSM data.

最佳答案

终于,我自己解决了这个问题。问题出在投影CRS(坐标引用系统)中。

默认的 proj4string 一开始没有正确设置,结果坐标不真实(没有小数点)。因此,首先我设置了 SpatialPolygonsDataFrame(SPDF) 的默认 proj4string:

SPDF@proj4string <-CRS("+init=epsg:3857")

设置后,我提供了如下投影:

SPDF <- spTransform(SPDF,  CRS("+ellps=WGS84 +proj=longlat +datum=WGS84 +no_defs"))

现在,当我执行以下传单代码行时,它可以完美运行。

leaflet() %>%
addProviderTiles("CartoDB.Positron") %>%
setView(lng = -80.8858673, lat = 41.1450276, zoom = 5) %>%
addPolygons(data = SPDF, weight = 2, color = ~colorQuantile("red", SPDF$osm_id)(osm_id))

为了解决这个问题,我关注了关于 this 的讨论。页面。

我希望这对面临同样问题的其他人有用。虽然我仍然不是投影和制图专家,但如果有人可以推荐一些必要的信息来理解这些问题,那就太好了。感谢大家的时间。

PS:确保你已经包含了必要的包,如 leaflet、sp、magrittr 等。

关于r - 如何使用 R 在传单上绘制多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34769845/

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