Mapbox:如何更改 MGLFillStyleLayer "fill-outline-width"

Mapbox : How to change MGLFillStyleLayer "fill-outline-width"

我能知道是否有任何选项可以将 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) 

谢谢。

目前无法调整 MGLFillStyleLayer 的 outline/stroke 宽度。此处讨论了样式规范的相关更改: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)