不使用gps的当前位置

不使用gps的当前位置

问题描述:

hai 我们可以知道当前位置而不使用gps吗?可能吗?不使用gps的当前位置

+0

的文档,我认为没有......你不能...... – 2011-04-26 06:27:33

iPod Touch可以做到这一点。它没有GPS芯片,而是使用该地区的可用WiFi网络来粗略了解您所在的位置。

试试这个

map.showsUserLocation = YES; 

地图是我的MKMapView对象。

是的,CoreLocation可以通过附近的手机塔架对您的位置进行三角测量,但位置不会像GPS那样精确。此外,它可以通过附近的WLAN获得您的位置,但这更不可靠。

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上使用位置服务可以执行的所有操作。

那么这是一个非常广泛和非常普遍的问题。如果你正在讲手机,你可以使用三塔三角测量法,当你同时击中三个塔时是很好的,但是如果你只击中一个,那么误差可能会达到几公里。

现在,如果你正在谈论互联网访问设备(即有IP地址的东西),事情就会变得危险。如果您使用的是固定接入点,则使用最近知名的集线器可以近距离接近设备所在的IP范围。带有IP的移动设备确实很难查明。

要添加到@珍妮弗的回答

showsUserLocation 

讨论

该属性并不表示 用户的位置是否是 实际上在地图上是可见的,只有 地图视图是否被允许为 显示它。要确定 用户的位置是否可见,请使用 userLocationVisible属性。该属性的 默认值为NO。

此属性设置为YES导致 使用核心位置 框架查找当前 位置的地图视图。只要这个属性是 YES,地图视图继续跟踪 用户的位置,并更新它 周期性。

Core Location框架

的Core Location框架可以让你 确定当前位置或 航向与设备相关联。 框架使用可用硬件 来确定用户的位置和 标题。您可以使用此框架中的类和 协议来配置和安排 传送的位置和标题事件。您可以 还用它来定义地理 地区和监视,当用户 越过那些 区域的边界。

如果你想知道如何在核心位置做到这一点

实际上它使用的几种机制。

  1. GPS
  2. 手机信号塔
  3. WiFi热点编目
  4. 随机假设你是在库比蒂诺

有基于速度,精度和可用的硬件权衡。第一代iPad只有3个选项可用,而iPhone模拟器则使用最后一个机制。

您可以观察到在地图应用这些系统中它最初是基于蜂窝塔猜测差异,然后提炼通过GPS的猜测。

只有选项#3需要数据连接。

对于包括#4在内的幽默受损,尽管功能正确,但并不完全严重。 (我想他们模拟GPS报告该位置,而不是仅仅硬编码,但我还没有检查。)

How does CoreLocation locate the device?

+0

但我们可以选择,如果其他方法可用于不使用GPS?我一直想知道这一点,因为当应用程序请求用户使用位置服务时,它保持打开并使用大量的电池。 Id喜欢避免这种情况,因此如果有其他方法可用,则不会打开它。 – DevilInDisguise 2015-07-14 20:11:06

核心位置,你想要做(通过使用Wi-Fi三角测量)是什么。检查出的CLLocationManager