我想在谷歌地图中添加和删除标记(pin)。
我想通过长按来放置标记并将其删除。我想用它来选择我的目的地。我该如何做?
let position = CLLocationCoordinate2DMake(10, 10)
let marker = GMSMarker(position: position)
marker.map = mapView
我想在谷歌地图中添加和删除标记(pin)。
我想通过长按来放置标记并将其删除。我想用它来选择我的目的地。我该如何做?
let position = CLLocationCoordinate2DMake(10, 10)
let marker = GMSMarker(position: position)
marker.map = mapView
如果您正在寻找一个完整的使用Swift的代码片段:
GMSMapViewDelegate
@IBOutlet weak var googleMapView: GMSMapView!
viewDidLoad()
中提及 GMSMapView 委托,如下 googleMapView.delegate = self
didTapAt
委托函数:func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D){
print("You tapped at \(coordinate.latitude), \(coordinate.longitude)")
googleMapView.clear() // 在添加新位置之前清除标记
let marker = GMSMarker(position: coordinate)
marker.map = googleMapView
}
//MARK: GMSMapViewDelegate Implimentation.
func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) {
plotMarker(AtCoordinate: coordinate, onMapView: mapView)
}
//MARK: Plot Marker Helper
private func plotMarker(AtCoordinate coordinate : CLLocationCoordinate2D, onMapView vwMap : GMSMapView) {
let marker = GMSMarker(position: coordinate)
marker.map = vwMap
}
PS:别忘了在ViewController
中确认GMSMapViewDelegate
并在viewDidLoad()
中的某处分配googleMap.delegate = self
。
希望这可以帮到你!