Python 在R传单地图上叠加图像

Python 在R传单地图上叠加图像,python,r,leaflet,Python,R,Leaflet,我有一个.PNG图像,它基本上表示的是光栅,但不是光栅格式。这些都是提供给我的,否则我会自己生成光栅,避免这个问题 我希望将图像覆盖在R中的传单底图上。图像覆盖将仅为用户提供一个参考,以便在区域周围绘制边界框,并查询数据库中生成该区域光栅的原始数据 在Python的传单实现中,图像覆盖可以通过这种方式实现 center = [0,0] zoom = 2 m = Map(center=center, zoom=zoom) layer = ImageOverlay(url="filename.pn

我有一个.PNG图像,它基本上表示的是光栅,但不是光栅格式。这些都是提供给我的,否则我会自己生成光栅,避免这个问题

我希望将图像覆盖在R中的传单底图上。图像覆盖将仅为用户提供一个参考,以便在区域周围绘制边界框,并查询数据库中生成该区域光栅的原始数据

在Python的传单实现中,图像覆盖可以通过这种方式实现

center = [0,0]
zoom = 2

m = Map(center=center, zoom=zoom)
layer = ImageOverlay(url="filename.png", bounds=(( min_lat, min_lon), 
                                             (max_lat, max_lon)))
m.add_layer(layer)
return m

到目前为止,在R中似乎需要这样做,我需要一个光栅对象,然后使用
addRasterImage()
,它似乎可以将光栅转换为RGB图像,然后将其覆盖在传单地图上。我最初有一个图像,只是想将其添加为一个图层,而不是一个需要光栅格式的图层。谢谢。

如果您需要附加图像,并且以后不需要更改它(bbox或source),那么您应该能够使用htmlwidget访问native-slaple.js:

htmlwidget::onRender函数可用于添加自定义行为 使用本机Javascript创建传单地图。这是一个什么 高级用例,要求您了解Javascript。使用onRender 您可以使用定义的任何API自定义地图的行为 在传单.js文档中。(摘自单张r)

通过展示更广泛的本机功能,这为您提供了更大的灵活性。添加图像覆盖非常简单(),与python实现类似。r和js文档版本中采用的一个简单示例可能如下所示:

library(leaflet)

m <- leaflet() %>%
  addTiles() %>%  # Add default OpenStreetMap map tiles
  addMarkers(lng=-74.22655, lat=40.712216, popup="Bottom Right Corner") %>%
  htmlwidgets::onRender("
      function(el, x) {
        console.log(this);
        var myMap = this;
        var imageUrl = 'http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg';
        var imageBounds = [[40.712216, -74.22655], [40.773941, -74.12544]];

        L.imageOverlay(imageUrl, imageBounds).addTo(myMap);
      }
      ")
m  # Print the map
图书馆(传单)
m%
addTiles()%>%#添加默认的OpenStreetMap分幅
添加标记(lng=-74.22655,lat=40.712216,popup=“右下角”)%>%
htmlwidgets::onRender(“
函数(el,x){
console.log(this);
var myMap=this;
var imageUrl=http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg';
var imageBounds=[[40.712216,-74.22655],[40.773941,-74.12544];
L.imageOverlay(imageUrl,imageBounds).addTo(myMap);
}
")
打印地图