har*_*esh 2 polyline mapbox swift mapbox-marker
我尝试下面的代码,但它绘制直线,我想用虚线
@IBOutlet var navigationView: MGLMapView!
var polyline: MGLPolyline!
override func viewDidLoad() {
super.viewDidLoad()
var mapCoordinates: [CLLocationCoordinate2D] = []
let newCoord1 = CLLocationCoordinate2D(latitude: 8.5241, longitude: 76.9366)
let newCoord2 = CLLocationCoordinate2D(latitude:11.8745, longitude: 75.3704)
mapCoordinates.append(newCoord1)
mapCoordinates.append(newCoord2)
polyline = MGLPolyline(coordinates: mapCoordinates, count: UInt(mapCoordinates.count))
navigationView.add(polyline)
}
Run Code Online (Sandbox Code Playgroud)
小智 5
一种选择是使用MGLLineStyleLayer具有lineDashPattern属性的。
此示例显示了如何添加虚线,但是对于您的用例,它看起来更像:
func mapView(_ mapView: MGLMapView, didFinishLoading style: MGLStyle) {
var mapCoordinates: [CLLocationCoordinate2D] = []
let newCoord1 = CLLocationCoordinate2D(latitude: 8.5241, longitude: 76.9366)
let newCoord2 = CLLocationCoordinate2D(latitude:11.8745, longitude: 75.3704)
mapCoordinates.append(newCoord1)
mapCoordinates.append(newCoord2)
polyline = MGLPolyline(coordinates: mapCoordinates, count: UInt(mapCoordinates.count))
source = MGLShapeSource(identifier: "line", shape: polyline, options: nil)
style.addSource(source)
let layer = MGLLineStyleLayer(identifier: "line-layer", source: source)
layer.lineDashPattern = NSExpression(forConstantValue: [2, 1.5])
style.addLayer(layer)
}
Run Code Online (Sandbox Code Playgroud)
然后根据需要更新该shape属性source。
| 归档时间: |
|
| 查看次数: |
748 次 |
| 最近记录: |