【问题标题】:current location without using gps不使用 GPS 的当前位置
【发布时间】:2011-04-26 06:25:18
【问题描述】:

喂 我们可以在不使用 GPS 的情况下知道当前位置吗?有可能吗?

【问题讨论】:

    标签: iphone


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        Core Location 可以满足您的需求(通过使用 Wi-Fi 三角测量)。查看CLLocationManager的文档

        【讨论】:

          【解决方案4】:

          试试这个

          map.showsUserLocation = YES;
          

          地图是我的 MKMapView 对象。

          【讨论】:

            【解决方案5】:

            嗯,这是一个非常广泛且非常笼统的问题。如果您正在谈论手机,则可以使用三塔三角测量,这在您同时击中三个塔时很好,但如果您只击中一个,则误差可能高达几公里。

            现在,如果您再次谈论互联网访问设备(即具有 IP 地址的设备),事情就会变得危险。如果您使用的是固定接入点,您将使用最近的已知集线器与设备所在的 IP 范围获得近似值。具有 IP 的移动设备真的很难查明。

            【讨论】:

              【解决方案6】:
              【解决方案7】:

              添加到@Jenifer 的答案

              showsUserLocation
              

              讨论

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

              将此属性设置为 YES 会导致 使用核心位置的地图视图 找到当前的框架 位置。 只要此属性是 YES,地图视图继续追踪 用户的位置并更新它 定期。

              核心定位框架

              核心位置框架让您 确定当前位置或 与设备关联的标题。这 框架使用可用的硬件 确定用户的位置和 标题。你使用类和 该框架中的协议 配置和安排交付 位置和航向事件。你可以 也用它来定义地理 区域并监控用户何时 跨越那些界限 地区。

              如果你想知道核心位置是如何做到的

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

              1. 全球定位系统
              2. 蜂窝塔三角测量
              3. Wifi 热点编目
              4. 随机假设您在库比蒂诺

              根据速度、精度和可用硬件进行权衡。第一代 iPad 将仅提供 3 选项,而 iPhone 模拟器使用最后一种机制。

              您可以在地图应用程序中观察这些系统的差异,它最初根据手机信号塔猜测,然后通过 GPS 优化猜测。

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

              对于包括 #4 在内的幽默受损的人来说,虽然它在功能上是正确的,但并不完全严重。 (我认为他们模拟 GPS 报告该位置,而不是仅仅对其进行硬编码,但我没有检查。)

              来自How does CoreLocation locate the device?

              【讨论】:

              • 但是如果其他方法可用,我们可以选择不使用 gps 吗?我一直想知道这一点,因为当应用程序请求用户使用位置服务时,它会保持打开状态并使用大量 batt。我想避免这种情况,因此如果有其他方法可用,请不要打开它。
              【解决方案8】:

              iPod Touch 就是这样做的。它没有 GPS 芯片,而是使用该地区可用的 WiFi 网络大致了解您所在的位置。

              【讨论】:

                猜你喜欢
                • 2016-12-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-02-11
                • 2016-07-30
                • 1970-01-01
                相关资源
                最近更新 更多