如何使用 R 在传单上绘制多边形?
How to plot polygons on leaflet using R?
我在尝试使用 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。
当我执行此代码时 "PLOTS NOTHING" 但只有底图。我一直在搜索,这个 很相似,但没有这个问题。
为了绘制我一直关注的多边形 this link.
问题看似简单,却耗费了我不少时间。期待您的建议。谢谢你的时间。
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.
终于,我自己解决了问题。问题出在 projections 和 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 在 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。
当我执行此代码时 "PLOTS NOTHING" 但只有底图。我一直在搜索,这个
为了绘制我一直关注的多边形 this link.
问题看似简单,却耗费了我不少时间。期待您的建议。谢谢你的时间。
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.
终于,我自己解决了问题。问题出在 projections 和 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 等