現在很多網站、APP應用等都引入了地圖和定位功能,似乎地圖功能不再是地圖和導航應用的專利。的確,地圖和定位功能引入到應用開發中,不但方便了我們的生活方式,也讓我們的生活變得更加豐富多彩。那麼,iOS系統如何進行地圖和定位開發呢?
一、定位服務
一般來說,iOS設備能提供3種不同的定位途徑:WiFi定位、蜂窩式移動電話基站定位、GPS衞星定位。
3種定位途徑的特點:
GPS衞星定位:定位準確、覆蓋面廣闊;但不能被遮擋,開啟後比較費電。
蜂窩式移動電話基站定位:不僅誤差比較大,而且還會耗費用戶流量費。
WiFi定位:最經濟實惠。
與Android不同,iOS系統在定位服務編程時,不可以指定採用哪種途徑進行定位。這是由於iOS系統的API把底層這些細節屏蔽掉,開發人員和用戶並不知道現在設備採用哪種方式進行定位。儘管如此,iOS系統會根據設備的情況和周圍的環境,採用一種最佳的解決方法。
二、定位服務編程
1)精度越高的請求,獲取位置信息的頻率就會越高,設備也就會越耗電。
2)調用方法start Updating Location定位服務就會開啟,它根據設定的條件,不斷地請求回調新的位置信息。因此開啟這個方法一定要慎重,要在最合適的時候開,在視圖控制器的聲明周期方法中view Will Appear:方法是最合適的。停止服務的方法是stop Updating Location,它是視圖控制器的viewWillAppear:方法中調用的,代碼如下:
1 -(void)viewWillDisappear:(BOOL)animated
2 {
3 [super viewWillDisappear:animated];
4 //停止定位
5 [_locationManager stopUpdatingLocation];
6 }
三,地理信息反編碼
地標類屬性:
1,address Dictionary,地址信息的字典,包含一些鍵值對,其中的鍵是在Address Book framework(地址簿框架)中定義好的。
2,ISO country Code,ISO國家代號;
3,country,國家信息。
4,postalCode,郵政編碼。
5,administrative Area,行政區域信息。
6,sub Administrative Area,行政區域附加信息。
7,locality,指定城市信息。
8,subLocality,指定城市信息附加信息。
9,thoroughfare,指定街道級別信息。
10,sub Thoroughfare,指定街道級別的附加信息。
四、關於定位服務的測試
定位服務應用的測試和運營有兩個選擇:模擬器和設備。
原則上先通過模擬器,然後使用設備測試,但由於有些定位服務比較特別,使用設備測試時需要我們拿着設備到現場測試,因此定位服務的測試也有局限性。但我們不能因為要判斷某個地方是否有這個建築物,而專門去一趟。所以,模擬器的測試,有時候是不可替代的。
五.使用iOS6蘋果地圖
在iOS6後,蘋果設備已經不再使用Google地圖,而是使用自己開發的蘋果地圖,但是API編碼接口沒有太大的變化,使得開發人員不需要學習新東西才能進行地圖的開發。
看了以上的內容,相信大家對iOS的地圖和定位開發已經有一個大概的認識,地圖和定位看上去是挺複雜的東西,但其實只要用心去學去做也是挺簡單的事。