最近在做定位的功能,集成了百度地圖的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>
編譯通過,完美解決問題!
BMKConvertBaiduCoorFrom報錯
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內容
- (1)報錯 _OBJC_CLASS_$_CMMotionManager : 解決方法:直接去Linked Fram...
- 首先保證你的Bridgind-Header.h文件的路徑引用正確 檢驗該文件是否導入正確的方法:.h文件中不要im...
- JSONArray的remove方法是在API level 19時加入的,在低版本調用時會出現錯誤。