久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx

iOS6定位服務編程詳解-創新互聯

現在的移動設備很多都提供定位服務,使用iOS系統的iPhone、iPod Touch和iPad都可以提供位置服務,iOS設備能提供3種不同途徑進行定位:Wifi, 蜂窩式移動電話基站, GPS衛星

創新互聯建站主營石城網站建設的網絡公司,主營網站建設方案,重慶APP軟件開發,石城h5小程序設計搭建,石城網站營銷推廣歡迎石城等地區企業咨詢

iOS不像Android系統在定位服務編程時,可以指定采用哪種途徑進行定位。iOS的API把底層這些細節屏蔽掉了,開發人員和用戶并不知道現在設備是采用哪種方式進行定位的,iOS系統會根據設備的情況和周圍的環境,采用一套最佳的解決方案。這個方案是這樣的,如果能夠接收GPS信息,那么設備優先采用GPS定位,否則采用Wifi或蜂窩基站定位,在Wifi和蜂窩基站之間優先使用Wifi,如果無法連接Wifi才使用蜂窩基站定位。

總體來說GPS定位優點是準確、覆蓋面廣闊,缺點是不能被遮擋(例如:在建筑物里面收不到GPS衛星信號)、GPS開啟后比較費電。蜂窩基站不僅誤差比較大,而且會耗費用戶流量費。而Wifi定位是最經濟實惠的。

定位服務編程

定位服務在iOS 6之后API沒有太大的變化,主要使用CoreLocation框架,定位時候主要使用CLLocationManager、CLLocationManagerDelegate和CLLocation。CLLocationManager是定位服務管理類它能夠給我們提供獲得設備的位置信息和高度信息,也可以監控設備進入或離開某個區域,它還可以幫助獲得設備的運行方向等。CLLocationManagerDelegate是CLLocationManager類委托協議。CLLocation類是封裝了位置和高度信息。

在定位服務的應用中,第一次請求獲得位置信息時候,系統會提示用戶是否允許開啟定位服務。用戶所在的位置是比較私密的信息,應用獲取這些信息用戶是有知情權和否定權的。如果應用在用戶不知情的情況下,而獲得用戶的位置信息,這在某些國家是違法的行為。

iOS6定位服務編程詳解

選擇“不允許”,定位服務就無法獲得位置信息了,如果想改變這些設置可以在系統設置應用中開啟或關閉。

iOS6定位服務編程詳解

我們可以關閉所有的定位服務,只需要把最上面的“定位服務”開關控件關閉就可以了。下面的具體應用也可以關閉和開啟。

下面我們通過一個案例介紹一下使用定位服務編程,在應用啟動時候啟動,進入畫面時候會獲得位置信息,并顯示在對應的文本框中,如果設備位置發送變化,也會重新會的位置信息,并更新對應的文本框。

iOS6定位服務編程詳解

首先要實現定位服務的案例,需要為工程引入CoreLocation框架,添加具體步驟是選擇工程中的TARGETS→WhereAmI→Build Phases→Link Binary With Libraries,選擇右下角的“+”按鈕,打開框架和庫選擇對話框

iOS6定位服務編程詳解

再添加對話框中選擇CoreLocation.framework,點擊Add按鈕后添加完成。UI設計部分我們不再介紹。我們直接看看實現代碼,其中主要代碼是視圖控制器ViewController中編寫的,其中ViewController.h代碼如下:

#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
#import <CoreLocation/CLLocationManagerDelegate.h>
@interface ViewController : UIViewController <CLLocationManagerDelegate>
//經度
@property (weak, nonatomic) IBOutlet UITextField *txtLng;
//緯度
@property (weak, nonatomic) IBOutlet UITextField *txtLat;
//高度
@property (weak, nonatomic) IBOutlet UITextField *txtAlt;
@property(nonatomic, strong) CLLocationManager *locationManager;
@end

在h文件中首先需要引入<CoreLocation/CoreLocation.h>和<CoreLocation/CLLocationManagerDelegate.h>頭文件。然后在定義ViewController時需要聲明實現CLLocationManagerDelegate協議。我們還定義了CLLocationManager *locationManager屬性。

ViewController.m的viewDidLoad代碼如下:

- (void)viewDidLoad
{
[super viewDidLoad];
//定位服務管理對象初始化
_locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;
_locationManager.desiredAccuracy = kCLLocationAccuracyBest; ①
_locationManager.distanceFilter = 1000.0f;  ②
}

在viewDidLoad方法中,主要對CLLocationManager的成員變量_locationManager進行初始化。首先使用[[CLLocationManager alloc] init]語句實例化CLLocationManager對象。然后_locationManager.delegate = self語句設置定位服務委托為self。第①行代碼設置desiredAccuracy屬性,它是一個非常重要的屬性,它的取值有6個常量:kCLLocationAccuracyNearestTenMeters。精度10米;kCLLocationAccuracyHundredMeters 。精度100米;kCLLocationAccuracyKilometer 。精度1000米;kCLLocationAccuracyThreeKilometers。精度3000米;kCLLocationAccuracyBest 。設備使用電池供電時候,最高的精度;kCLLocationAccuracyBestForNavigation。導航情況下最高精度,一般要有外接電源時才能使用;

精度越高請求獲得位置信息的時間就越短,這就意味著設備越耗電。因此一個應用應該選擇適合它的精度,如果你的應用是一個車載導航應用,kCLLocationAccuracyBestForNavigation是比較好的選擇,你可以使用汽車上的電瓶為設備供電。如果你的應用為徒步旅行者提供的導航應用,kCLLocationAccuracyHundredMeters是一個不錯的選擇。

第②行代碼設置distanceFilter屬性,它是距離過濾器,它定義了設備移動更新位置信息的最小距離,它的單位是米,本例設置了1000米。

初始化CLLocationManager完成之后,需要使用startUpdatingLocation方法開始定位服務。它是在ViewController.m的viewWillAppear:方法中,代碼如下:

- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
//開始定位
[_locationManager startUpdatingLocation];
}

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

- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
//停止定位
[_locationManager stopUpdatingLocation];
}

viewWillDisappear:在視圖消失(應用退到后臺)時調用,能夠保證最及時地關閉定位服務,這是負責任的做法。在iOS 6之后請求有所變化,定位服務應用退入臺后可以延遲更新位置信息,其中allowDeferredLocationUpdatesUntilTraveled:timeout:方法可以設置延遲更新,從而使得應用在后臺不再更新位置信息。關閉延遲更新使用disallowDeferredLocationUpdates方法實現。此外,在iOS 6之后新增pausesLocationUpdatesAutomatically屬性,它能設定自動暫停位置更新,定位服務的開啟和暫停管理權交給系統,這樣會更加合理和簡單。

一旦定位服務開啟,并設置好了CLLocationManager委托屬性delegate后,當用戶設備移動到達過濾距離時,就會回調委托方法,與定位服務有關的方法有兩個:

locationManager:didUpdateLocations: 定位成功,是iOS 6新方法,替代之前的locationManager:didUpdateToLocation:fromLocation:方法;

locationManager:didFailWithError: 定位失敗;

實現CLLocationManager委托代碼如下:

#pragma mark Core Location委托方法用于實現位置的更新

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
CLLocation * currLocation = [locations lastObject]; ①
_txtLat.text = [NSString stringWithFormat:@"%3.5f",
currLocation.coordinate.latitude];  ②
_txtLng.text = [NSString stringWithFormat:@"%3.5f",
currLocation.coordinate.longitude];  ③
_txtAlt.text = [NSString stringWithFormat:@"%3.5f",
currLocation.altitude];  ④
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
NSLog(@”error: %@”,error);
}

在locationManager:didUpdateLocations:方法中參數locations是位置變化的集合,它按照時間變化的順序存放。如果想獲得當前設備的位置,可以使用第①行的[locations lastObject]語句獲得集合中最后一個元素,它就是設備當前位置了。從集合中返回的對象類型是CLLocation,CLLocation封裝了位置、高度等信息。在上面代碼中我們使用了它的兩個屬性:altitude和coordinate,altitude屬性是高度值,coordinate是封裝了經度和緯度的結構體CLLocationCoordinate2D,CLLocationCoordinate2D定義如下:

typedef struct {
CLLocationDegrees latitude; //緯度
CLLocationDegrees longitude; //經度
} CLLocationCoordinate2D;

其中latitude為經度信息,longitude為緯度信息,它們都是CLLocationDegrees類型,CLLocationDegrees是使用typedef定義的double類型。

第②行代碼中的newLocation.coordinate.latitude表達式是獲得設備當前的緯度,第③行代碼中的newLocation.coordinate.longitude表達式是獲得設備當前的緯度,而獲得高度可以使用第④行newLocation.altitude表達式直接獲得。

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

名稱欄目:iOS6定位服務編程詳解-創新互聯
網頁地址:http://www.js-pz168.com/article30/cdooso.html

成都網站建設公司_創新互聯,為您提供營銷型網站建設響應式網站定制網站網站導航虛擬主機App開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設
久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx
色视频一区二区三区| 日韩一区二区三区精品视频| 欧美一区二区三区四区久久 | 日韩在线电影一区| 在线不卡免费av| 中文字幕欧美一| 麻豆成人综合网| 97视频资源在线观看| 亚洲国产一区二区三区在线| 欧美一区二区三区人| 亚洲女人小视频在线观看| 久国产精品韩国三级视频| 999视频在线免费观看| 一区二区免费在线观看| 久久综合九色综合97_久久久| 亚洲精品日日夜夜| 国产福利精品一区| 欧美在线一二三区| 日韩视频123| 亚洲一卡二卡三卡四卡无卡久久| 国产aⅴ综合色| 日韩精品久久久免费观看| 日韩欧美视频一区| 亚瑟在线精品视频| 91网站最新地址| 91精彩视频在线| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产精品欧美久久| 欧美日韩日日摸| 亚洲精品国久久99热| 成人免费视频一区| 亚洲一区二区三区免费看| 久久久久久久久久美女| 蜜臀精品一区二区三区在线观看| 国产69精品久久久久9999apgf| 在线观看成人小视频| 中文字幕在线不卡视频| 国产成人av电影免费在线观看| 婷婷久久青草热一区二区| 久久综合资源网| 久久国产精品72免费观看| 久久狠狠久久综合桃花| 日韩欧美国产高清| 日韩高清在线一区| 久久青青草原| 2023国产精品视频| 狠狠色丁香婷综合久久| 日韩精品欧美一区二区三区| 久久久不卡影院| 国产一区二区三区四区五区美女| 日韩精品欧美专区| 国产精品欧美一级免费| 国产成人亚洲综合a∨婷婷图片| 亚洲人成网站在线播放2019| 国产精品乱码妇女bbbb| 成人精品免费看| 欧美视频一区在线观看| 一区二区三区高清在线| 99在线观看视频网站| 欧美一区国产二区| 日本少妇一区二区| 日本一区视频在线观看免费| 中文字幕不卡在线| 波多野结衣在线一区| 欧美日韩一区久久| 同产精品九九九| 麻豆av一区| 欧美国产日本韩| 成人av午夜影院| 67194成人在线观看| 男男gaygay亚洲| 视频一区视频二区视频三区高| 国产精品久久看| 99久久精品免费看国产 | 久久99精品一区二区三区| 亚洲国产一区二区三区在线播 | 热久久免费视频| 日韩三级电影网站| 亚洲欧美国产毛片在线| 国产精品久久一区二区三区| 精品国产3级a| 成人影视亚洲图片在线| 国产精品一区二区三区四区| 91福利视频网站| 日韩中文字幕1| 亚洲精品国产精品国自产| 亚洲精品老司机| 欧美精品亚洲精品| 亚洲欧美一区二区久久| 国产一区二区视频在线免费观看| 久久精品视频网| 5g影院天天爽成人免费下载| 亚洲精品一区二区三区影院| 国产69精品一区二区亚洲孕妇| 337p亚洲精品色噜噜狠狠| 精品制服美女久久| 欧美午夜一区二区三区| 麻豆精品久久精品色综合| 在线看国产一区| 美腿丝袜在线亚洲一区| 色婷婷久久久综合中文字幕| 爽爽淫人综合网网站| 伊人久久大香线蕉成人综合网| 亚洲高清中文字幕| 亚洲一区二区三区午夜| 水野朝阳av一区二区三区| 一本一道久久a久久精品综合蜜臀| 亚洲国产日韩av| 一区二区三区在线视频111| 视频一区二区不卡| 91福利精品第一导航| 蜜桃精品视频在线| 欧美日韩三级在线| 国产精品亚洲午夜一区二区三区| 欧美一区二区精品| 成人网男人的天堂| 久久影院视频免费| 成人高清在线观看| 自拍偷拍亚洲激情| 日韩国产精品一区二区| 亚洲成av人影院| 在线免费观看视频一区| 狠狠色综合播放一区二区| 3d成人动漫网站| 粗大黑人巨茎大战欧美成人| 精品国产免费一区二区三区四区| 91文字幕巨乱亚洲香蕉| 国产精品国产自产拍在线| 久久久久一区二区三区| 亚洲午夜在线观看视频在线| 在线免费观看成人网| 黄页网站大全一区二区| 日韩午夜在线影院| 97超碰最新| 亚洲免费在线看| 资源网第一页久久久| 狠狠色丁香婷综合久久| 精品理论电影在线观看 | 久久久亚洲综合网站| 亚洲成a人片综合在线| 欧美羞羞免费网站| 国产成人精品免费看| 久久一二三国产| 久久精品国产99精品国产亚洲性色| 一级日本不卡的影视| 欧美色综合网站| jvid福利写真一区二区三区| 国产精品久久影院| 亚洲精品第一区二区三区| 精品一区二区三区视频| 2023国产精华国产精品| 久久久7777| 日本欧美加勒比视频| 日韩三级电影网址| 九九99玖玖| 免费成人在线影院| 精品国产百合女同互慰| 久久久人人爽| 久久国产夜色精品鲁鲁99| 337p粉嫩大胆噜噜噜噜噜91av| 久久久久九九九| 捆绑调教一区二区三区| 久久亚洲综合色| 视频一区二区在线观看| 国产伦精品一区二区三区免费迷 | 亚洲精品自在在线观看| 国产一区 二区 三区一级| 日本一区二区在线不卡| 亚洲精品成人自拍| 成人免费毛片高清视频| 亚洲精品老司机| 884aa四虎影成人精品一区| 国产精品麻豆免费版| 琪琪久久久久日韩精品| 精品国产百合女同互慰| 午夜精品一区二区在线观看的 | 欧美一区二区三区白人| 精品毛片久久久久久| 免费在线看成人av| 国产欧美日韩麻豆91| 中文字幕中文字幕99| a亚洲天堂av| 婷婷综合五月天| 久久综合一区二区| 一区二区三区四区欧美日韩| av成人免费在线观看| 亚洲chinese男男1069| 精品国产免费一区二区三区四区| 视频一区视频二区视频| 成人av片在线观看| 亚洲成人动漫一区| 精品久久99ma| 一本色道久久99精品综合| 波多野结衣91| 图片区小说区区亚洲影院| www久久久久| 91福利在线看| 精品国产一区二区三区麻豆小说 | 国产精品亚洲一区| 精品一区二区免费看|