ios 高德地圖 拖動地圖時保持大頭針已經在地圖的中心

一、使用高德地圖3D sdk 只需要在MAMapViewDelegate下面這個代理方法中改變centerAnnotation的坐標即可。(該方法在2D sdk中沒有)

func mapViewRegionChanged(mapView:MAMapView!) {

centerAnnotation?.coordinate= mapView.centerCoordinate

}


二、在高德2D sdk中的實現方法:

1.創建一個UIImageView 添加到view的中心:

private lazy var centerImageView:UIImageView= {

let centerImageView =UIImageView.init(image:UIImage.init(named:"mg_redPin_lift"))

return centerImageView

}()


view.addSubview(centerImageView)

centerImageView.snp_makeConstraints{ (make)in

make.center.equalTo(self.view)

}


2.在MAMapViewDelegate的代理方法中

2.1當地圖的區域將要發生改變時,顯示第一步創建的大頭針圖片,并刪除當前地圖上的Annotation(在2.2中會創建)

func mapView(mapView:MAMapView!, regionWillChangeAnimated animated:Bool) {

centerImageView.hidden=false

mapView.removeAnnotation(centerAnnotation)

}


2.2當地圖區域改變之后,隱藏第一步創建的大頭針圖片,并且在當前地圖的中心點創建一個Annotation

func ?mapView(mapView:MAMapView!, regionDidChangeAnimated animated:Bool) {

if !centerImageView.hidden {

centerImageView.hidden=true

if(centerAnnotation==nil){

let pointAnnotation =MAPointAnnotation()

centerAnnotation= pointAnnotation

pointAnnotation.coordinate= mapView.centerCoordinate

pointAnnotation.title="東方明珠"

pointAnnotation.subtitle="東方明珠1號"

mapView.addAnnotation(pointAnnotation)

}

centerAnnotation?.coordinate= mapView.centerCoordinate

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容