【发布时间】:2023-04-30 21:14:01
【问题描述】:
我有一个非常小的SpatialLinesDataFrame,我需要在R 中使用Leaflet 进行绘图。
很遗憾,由于某种原因,我无法这样做。 This 是数据(12KB)。
我尝试做:
library(leaflet)
load("mylines.Rdata")
leaflet() %>% addTiles() %>% addPolylines(data=mylines)
但是生成的地图没有意义,我只能在屏幕顶部看到一条线,这不是应该绘制的。 这是结果:
相反,如果我这样做:
library(mapview)
mapview(mylines)
【问题讨论】:
-
你能张贴一张“屏幕顶部的线条”的截图吗?缩小地图时会发生什么?
-
@IvanSanchez 完成,我添加了两个屏幕截图来说明问题。感谢您的观看!
-
是的,当点的纬度大于 ~85.5 度时,这看起来像是一个人工制品(因为地图投影并非微不足道)。我无法阅读
.rdata文件,所以我希望R 知识更丰富的人可以好好看看你的文件并检查你的数据的纬度是否有意义。 -
@IvanSanchez 该地图的坐标实际上与传单投影相同,这意味着 CRS 为:
+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs。所以它不是经纬度。这可能是罪魁祸首,但为什么mapview有效? -
leaflet 期望坐标位于
longlat中。使用mylines_ll <- sp::spTransform(mylines, CRS("+init=epsg:4326"))和mylines_ll应该可以正确渲染。 mapview 即时为您执行此操作。