使用PhoneGap Geolocation API获取Android手机当前位置但不需要互联网

4

我正在尝试使用PhoneGap Geolocation API获取用户的当前位置。该API表示:“位置信息的常见来源包括全球定位系统(GPS)和从网络信号中推断的位置,如IP地址、RFID、WiFi和蓝牙MAC地址以及GSM/CDMA小区ID”。只要联网(无论GPS状态如何),我就能正确获取位置。 当没有网络或无法访问互联网时,是否有办法使用三角定位获取位置?(GPS可能开启或关闭)

2个回答

9
绝对不行!这就像砍掉双手然后问我现在能不能鼓掌了? GPS和网络定位是接收用户设备位置的唯一方法。

对于GPS定位 - 您需要打开GPS传感器。

对于网络定位,您需要打开互联网连接,因为在这种情况下,位置是根据基站/ WiFi点ID计算的,然后将其发送到谷歌服务器(通过互联网)以获取相应基站或wifi点的位置详细信息。谷歌的位置服务器有自己的位置近似算法,根据此算法告诉您的位置。

因此,当GPS和INTERNET都关闭时,您无法接收位置。

注意:即使提供者已关闭,您仍可以使用LocationManager getLastKnownLocation()从任何一个提供者获得上次接收到的位置。但是这些位置通常是过时的,并且几乎没有用处。


感谢回复。我本来就期望得到同样的答案,但是没有在任何地方找到明确的肯定或否定的答案,所以只是想确认一下。正如我在最后一行中提到的(这是一个编辑,不确定你是否看到了),有没有办法在安卓上使用GPS而不需要互联网获取位置信息? - ankitsingh
当然可以。要接收GPS位置,您不需要互联网连接。我个人在我的一个应用程序中实现了这一点。 - AnniJais
1
但是仅使用GPS(没有互联网),您将只收到“位置”坐标(纬度、经度、精度等详细信息),而没有地址详细信息。要获取与这些位置坐标对应的人类可读地址,您需要再次进行地理编码,这将需要互联网!:( - AnniJais
1
我只想获取纬度和经度。你能指导我如何仅使用GPS获取位置吗?最好使用PhoneGap(无法使用Geolocation API获取)。 - ankitsingh
1
为什么要使用这些API,而不是简单地使用默认的“LocationManager”实现呢?这里有一个非常好的示例,展示了位置跟踪器的用法。该示例展示了GPS和网络位置监听器的使用。一旦您完全理解了代码,您可以简单地忽略网络部分并裁剪GPS位置的代码。 - AnniJais
我使用这些API,因为我的应用程序大部分是使用PhoneGap编写的JavaScript。但正如你所说,我很可能会采用本地代码。 - ankitsingh

1

{ enableHighAccuracy: true } 启用该选项将允许安卓设备在WIFI选项禁用时获取位置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接