swift 百度地图拖动标注
时间: 2023-06-23 10:00:05 浏览: 133
android 百度地图标注
要在 Swift 中拖动标注,可以按照以下步骤进行:
1. 创建一个地图视图
```swift
let mapView = BMKMapView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height))
view.addSubview(mapView)
```
2. 创建一个标注
```swift
let annotation = BMKPointAnnotation()
annotation.coordinate = CLLocationCoordinate2DMake(39.915, 116.404)
annotation.title = "这里是北京"
mapView.addAnnotation(annotation)
```
3. 实现地图代理方法
```swift
func mapView(_ mapView: BMKMapView!, viewFor annotation: BMKAnnotation!) -> BMKAnnotationView! {
let identifier = "annotation"
var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: identifier)
if annotationView == nil {
annotationView = BMKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier)
annotationView?.canShowCallout = true
annotationView?.isDraggable = true // 可以拖动
}
return annotationView
}
```
4. 实现标注拖动代理方法
```swift
func mapView(_ mapView: BMKMapView!, annotationView view: BMKAnnotationView!, didChange newState: BMKAnnotationViewDragState, fromOldState oldState: BMKAnnotationViewDragState) {
if newState == .dragging {
print("开始拖动")
} else if newState == .ending {
print("结束拖动")
let annotation = view.annotation as! BMKPointAnnotation
print("拖动后的坐标:(\(annotation.coordinate.latitude), \(annotation.coordinate.longitude))")
}
}
```
这样就可以在地图上创建一个可以拖动的标注了。
阅读全文