2017-12-31 38 views
1

方向パスを再描画して、現在の位置にマーカーを移動したいとします。
私は現在didUpdateLocationsの機能の中でこれをやっていますが、同時に複数のマーカーとパスを描画するので、うんざりします。ここでdidUpdateLocationsの方向パスを再描画

は私のコードです:

let location = locations.last 

let destination = CLLocation(latitude: order!.user_coord![0], longitude: order!.user_coord![1]) 

let origin = CLLocation(latitude: (location?.coordinate.latitude)!, longitude: (location?.coordinate.longitude)!) 

self.drawPath(startLocation: origin, endLocation: destination) 

self.createMarker(titleMarker: order!.store_name!, iconMarker: UIImage(named: "icons8-user_filled")!, latitude: order!.user_coord![0], longitude: order!.user_coord![1]) 

self.createMarker(titleMarker: "User", iconMarker: UIImage(named: "icons8-mountain_biking")!, latitude: (location?.coordinate.latitude)!, longitude: (location?.coordinate.longitude)!) 

let camera = GMSCameraPosition.camera(withLatitude: (location?.coordinate.latitude)!, longitude: (location?.coordinate.longitude)!, zoom: 17.0) 
self.map.animate(to: camera) 
locationManager.stopUpdatingLocation() 

答えて

0

はdidUpdate

if(!drawFinished) 
{ 
    drawFinished = true 

    let location = locations.last 

    let destination = CLLocation(latitude: order!.user_coord![0], longitude: order!.user_coord![1]) 

    let origin = CLLocation(latitude: (location?.coordinate.latitude)!, longitude: (location?.coordinate.longitude)!) 

    self.drawPath(startLocation: origin, endLocation: destination) 

    self.createMarker(titleMarker: order!.store_name!, iconMarker: UIImage(named: "icons8-user_filled")!, latitude: order!.user_coord![0], longitude: order!.user_coord![1]) 

    self.createMarker(titleMarker: "User", iconMarker: UIImage(named: "icons8-mountain_biking")!, latitude: (location?.coordinate.latitude)!, longitude: (location?.coordinate.longitude)!) 

    let camera = GMSCameraPosition.camera(withLatitude: (location?.coordinate.latitude)!, longitude: (location?.coordinate.longitude)!, zoom: 17.0) 

    self.map.animate(to: camera) 

    locationManager.stopUpdatingLocation() 

    } 
で変数

var drawFinished:Bool! 
のviewDidLoad

drawFinished = false 

を宣言します

あなたはこれは私がちょうどそれを試してみました更新からマーカーと方向パスを停止します...そう、彼らはよ

drawFinished = false 

と、このような明確なパスと注釈

func clearMapOverlays() 
    { 
    for dl in self.myMapView.overlays 
    { 

     if(dl is GMSPolyline) 
     { 

      self.myMapView.remove(dl) 

     } 


    } 

    self.myMapView.setNeedsDisplay() 

    for name in self.myMapView.annotations 
    {       

      self.myMapView.removeAnnotation(anno) 

    } 


} 
+0

を設定更新します –

+0

seeate ........ –

+0

mapView.clear()を使用してアノテーションやマップをクリアすることは簡単ですが、ほぼ毎秒クリアされます –

関連する問題