使用R闪亮更改传单地图的LineString样式

时间:2015-01-22 15:51:51

标签: r leaflet shiny geojson

我在R中有一个传单地图,里面有很多LineStrings。线条默认为蓝色,具有一定的厚度。我想改变线条颜色,厚度取决于重量变量。我通过读取geojson文件来创建地图。添加"样式"直接指向geojson中每个线串特征的部分都不起作用。这是我的地图R代码:

colchoice = "red"
ptl_str = paste("#! function(feature, latlng){
    return L.circleMarker(latlng, {
    radius: feature.properties.radius || 5,
    fillColor: feature.properties.fillColor || '", colchoice, "',    
    color: '#000',
    weight: 1,
    fillOpacity: 0.8
    })
    } !#", sep="")

m <- Leaflet$new()
m$setView(c(38.892682, -77.031681), zoom = 12)
m$geoJson(geojson, 
      onEachFeature = "#! function(feature, layer){
        layer.bindPopup(feature.properties.popup)
      } !#",        
      pointToLayer = ptl_str)
m

这成功地将地图上的点格式化为点。但现在我想以不同的方式格式化线条。我感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

Upfront:我对R一无所知,也无法测试我在说什么,但我知道我在Javascript中使用Leaflet的方法并且可以告诉你我将如何在JS中完成它,所以你可以将它转换为R:

var geoJsonLayer = L.geoJson(data, {
    onEachFeature: function (feature, layer) {
        if (layer instanceof L.Polyline) {
            layer.setStyle({
                'color': feature.properties.color
            });
        }
    }
});

这是关于Plunker的一个工作示例:http://plnkr.co/edit/g4juen?p=preview