Mapbox:如何更改MGLFillStyleLayer“fill-outline-width”

时间:2017-03-20 11:03:33

标签: ios swift mapbox

我是否可以选择将MGLFillStyleLayer“填充轮廓宽度”更改为自定义宽度,

 let fillStyleLayer = MGLFillStyleLayer(identifier: identifier, source: source)

 fillStyleLayer.sourceLayerIdentifier = identifier

 fillStyleLayer.fillColor = MGLStyleConstantValue<UIColor>(rawValue: .red)
 fillStyleLayer.fillOpacity = MGLStyleConstantValue<NSNumber>(rawValue: 0.2)
 fillStyleLayer.fillOutlineColor = MGLStyleConstantValue<UIColor>(rawValue: .red)
 fillStyleLayer.predicate = predicate
 fillStyleLayer.isVisible = true
 self.mapView.style?.addLayer(fillStyleLayer)

像这样,

 fillStyleLayer.fillOutlineWidth = MGLStyleConstantValue<NSNumber>(rawValue: 5) 

感谢。

1 个答案:

答案 0 :(得分:0)

目前无法调整MGLFillStyleLayer的轮廓/笔划宽度。此处讨论了样式规范的相关更改:https://github.com/mapbox/mapbox-gl-js/issues/4087

根据您的使用情况,一种解决方法是从同一来源创建MGLLineStyleLayer并为该行上的lineWidth设置样式。然后,您可以在填充图层上方添加线条图层。如果您有多个单独的MGLFillStyleLayer个对象,这可能不太理想,因为这会影响性能。

let fillStyleLayer = MGLFillStyleLayer(identifier: identifier, source: 
...
self.mapView.style?.addLayer(fillStyleLayer)

let fillLineLayer = MGLLineStyleLayer(identifier: "line-layer", source: source)
fillLineLayer.lineWidth = MGLStyleConstantValue<NSNumber>(rawValue: 5)
mapView.style?.addLayer(fillLineLayer)