1. 程式人生 > >百度地圖座標轉換中遇到的問題

百度地圖座標轉換中遇到的問題

    最近在做定位的功能,集成了百度地圖的SDK,查了很多資料,發現通過GPS定位得到的經緯度座標並不是我們的真實座標,需要通過轉換才能得到真實座標,具體原理我就不再贅述了,直接說我遇到的問題及解決辦法吧!

    首先,要轉換座標,查了百度地圖API,發現真的有對應的介面和轉換方式(我做的是轉換GPS座標至百度座標):

CLLocationCoordinate2D test = CLLocationCoordinate2DMake(39.90868, 116.3956);  
//轉換 google地圖、soso地圖、aliyun地圖、mapabc地圖和amap地圖所用座標至百度座標  
NSDictionary*
testdic = BMKConvertBaiduCoorFrom(test,BMK_COORDTYPE_COMMON); //轉換GPS座標至百度座標 testdic = BMKConvertBaiduCoorFrom(test,BMK_COORDTYPE_GPS); NSLog(@"x=%@,y=%@",[testdic objectForKey:@"x"],[testdic objectForKey:@"y"]);
    然後,將程式碼複製到自己的專案中,結果問題出現了,總是編譯錯誤

    錯誤資訊為:Implicit declaration of function 'BMKConvertBaiduCoorFrom' is invalid in C99

    我的解決辦法:

    1. 將對應的framework複製到專案的根目錄,在專案中匯入對應的framework(BaiduMapAPI_Utils.framework)

    2. 在需要轉換座標的類中引入標頭檔案

#import <BaiduMapAPI_Utils/BMKUtilsComponent.h>

    編譯通過,完美解決問題!