国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

iPhone GPS定位系統 實例操作

移動開發 iOS
本文介紹的是iPhone GPS定位系統 實例操作,GPS越來越普遍使用了,那么本文講述的主要是在iphone手機中的使用,先來看內容。

iPhone GPS定位系統 實例操作是本文要介紹的內容,先來看本文詳細內容。如今,配備GPS功能的移動設備越來越普遍了,使用GPS定位系統,可以精確地定位你當前所在的地理位置,但由于GPS接收機需要對準天空才能工作,因此在室內環境基本無用。

另一個找到自己所在位置的有效方法是使用手機基站,手機開機時,它會與周圍的基站保持聯系,如果你知道這些基站的身份,就可以使用各種數據庫 (包含基站的身份和它們的確切地理位置)計算出手機的物理位置。基站不需要衛星,和GPS不同,它對室內環境一樣管用。但它沒有GPS那樣精確,它的精度取決于基站的密度,它在基站密集型區域的準確度最高。

提示:第一代iPhone并沒有配置GPS接收器,基站方式不能應用到iPod Touch上,因為它不是手機。

第三種方法是依賴Wi-Fi,使用這種方法時,設備連接到Wi-Fi網絡,通過檢查服務提供商的數據確定位置,它既不依賴衛星,也不依賴基站,因此這個方法對于可以連接到Wi-Fi網絡的區域有效,但它的精確度也是這三個方法中最差的。

定位框架內核

在iPhone上,蘋果提供了定位框架內核,以幫助你確定你的物理位置,這個框架的美妙之處在于它使用了前面提到的所有三種方法,具體使用的是哪種方法對于開發者來說是透明的,開發人員只需要指定所需要的精度,定位內核將會以最佳方式確定定位結果。

你一定感到很吃驚吧?!本文其余部分將向你展示這是如何做到的。

獲取位置坐標

使用Xcode,創建一個新的基于視圖的應用程序項目,取名為LBS,在新項目中,雙擊LBSViewController.xib文件,在界面設計工具中編輯它。使用下面的組件填充視圖窗口,如圖1所示。

 Label

TextField

iPhone GPS定位系統 實例操作

圖 1 位置視圖實例:用Label和TextFiled填充這個窗口

在Xcode中框架組上點擊右鍵,選擇“添加”*“現有框架”,選擇 “Framework/CoreLocation.framework”,向LBSViewController.h文件中添加以下粗體字顯示的代碼:

  1.   #import   
  2.   #import   
  3.   @interface LBSViewController : UIViewController  
  4.    {  
  5.   IBOutlet UITextField *latitudeTextField;  
  6.     
  7.   IBOutlet UITextField *longitudeTextField;  
  8.   IBOutlet UITextField *accuracyTextField;  
  9.   CLLocationManager *lm;  
  10.   }  
  11.   @property (retain, nonatomic) UITextField *latitudeTextField;  
  12.   @property (retain, nonatomic) UITextField *longitudeTextField;  
  13.   @property (retain, nonatomic) UITextField *accuracyTextField;  
  14.   @end 

若要使用CLLocationManager類,需要在你的視圖控制器類中實現CLLocationManagerDelegate協議,還需要創建三個出口用于連接視圖窗口中的三個TextFiled視圖。

回到界面編輯器,單擊并拖動文檔的所有者項目到三個TextField視圖,然后分別選擇latitudeTextField,longitudeTextField和accuracyTextField。

在 LBSViewController.m文件中查詢以下代碼中的粗體部分:

  1.   #import "LBSViewController.h"  
  2.   @implementation LBSViewController  
  3.   @synthesize latitudeTextField, longitudeTextField, accuracyTextField;  
  4.   - (void) viewDidLoad {  
  5.   lm = [[CLLocationManager alloc] init];  
  6.   if ([lm locationServicesEnabled]) {  
  7.   lm.delegate = self;  
  8.   lm.desiredAccuracy = kCLLocationAccuracyBest;  
  9.   lm.distanceFilter = 1000.0f;  
  10.   [lm startUpdatingLocation];  
  11.   }  
  12.   }  
  13.   - (void) locationManager: (CLLocationManager *) manager  
  14.   didUpdateToLocation: (CLLocation *) newLocation  
  15.   fromLocation: (CLLocation *) oldLocation{  
  16.   NSString *lat = [[NSString alloc] initWithFormat:@"%g",  
  17.   newLocation.coordinate.latitude];  
  18.   latlatitudeTextField.text = lat;  
  19.   NSString *lng = [[NSString alloc] initWithFormat:@"%g",  
  20.   newLocation.coordinate.longitude];  
  21.   longitudeTextField.text = lng;  
  22.   NSString *acc = [[NSString alloc] initWithFormat:@"%g",  
  23.   newLocation.horizontalAccuracy];  
  24.   accaccuracyTextField.text = acc;  
  25.   [acc release];  
  26.   [lat release];  
  27.   [lng release]   
  28.   }  
  29.   - (void) locationManager: (CLLocationManager *) manager  
  30.   didFailWithError: (NSError *) error {  
  31.   NSString *msg = [[NSString alloc]  
  32.   initWithString:@"Error obtaining location"];  
  33.   UIAlertView *alert = [[UIAlertView alloc]  
  34.   initWithTitle:@"Error"  
  35.   message:msg  
  36.   delegate:nil  
  37.   cancelButtonTitle: @"Done"  
  38.   otherButtonTitles:nil];  
  39.   [alert show];  
  40.   [msg release];  
  41.   [alert release];  
  42.   }  
  43.   (void) dealloc{  
  44.  [lm release];  
  45.   [latitudeTextField release];  
  46.   [longitudeTextField release];  
  47.   [accuracyTextField release];  
  48.   [super dealloc];  
  49.   } 

前面的代碼創建了 CLLocationManager類的一個實例,在使用對象之前,你應該檢查用戶是否開啟了設備的定位服務,如果開啟了,你可以使用 desiredAccuracy屬性指定想要的精度,使用下面的常量指定想要的精度:

  1.  kCLLocationAccuracyBest  
  2. kCLLocationAccuracyNearestTenMeters  
  3.  kCLLocationAccuracyHundredMeters  
  4.  kCLLocationAccuracyKilometer  
  5. kCLLocationAccuracyThreeKilometers 

distanceFilter屬性讓你指定設備必須移動多少距離位置信息才會更新,這個屬性的單位是米。如果你想得到所有移動的通知,可以使用kCLDistanceFilterNone常量,最后,使用 startUpdatingLocation方法啟動位置管理器。

要獲得位置信息,需處理下面兩個事件:

  1. locationManager:didUpdateToLocation:fromLocation:  
  2. locationManager:didFailWithError: 

當獲得一個新的定位值時,設備觸發 locationManager:didUpdateToLocation:fromLocation:事件,如果位置管理器不能確定位置信息,就會觸發 locationManager:didFailWithError:事件。

當設備可以確定位置時,你可能想顯示經緯度值和精度,這時你可以使用CLLocation對象,它的horizontalAccuracy屬性可以指定精度范圍,單位是米。

按Command- r在iPhone模擬器上測試該程序,圖2顯示了模擬器顯示的位置經緯度值,同時顯示了精度。

iPhone GPS定位系統 實例操作

圖 2 定位測試:當你在iPhone模擬器上測試該示例程序時,總會顯示這些固定的值

顯示地圖

如果能將位置坐標定位到地圖上顯示將會更有趣,幸運的是,iPhone 3.0 SDK包括了Map Kit API,它可以讓你在程序中顯示Google Map,下面以一個例子進行說明。

還是使用前面創建的項目,在 LBSViewController.xib文件中視圖窗口上增加一個按鈕,如圖3所示。

iPhone GPS定位系統 實例操作

圖 3 View Map按鈕:增加按鈕后的樣子
  
在Xcode中框架組上點擊右鍵,增加一個新的框架MapKit.framework。在 LBSViewController.h文件中添加下列代碼中的粗體部分:

  1.   #import   
  2.   #import   
  3.   #import   
  4.   @interface LBSViewController : UIViewController  
  5.    {  
  6.   IBOutlet UITextField *accuracyTextField;  
  7.   IBOutlet UITextField *latitudeTextField;  
  8.   IBOutlet UITextField *longitudeTextField;  
  9.   CLLocationManager *lm;  
  10.   MKMapView *mapView;  
  11.   }  
  12.   @property (retain, nonatomic) UITextField *accuracyTextField;  
  13.   @property (retain, nonatomic) UITextField *latitudeTextField;  
  14.   @property (retain, nonatomic) UITextField *longitudeTextField;  
  15.   -(IBAction) btnViewMap: (id) sender;  
  16.   @end 

回到界面編輯器,拖動按鈕到文件的所有者項目上,然后選擇btnViewMap:。

在LBSViewController.m文件中,添加下列代碼中的粗體部分:

  1.   -(IBAction) btnViewMap: (id) sender {  
  2.   [self.view addSubview:mapView];  
  3.   }  
  4.   (void) viewDidLoad {  
  5.   lm = [[CLLocationManager alloc] init];  
  6.   lm.delegate = self;  
  7.   lm.desiredAccuracy = kCLLocationAccuracyBest;  
  8.     
  9.   lm.distanceFilter = 1000.0f;  
  10.   [lm startUpdatingLocation];  
  11.   mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];  
  12.   mapView.mapType = MKMapTypeHybrid;  
  13.   }  
  14.   - (void) locationManager: (CLLocationManager *) manager  
  15.   didUpdateToLocation: (CLLocation *) newLocation  
  16.   fromLocation: (CLLocation *) oldLocation{  
  17.   NSString *lat = [[NSString alloc] initWithFormat:@"%g",  
  18.   newLocation.coordinate.latitude];  
  19.   latlatitudeTextField.text = lat;  
  20.   NSString *lng = [[NSString alloc] initWithFormat:@"%g",  
  21.   newLocation.coordinate.longitude];  
  22.   longitudeTextField.text = lng;  
  23.   NSString *acc = [[NSString alloc] initWithFormat:@"%g",  
  24.   newLocation.horizontalAccuracy];  
  25.   accaccuracyTextField.text = acc;  
  26.   [acc release];  
  27.   [lat release];  
  28.   [lng release];  
  29.   MKCoordinateSpan span;  
  30.   span.latitudeDelta=.005;  
  31.   span.longitudeDelta=.005;  
  32.   MKCoordinateRegion region;  
  33.   region.center = newLocation.coordinate;  
  34.   region.span=span;  
  35.   [mapView setRegion:region animated:TRUE];  
  36.   }  
  37.   - (void) dealloc{  
  38.   [mapView release];  
  39.   [lm release];  
  40.   [latitudeTextField release];  
  41.   [longitudeTextField release];  
  42.   [accuracyTextField release];  
  43.   [super dealloc];  
  44.   } 

代碼解釋:

當視圖載入時創建一個MKMapView類的實例,設置顯示的地圖類型。

當用戶點擊View Map按鈕時,在當前視圖上增加mapView對象。

當位置信息得到更新時,使用mapView對象的setRegion:方法放大地圖。

在iPhone模擬器中按Command-r測試該程序,點擊View Map按鈕將會顯示一個包含位置管理器返回位置的地圖。如圖4所示。

iPhone GPS定位系統 實例操作

圖 4 地圖位置:通過定位內核框架顯示地圖位置

因為模擬器始終顯示的是相同的位置,如果你有一部iPhone手機也可以真實地感受一下,當你移動位置時,你會看到地圖會自動更新。將 distanceFilter屬性設置得小一點,這樣可以增強跟蹤體驗。

正如你所看到的,iPhone SDK的定位內核框架讓你可以很容易實現基于位置的設備,此外,MapKit(包括在iPhone SDK中)可以在地圖上顯示位置信息。如果沒有創建過基于位置的應用,我想你看完本文就應該動手一試,還等什么呢? via:http://ming-fanglin.javaeye.com/blog/703744

小結:iPhone GPS定位系統 實例操作的內容介紹完了,希望本文對你有所幫助!更多相關內容請參考編輯推薦!

本篇文章來源于 黑軟基地-中國最大的黑客軟件安全教程下載站!(手機資訊) 原文鏈接:http://www.hackvip.com/mobiwen/html/Mobile_220397_3.html

責任編輯:zhaolei 來源: 互聯網
相關推薦

2014-11-13 14:07:04

2011-08-08 15:56:18

iPhone 震動 NSUserDefa

2011-07-07 16:42:38

iPhone Sqlite3 數據庫

2011-07-06 16:25:10

iPhone 程序 調用

2021-01-01 19:02:08

GPS定位欺騙網絡安全

2011-07-19 10:42:41

iPhone 應用程序 模型

2011-07-19 11:12:07

iPhone 控制器

2011-07-26 18:11:56

iPhone Sqlite 數據庫

2011-08-03 16:01:24

iPhone應用開發 自動登陸

2011-07-19 10:56:15

iPhone 控制器 視圖

2011-05-27 15:56:30

Android

2011-07-26 11:13:15

iPhone PXL

2011-07-06 16:55:56

iPhone php Push

2011-05-24 09:23:00

中電信定位云

2011-08-10 11:12:33

iPhone文件

2011-07-25 18:02:51

iPhone LibFetion 移植

2010-04-20 17:07:57

2011-05-23 10:06:15

2011-07-18 17:52:47

Linux iPhone

2009-06-20 13:37:18

iPhone OS 3iPhone OS
點贊
收藏

51CTO技術棧公眾號

国产精品中文字幕久久久| 另类人妖一区二区av| 久久久久久免费看| 亚洲人成在线观| 国产中文一区二区三区| 免费在线小视频| 色一情一乱一伦一区二区三欧美| 欧美三级午夜理伦三级中视频| 好吊日精品视频| 色网站免费在线观看| 国外成人在线视频网站| 欧美一区二区三区在线| 日韩专区中文字幕一区二区| 草美女在线观看| 中日韩在线视频| 亚洲四色影视在线观看| 成人av电影免费观看| 伊人精品综合| 黄动漫在线观看| 国产欧美日韩亚洲| 精品粉嫩超白一线天av| 久久99精品一区二区三区三区| 欧美伦理91| 日韩人妻无码精品久久久不卡| 原创国产精品91| 欧美国产日韩一二三区| 最新国产一区二区| 成年人黄视频网站| 2020国产精品久久精品不卡| 91精品国产欧美一区二区| 韩国欧美国产1区| a看欧美黄色女同性恋| 中文字幕中文字幕在线中文字幕三区 | 波多野结衣在线观看一区二区| 伊大人久久香线焦宗合一75大| 韩国成人av| 一区二区中文字幕| 一区二区在线观看不卡| 亚洲欧洲一区二区天堂久久| 亚洲欧美小说色综合小说一区| www.色就是色| 成人欧美一区二区| 亚洲免费av电影| 亚洲日本va午夜在线影院| 亚洲精品影视| 亚洲图片小说区| 亚洲综合色视频在线观看| 日韩视频在线播放| 欧美日本国产在线| 欧美日韩一区二区三区在线看| 国产69精品一区二区亚洲孕妇| av一区二区高清| 亚洲天堂电影| 超碰在线中文| 色呦呦网站入口| 国产精品扒开腿做| 亚洲国产美女精品久久久久∴| 亚洲国产成人午夜在线一区| 亚洲视频狠狠| 精品久久亚洲| 黄色网址在线免费| 杨幂毛片午夜性生毛片| 精品一区二区三区日本| 色综合久久88色综合天天看泰| 欧美三级在线播放| 久久精品水蜜桃av综合天堂| 伊人天天综合| 91综合精品国产丝袜长腿久久| 大片免费在线观看| 国产一级视频| 激情五月六月婷婷| 国产99午夜精品一区二区三区| 久久精品99无色码中文字幕| 欧美视频一区二| 中文字幕成人网| 麻豆久久一区二区| 久久大综合网| 精品久久在线| 麻豆最新免费在线视频| 亚欧美在线观看| 一区二区免费电影| 成人亚洲激情网| 不卡av电影在线观看| 91精品国产综合久久精品app | 亚洲小视频在线观看| 日本精品一区二区三区高清| 26uuu成人网一区二区三区| 影院欧美亚洲| 免费短视频成人日韩| 九九九伊在线综合永久| 亚洲图片88| 日韩加勒比系列| www在线观看免费| 日本不卡一区二区三区视频| 国产精品国语对白| 九九热这里只有精品6| 欧美大片一区二区| 色综合天天综合给合国产| 国产清纯在线一区二区www| 久久精品国产一区二区| 欧美激情第10页| 蜜桃一区二区| 欧美影院视频| 91tv亚洲精品香蕉国产一区| a视频在线观看免费| 亚洲美女电影在线| 九色视频网站| 久久黄色免费看| av在线播放天堂| 亚洲午夜高清视频| 免费国产一区二区| 国产91亚洲精品一区二区三区| 国产成人小视频在线观看| 日韩在线观看免费网站| 亚洲精品动漫100p| 91精品婷婷国产综合久久竹菊| 午夜精品一区二区三区免费视频| 国产精品视频麻豆| 久久久久久免费网| 99精品视频在线观看免费| 国内精品久久久久影院色| 美日韩精品视频| 国产精品毛片在线看| 欧美在线资源| 午夜精品视频一区二区三区在线看| 免费精品国产| 蜜臀av免费一区二区三区| 色综合久久中文| 日本亚洲不卡| 欧美一区二区三区久久| 澳门精品久久国产| 奇米一区二区| 亚洲成人黄色| 精品欧美视频| 中文字幕av一区二区三区四区| 国产欧美自拍| 精品国产黄a∨片高清在线| 最新日韩一区| 欧美综合影院| 久久久久久久久久久久电影| 日韩在线视频一区二区三区 | 免费av一区二区三区| 国产精品一国产精品最新章节| 2022国产精品| 精品乱码一区| 欧美一区2区三区4区公司二百| 欧美一区二区视频在线| 日韩中文字幕av在线| 五月婷婷综合色| 精品一区二区成人免费视频| 一本色道久久88亚洲精品综合| 91九色丨porny丨国产jk| 欧美视频第一区| 久久电影在线| 偷拍自拍在线| 99久久精品国产导航| 国产精品对白刺激久久久| 77成人影视| 一本色道久久88精品综合| 麻豆av在线导航| 亚洲高清免费观看高清完整版在线观看 | 日韩视频久久| 亚洲视频免费一区| 亚洲欧美自拍另类日韩| 国产精品久久久久久久免费观看 | h网站在线免费观看| 狠狠久久亚洲欧美| 亚洲一二三区精品| 视频在线观看一区| 91精品国产毛片武则天| 91在线视频官网| 日韩国产小视频| 黄色在线一区| 色先锋资源久久综合5566| 暖暖在线中文免费日本| 欧美视频完全免费看| 黄色片视频在线观看| 26uuu国产日韩综合| 自拍偷拍99| 日韩精品电影在线观看| 国产精品精品国产| 97视频在线观看网站| 国产精品超碰97尤物18| 法国空姐在线观看免费| 欧美日韩亚洲三区| 草民午夜欧美限制a级福利片| 性开放的欧美大片| 欧美xxx久久| 99久久这里有精品| 7777精品伊人久久久大香线蕉完整版| 北条麻妃av高潮尖叫在线观看| 国产成人亚洲精品青草天美| 18禁免费观看网站| 玖玖国产精品视频| 国产成人精品一区| 亚洲啊v在线免费视频| 亚洲欧美一区二区精品久久久| 一级视频在线免费观看| 国产在线精品一区二区夜色 | 视频一区二区国产|