iOS:定位服務及地圖應用開發,ios應用開發

來源:互聯網
上載者:User

iOS:定位服務及地圖應用開發,ios應用開發
一,定位服務。

iOS裝置能提供3種不同的定位途徑:

1,WiFi定位,通過查詢一個WiFi路由器的地理位置的資訊,比較省電;iPhone,Ipod touch 和iPad都可以。

2,蜂窩式行動電話基站定位,通過行動電信業者基站定位,只有iPhone,3G版本的iPod touch和iPad可以採用。

3,GPS衛星定位,通過3~4顆GPS衛星位置定位,最為準確,但是耗電量大,不能遮擋,iPhone,iPod touch和iPad都可以採用。

iOS不像android系統在定位服務編程時可以指定採用哪種途徑進行定位。iOS的API把底層這些細節屏蔽掉了,開發人員和使用者並不知道現在裝置採用哪種方式進行定位,iOS系統會根據裝置的情況和周圍的環境,採用一太最佳的解決方案。這個方案是這樣的:如果能夠接收GPS資訊,那麼裝置優先採用GPS定位,否則採用WiFi或蜂窩基站定位,在WiFi和蜂窩基站之間優先使用WiFi,如果無法串連WiFi才使用蜂窩基站定位。

總體來說,GPS定位的優點是準確,覆蓋面廣闊,缺點是不能被遮擋(例如在建築物裡收不到GPS衛星訊號),GPS開啟後比較費電。蜂窩基站不僅誤差比較大,而且會耗費使用者流量費。而WiFi定位應該是最經濟實惠的。

二,定位服務編程

1,精度越高請求獲得位置資訊的頻率越高,這就意味著裝置越耗電。

2,調用方法startUpdatingLocation定位服務就會開啟,它根據設定的條件,不斷地請求回調新的位置資訊。因此開啟這個方法一定要謹慎,要在最合適的時候開,在視圖控制器的聲明周期方法中viewWillAppear:方法是最合適的。停止服務的方法是stopUpdatingLocation,它是視圖控制器的viewWillAppear:方法中調用的,代碼如下:

-(void)viewWillDisappear:(BOOL)animated

{

[super viewWillDisappear:animated];

//停止定位

[_locationManager stopUpdatingLocation];

}

三,地理資訊反編碼

地標類屬性:

1,addressDictionary,地址資訊的字典,包含一些索引值對,其中的鍵是在Address Book framework(地址簿架構)中定義好的。

2,ISOcountryCode,ISO國家代號;

3,country,國家資訊。

4,postalCode,郵遞區號。

5,administrativeArea,行政地區資訊。

6,subAdministrativeArea,行政地區附加資訊。

7,locality,指定城市資訊。

8,subLocality,指定城市資訊附加資訊。

9.thoroughfare,指定街道層級資訊。

10,subThoroughfare,指定街道層級的附加資訊。

四,關於定位服務的測試。

定位服務應用的測試和運行有兩個選擇:模擬器和裝置。原則上是先通過模擬器,然後使用裝置測試。由於定位服務的特別,使用裝置測試需要我們拿著裝置到現場進行測試,因此有的時候是有局限性的,我們不可能為了測試香港有沒有叫“南城”的飯館去一趟香港。所以,模擬器的測試,有時候是不可替代的。

一般使用www.mygeoposition.com通過的GPX工具。這是一個免費提供地理資訊編碼和反編碼,產生KML和GPX檔案等服務的網站。

五,使用iOS6蘋果地圖。

在iOS6之後不再使用Google地圖了,而是使用蘋果自己的地圖,但是API編碼介面沒有太大的變化,使得開發人員不需要學習新東西才能進行地圖的開發。這是負責任的做法。

iOS應用程式 使用MapKit API開發地圖應用程式。其核心是MKMapView類使用。

六,使用程式外地圖。

應用中調用程式外的地圖有兩個選擇:iOS6蘋果地圖和GoogleWeb地圖。

七,調用Google的Web地圖API進行開發地圖應用程式,但這裡所涉及的技術都是Web技術了,而非本地技術。

八,使用本地化的百度地圖。

1,百度地圖使用C++編寫,我們需要把我們工程中一個*.m檔案改成*.mm,就可以了。*.mm說明這個檔案是Object-C++代碼檔案,即代碼模組中可以有C++代碼。

2,需要注意的是蘋果iOS SDK提供了CLGeocoder類,也可以實現地理資訊的編碼和反編碼,但是如果你採用的地圖是百度地圖,那麼在地理資訊編碼和反編碼時候,也最好採用百度地圖提供的API。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.