2017-05-09 145 views
1

我正在製作谷歌地圖的演示我在谷歌地圖上添加了標記,谷歌地圖上約20-30標記,所以我想要做的時候用戶輸入的地方名稱在該地方的文本字段將顯示,它是標記和所有以前的標記,我添加在谷歌地圖,應該也顯示。所以當用戶在UITextField中輸入位置時,我添加了標記..我成功地完成了所有任務..但是當用戶搜索另一個地方時,先前的搜索標記仍然保持那個位置..所以我不知道如何在用戶搜索時刪除前一個標記另一個地方..如何刪除地圖標記在谷歌地圖swift 3

//這裏是我的代碼

//IBOutlet 
@IBOutlet var ViewMap: GMSMapView! 

func GetLocationFromAddress(address: String) { 
    let geocoder = CLGeocoder() 

    geocoder.geocodeAddressString(address, completionHandler: {(placemarks, error) -> Void in 
     if((error) != nil){ 
      print("Error", error ?? "") 
     } 
     if let placemark = placemarks?.first { 
      let coordinates:CLLocationCoordinate2D = placemark.location!.coordinate 

      print("lat", coordinates.latitude) 
      print("long", coordinates.longitude) 

      let position = CLLocationCoordinate2D(latitude: coordinates.latitude, longitude: coordinates.longitude) 
      let marker = GMSMarker(position: position) 
      marker.title = "Name Of Location" 
      marker.map = self.ViewMap 
      let camera = GMSCameraPosition.camera(withLatitude: coordinates.latitude, 
                longitude: coordinates.longitude, 
                zoom: self.zoomLevel) 
      self.ViewMap.camera = camera 
      self.ViewMap.animate(to: camera) 


     } 
    }) 
} 

//function call 
@IBAction func btnSearchAction(_ sender: Any) { 
    GetLocationFromAddress(address: self.txtSearch.text!) 
} 

您的幫助使我的一天good..thanks提前!!!!

回答

2

我覺得你應該保存最後一個搜索標記變量樣型searchedMarker GMSMarker

和下一次當u任何位置重新進行搜索,你會得到行動btnSearchAction方法

@IBAction FUNC btnSearchAction(_發件人:任何) {

searchedMarker.map = nil 
GetLocationFromAddress(address: self.txtSearch.text!) 

}

並更新searchedMarker在創建GMSMarker的GetLocationFromAddress方法中。

+0

謝謝你的工作 – Foolish