我计划使用Leaflet,Shiny和Shinydashboard创建一个带有医院OHS事件标记的交互式地图,沿着以下令人敬畏的template for interactive map and histogram
我的问题是我没有坐标参考系统,因为这不是地理对象(没有lat和long)。它也是光栅形式。
如何将以下布局规划制作成CRS(坐标参照系),可以像地图一样对待。
也就是说,我希望能够平移,缩放,添加标记等。
似乎有一种方法可以使用Java来实现这一点但是我希望在R中这样做,因为我不熟悉Java。见Coordinates to space map
答案 0 :(得分:1)
你可以这样做:
library(raster)
b <- brick("8aSe9.png")
这为您提供了一个四层地理参考RasterBrick对象(RGB + alpha),您可以使用
查看plotRGB(b)
当然地理参考与任何其他空间物体无关,但似乎这对你来说无关紧要。
如果你想要一个单层对象(一个RasterLayer
),你可以选择三个层中的任何一个(它们都是相同的)
r <- b[[1]]
或直接来自文件:
r <- raster("8aSe9.png")
然后
image(r, col=gray(seq(0,1,.1)))
# or plot(r, col=gray(seq(0,1,.1)), legend=F)
答案 1 :(得分:1)
这是使用 mapview :
的解决方案library(raster)
library(png)
library(mapview)
web_img <- "http://i.stack.imgur.com/8aSe9.png"
png <- readPNG(readBin(web_img, "raw", 1e6))
rst_blue <- raster(png[, , 1])
rst_green <- raster(png[, , 2])
rst_red <- raster(png[, , 3])
img <- brick(rst_red, rst_green, rst_blue)
m <- viewRGB(img)
m@map %>% addMarkers(lng = 0.5, lat = 0.5)
注意,坐标的原点位于图像的左下角(0,0),在这种情况下,右下角为(0,1),右上角为(0.859,1)角落以保持宽高比正确。在这个局部坐标参考系统中添加标记应该很容易。