向图像添加坐标以用作 R 中 Leaflet、Shiny 和 Shinydashboard 包中的地图
Add coordinates to image for use as map in Leaflet, Shiny and Shinydashboard packages in R
我计划使用 Leaflet、Shiny 和 Shinydashboard 沿着以下令人敬畏的路线创建一个带有医院 OHS 事件标记的交互式地图 template for interactive map and histogram
我的问题是我没有坐标参考系统,因为这不是地理对象(没有纬度和经度)。它也是光栅形式。
如何将下面的平面图制作成可以像地图一样处理的 CRS(坐标参考系统)。
也就是说,我希望能够平移、缩放、添加标记等
似乎有一种使用 Java 来执行此操作的方法,但是我希望在 R 中执行此操作,因为我不熟悉 Java。参见 Coordinates to space map
你可以这样做:
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)
这是一个使用 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)右上角以保持纵横比正确。在这个本地坐标参考系统中添加标记应该很容易。
我计划使用 Leaflet、Shiny 和 Shinydashboard 沿着以下令人敬畏的路线创建一个带有医院 OHS 事件标记的交互式地图 template for interactive map and histogram
我的问题是我没有坐标参考系统,因为这不是地理对象(没有纬度和经度)。它也是光栅形式。
如何将下面的平面图制作成可以像地图一样处理的 CRS(坐标参考系统)。
也就是说,我希望能够平移、缩放、添加标记等
似乎有一种使用 Java 来执行此操作的方法,但是我希望在 R 中执行此操作,因为我不熟悉 Java。参见 Coordinates to space map
你可以这样做:
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)
这是一个使用 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)右上角以保持纵横比正确。在这个本地坐标参考系统中添加标记应该很容易。