【发布时间】:2011-04-26 06:25:18
【问题描述】:
喂 我们可以在不使用 GPS 的情况下知道当前位置吗?有可能吗?
【问题讨论】:
标签: iphone
喂 我们可以在不使用 GPS 的情况下知道当前位置吗?有可能吗?
【问题讨论】:
标签: iphone
iPhone SDK 有一个框架,该框架会根据结果需要的准确程度自动利用适当的机制来确定位置。苹果有一个good article discussing these different methods of locating a device。
另外,here is a good starting point 用于学习使用定位服务进行编程。
此外,您可以dive right into the CoreLocation framework documentation 了解您可以在 iOS 上使用定位服务执行的所有操作。
【讨论】:
是的,CoreLocation 可以通过附近的手机信号塔对您的位置进行三角测量,但位置不会像 GPS 那样准确。此外,它可以通过附近的 WLAN 获取您的位置,但这更不可靠。
【讨论】:
Core Location 可以满足您的需求(通过使用 Wi-Fi 三角测量)。查看CLLocationManager的文档
【讨论】:
试试这个
map.showsUserLocation = YES;
地图是我的 MKMapView 对象。
【讨论】:
嗯,这是一个非常广泛且非常笼统的问题。如果您正在谈论手机,则可以使用三塔三角测量,这在您同时击中三个塔时很好,但如果您只击中一个,则误差可能高达几公里。
现在,如果您再次谈论互联网访问设备(即具有 IP 地址的设备),事情就会变得危险。如果您使用的是固定接入点,您将使用最近的已知集线器与设备所在的 IP 范围获得近似值。具有 IP 的移动设备真的很难查明。
【讨论】:
添加到@Jenifer 的答案
showsUserLocation
讨论
此属性不表示 用户的位置是否 实际在地图上可见,仅 是否允许地图视图 显示它。要确定是否 用户的位置是可见的,使用 userLocationVisible 属性。这 此属性的默认值为 NO。
将此属性设置为 YES 会导致 使用核心位置的地图视图 找到当前的框架 位置。 只要此属性是 YES,地图视图继续追踪 用户的位置并更新它 定期。
核心定位框架
核心位置框架让您 确定当前位置或 与设备关联的标题。这 框架使用可用的硬件 确定用户的位置和 标题。你使用类和 该框架中的协议 配置和安排交付 位置和航向事件。你可以 也用它来定义地理 区域并监控用户何时 跨越那些界限 地区。
如果你想知道核心位置是如何做到的
它实际上使用了几种机制。
根据速度、精度和可用硬件进行权衡。第一代 iPad 将仅提供 3 选项,而 iPhone 模拟器使用最后一种机制。
您可以在地图应用程序中观察这些系统的差异,它最初根据手机信号塔猜测,然后通过 GPS 优化猜测。
只有选项 #3 需要数据连接。
对于包括 #4 在内的幽默受损的人来说,虽然它在功能上是正确的,但并不完全严重。 (我认为他们模拟 GPS 报告该位置,而不是仅仅对其进行硬编码,但我没有检查。)
【讨论】:
iPod Touch 就是这样做的。它没有 GPS 芯片,而是使用该地区可用的 WiFi 网络大致了解您所在的位置。
【讨论】: