【发布时间】:2019-12-12 01:18:03
【问题描述】:
我在我的 MapKit 地图上绘制折线时遇到问题,我应该尝试在用户要去的地方画一条线,问题是当我移动用户的位置时它只会在其中绘制一个点新位置但不跟踪完整行
我已经尝试用起点和起点画线,但它对我不起作用,假设如果用户走路他的位置会更新,他应该去画线
这是我的方法 didUpdateLocations:
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
if let location = locations.last{
self.currentLocation = location
mapKit.centerCoordinate = location.coordinate
//Validamos si el usuario quiere recordar su ruta
if SettingsViewController.recordRutaOn{
points.append(location)
print("Estamos registrando la ruta del usuario")
}
//Prueba para pintar la ruta
print((locations.last?.coordinate.latitude)!,(locations.last?.coordinate.longitude)!)
var rutaPoly = CLLocationCoordinate2D(latitude: (locations.last?.coordinate.latitude)!, longitude: (locations.last?.coordinate.longitude)!)
let polyline = MKPolyline(coordinates: &rutaPoly, count: locations.count)
mapKit.add(polyline)
if self.currentLocation == nil{
self.currentAnnotation = MKPointAnnotation()
self.currentAnnotation?.coordinate = location.coordinate
self.mapKit.addAnnotation(self.currentAnnotation!)
}
}
}
这是我的 renderFor 方法:
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if overlay is MKPolyline{
let polyline = overlay
let polyLineRender = MKPolylineRenderer(overlay: polyline)
polyLineRender.strokeColor = UIColor.blue
polyLineRender.lineWidth = 2.0
return polyLineRender
}
return MKPolylineRenderer()
}
我不明白我做错了什么,只画了一个点
【问题讨论】:
-
斯威夫特 3? Xcode 8?真的吗?
-
如果您不知道,如果您打算将此应用程序发送到 Apple App Store,您必须使用 Xcode 10.1 或更高版本。 Xcode 8 太过时了。是时候升级了。
-
@rmaddy 是的,我知道,我知道我应该使用新版本但这只是一个练习和我目前可以使用的 xcode