iPhone如何进行地理定位?
Posted
技术标签:
【中文标题】iPhone如何进行地理定位?【英文标题】:How does iPhone do geo locating? 【发布时间】:2009-12-07 07:37:23 【问题描述】:既然有 3 代 iPhone,它们的地理定位机制是什么(WiFi、GPS 或其他方式?)?最近在做iPhone开发,想深入了解一下。
(我要所有定位方法的列表和具体介绍)
>谢谢
【问题讨论】:
【参考方案1】:iPhone/iPodTouch 非 GPS 地理定位引擎由 Skyhook Wireless 提供。他们驾驶 geoLocation 货车在大多数城市的大多数道路上行驶,以根据 GPS 绘制 wifi 点,iPhone 主要使用这些数据来进行修复。
值得注意的是,Skyhook 使用 iPhone 来“自我修复”其接入点数据库。如果他们收到的点不在他们的数据库中,或者被认为在其他地方,他们会改进数据。
我曾多次与 Skyhook 的 Kate Imbach 谈过这项技术,我很惊讶他们没有将 GPS 与 WiFi 三角测量结合使用来改进地图数据,但似乎并非如此情况。
也就是说,您问题的具体方法部分是另一回事:iPhone SDK 从您那里抽象出所有这些。 您只需要将 CoreLocation 框架导入您的项目,采用 CLLocationManagerDelegate 协议
然后实例化一个Locationmanager
CLLocationManager * LM = [[CLLocationManager alloc] init];
[[self locationManager] setDelegate:self];
[[self locationManager] setDesiredAccuracy:kCLLocationAccuracyBest];
[[self locationManager] startUpdatingLocation];
然后您可以查询您的 locationManager 或接收更新到
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
NSLog(@"Location changed!");
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
这应该会让你继续前进!
【讨论】:
快速更新。从 ios4 开始,iPhone 不再使用 Skyhook 进行地理定位(它使用现在臭名昭著的内部文件)【参考方案2】:iPhone 3GS 通过 GPS、Wi-Fi 和蜂窝塔快速准确地找到您的位置。
通过http://www.apple.com/iphone/iphone-3gs/maps-compass.html
【讨论】:
【参考方案3】:Iphone 可以使用 GPS 或 WIFI(使用 WIFI 三角测量)来定位坐标。 WIFI三角测量与html5 geolocation API中使用的过程相同,更多关于wifi三角测量v / s GPS(http://arstechnica.com/old/content/2008/01/where-gps-wont-do-wifi-triangulation-might.ars)
GPS 在地铁或拥挤区域的坐标锁定可能会受到延迟的影响,尽管 wifi 三角测量不会受到影响并且相当准确。
简单地说 WIFI 三角测量的工作原理是 ISP 或地理定位服务提供商将扫描一个区域并三角测量坐标。
【讨论】:
W3C Geolocation API(它不是 HTML5 的正式组成部分,因为它的价值)没有指定浏览器确定用户位置的方法。尽管 Firefox 3.5 使用 WiFi 三角测量,但 API 本身是不可知的。以上是关于iPhone如何进行地理定位?的主要内容,如果未能解决你的问题,请参考以下文章