天天看點

google地圖定位小Demo

        好幾天沒寫部落格了,今天寫的是一個簡單功能的google地圖小demo,因為模拟器定位的經緯度預設設定為蘋果公司位址,在調試--》位置  裡可以修改地圖的其他位置定位

測試效果

       實作地圖定位我們需要兩個類

CLLocationManager  和CLLocation

1.首先需要一個位置管理器,CLLocationManager對象locationManager,CLLocationManager *locationManager;

設定委托   locationManager.delegate =self;

2.設定精度   locationManager.desiredAccuracy =kCLLocationAccuracyBest;

desiredAccuracy類型double,是以我們可以指定他的精度為一個确卻資料比如10,但是事件不能計算那麼準确,或者由于其他原因都達不到我們所設定進度,是以我們指定為kCLLocationAccuracyBest表示級别最高精度,還有其他精度

3.設定距離篩選器   locationManager.distanceFilter =100;

距離篩選器,作用是當你移動一段位移後,是以移動距離大于篩選器說設定100m時候,通知委托更新位置;

但是位置一段更新過于頻繁就會消耗電池電量,我們可以傳回它的預設的沒有篩選器模式,使用常量kCLDistanceFilterNone;

 locationManager.distanceFilterkCLDistanceFilterNone

4.然後就是啟動 位置管理器進行定位[locationManagerstartUpdatingLocation];  如果我們不需要繼續輪詢更新位置可以使用[locationManager stopUpdatingLocation];停止更新,否則應用程式打開會一直更新,這些都需要添加委托的,遵循

CLLocationManagerDelegate協定

5.為了顯示确實卻是進行了定位,我們擷取定位的經緯度,顯示到label上,然後就是用到了CLLocation類,他有五個屬性

latitude經度    longitude緯度    horizontalAccuracy水準精度(map中顯示的藍色圓半徑都是以它為半徑的)  altitude海拔高度

verticalAccuracy  豎直高度(為負值得時候表示無法确定高度)

6.顯示定位的實況地圖

需要設定顯示區域和顯示比例,他們是兩個結構體,MKCoordinateSpan  ,MKCoordinateRegion

MKCoordinateRegion定義

typedef struct{

      CLLocationCoordinate2D center;//表示顯示的中心

      MKCoordinateSpan span;       //表示比例

}MKCoordinateRegion;

MKCoordinateSpan定義:

    CLLocationDegrees latitudeDelta;//這類型在前一節中講過了,是double型的

    CLLocationDegrees longitudeDlta;

}MKCoordinateSpan;

7.通過 region.center = newLocation.coordinate;擷取定位的經緯度,然後顯示到MKMapView,通過

UISegmentedControl設計了一個按鈕集合來切換三種不同地圖

首先我們要在工程添加支援定位和顯示地圖的庫

CoreLocation.framework 和 MapKit.framework 添加兩個頭檔案,對應代碼

通過按鈕跳轉視圖,顯示地圖

切換google三種地圖顯示

     本文轉自新風作浪 51CTO部落格,原文連結:http://blog.51cto.com/duxinfeng/1208781,如需轉載請自行聯系原作者

繼續閱讀