iOS百度地圖API的使用—定位功能

來源:互聯網
上載者:User

                老闆最近非得整百度地圖,沒辦法找了些資料琢磨琢磨。使用百度地圖API首先要去百度官網下載API,並申請Key(按照百度官網的提示就行了)。

              申請了key後,把百度的Demo下載下來,把裡面的key改成剛申請的,運行下試試。(提醒下,如果寫自己的程式時,編譯有很多錯誤的話,首先看看所需要的架構是否已全部加進去了,其次選擇工程->Target->
build settings -> Linking -> other linker flags  添加-all_load)

               定位主要用到的是BMKMapView委託的函數-(void)mapView:(BMKMapView *)mapView didUpdateLocation:(BMKUserLocation *)userLocation,通過這個函數可以擷取到使用者的當前經緯度。

                可能經緯度並不能滿足大家的要求,而是希望直接看到自己的位置是什麼地名。這就要用到BMKSerarc的委託類BMKSearchDelegate,先調用BMKSerach的reverseGeocode函數,然後在BMKSearchDelegate的-(void)
onGet

AddrResult: (BMKAddrInfo *)result errorCode: (int)error函數中獲得結果。

               以下貼幾段關鍵代碼:

- (void)mapView:(BMKMapView *)mapView didUpdateUserLocation:(BMKUserLocation *)userLocation

{

    localLatitude = userLocation.coordinate.latitude;   //儲存擷取的經緯度

    localLongitude = userLocation.coordinate.longitude;


    if (userLocation != nil) 

    {

           NSLog(@"%f %f", userLocation.location.coordinate.latitude, userLocation.location.coordinate.longitude);

     }

    

    [_mapView setCenterCoordinate:userLocation.coordinate animated:YES];   //使地圖移動到定位的地方

   

    BOOL flag = [_search reverseGeocode:pt];                   //反地理編碼      自動調用下面的委託函數擷取結果

    if (!flag) {

        NSLog(@"search failed!");

    }

}

- (void)onGetAddrResult:(BMKAddrInfo *)result errorCode:(int)error

{

    NSLog(@"%@",result.strAddr);

    cityStr = result.addressComponent.streetName;               //得到的街道名稱

    cityStreetName = result.addressComponent.city;             //所在城市名稱

    NSLog(@"%@",cityStreetName);                                    

    NSLog(@"%@",cityStr);

    NSLog(@"%@",result.addressComponent.streetNumber);   //輸出所在城市街道門牌號

}

                百度地圖還是很強大的,現在僅僅是管中窺豹而已,後面繼續添加功能。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.