iOS百度地圖點選BMKPointAnnotation後把該座標點放到螢幕任意位置
由於百度地圖設定螢幕中心點只有一個方法:
/// 當前地圖的中心點,改變該值時,地圖的比例尺級別不會發生變化
@property (nonatomic) CLLocationCoordinate2D centerCoordinate;
但是我們有時可能有需求放到距離任意一點,比如點選座標彈框,需要把該座標點放到該彈框頂部。有這樣的需求解決的辦法就是需要座標轉換處理。
/**
*當選中一個annotation views時,呼叫此介面
*@param mapView 地圖View
*@param view 選中的annotation views
*/
-(void)mapView:(BMKMapView *)mapView didSelectAnnotationView:(BMKAnnotationView
下面講解一下Y軸的處理:
很簡單,只有設定中心點座標,而我們想把點P放到目標點上,只要知道相對於中心點對稱的轉換點M座標。即可把目標點放到該區域。點本身座標Y軸py,那麼目標點Y軸座標已知dy,中心點Y軸座標已知h/2,求轉換點M座標:
My = py+h/2-dy
下面是栗子:
CGPoint annoPoint = [self.mapViewconvertCoordinate:point.coordinatetoPointToView:self.view];
CLLocationCoordinate2D coor=[self.mapViewconvertPoint:CGPointMake
//求得轉換點座標AdapterH(180)為目標點到螢幕頂部的距離
[self.mapView setCenterCoordinate:coor];
先把點選的大頭針轉經緯度換成座標,經過轉換,把座標再轉換成經緯度,通過setCenterCoordinate函式設定中點。
這個只是在中心點Y軸垂直的座標,X軸類似,有需要的自己轉換下吧。