[英]Mapbox iOS SDK polyline, swift 3
帶有swift 3.0的Mapbox SDK不會繪制折線。
(Swift 2.3工作正常)
Swift 3版本:
for coord in coordsArray! {
let lat = coord.array?.first?.double
let lon = coord.array?.last?.double
let point = CLLocationCoordinate2D(latitude: lat!, longitude: lon!)
coordsArrayValues.append(point)
}
completionHandler(coordsArrayValues)
在完成處理程序方法中:
var rectangle: MGLPolyline?
var coordsArrayValues = coordinatesArray
// draw a route
rectangle = MGLPolyline(coordinates: &coordsArrayValues, count: UInt(coordsArrayValues.count))
if let rectangle = rectangle {
complection(rectangle)
}
這是調試器關於MGLPolyline和coordsArrayValues的內容:(lldb)po coordsArrayValues▿8個元素▿0:CLLocationCoordinate2D-緯度:37.609333999999997-經度:55.750295000000001▿1:CLLocationCoordinate2D-緯度:37.609400999999998-經度:552750D000000 37.609442999999999-經度:55.750495000000001▿3:CLLocationCoordinate2D-緯度:37.609763000000001-經度:55.751038999999999▿4:CLLocationCoordinate2D-緯度:37.609966999999997-經度:55.751409000000002▿5:CLLocationCoordinate2D-緯度:37.6101239610。經度:55.751823999999999▿7:CLLocationCoordinate2D-緯度:37.610219999999998-經度:55.751918000000003,
。
后來我稱之為:
self?.routeService.getRoute(coordinatesArray: coordinates, complection: { [weak self] polyline in
self?.output.showRoute(polyline: polyline)
})
在ViewController中,它只是作為注釋添加:
func showRoute(polyline: MGLPolyline) {
DispatchQueue.main.async { [weak self] in
self?.mapView.addAnnotation(polyline)
}
}
已通過pod更新(從Mapbox 3.3.5到3.3.6版本)修復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.