确定地理位置是否基于IP?

时间:2011-05-31 15:34:53

标签: geolocation google-maps-api-3

我正在使用谷歌地图-api,并希望向访客显示一条消息,如果谷歌地图地理位置是基于IP而不是来自wifi或gps。 原因是告诉他们位置不准确...... 但我找不到检查这个的功能。

2 个答案:

答案 0 :(得分:0)

Google地图地理编码API参数之一是传感器

“sensor(required) - 指示地理编码请求是否来自具有位置传感器的设备。此值必须为true或false。”

您可能必须检查用户环境以检测它是否正在使用GPS,然后将该值作为传感器的参数传递。这可能因环境而异(至少我不知道如何使其平台中立)。

另一种可能性是使用Google ClientLocation,我认为它只使用基于IP的位置。然后,您可以将其与您拥有的值进行比较。如果它们是相同的,那么你知道。

答案 1 :(得分:0)

我不相信Google Maps API v3中有一个机制来确定如何获得该位置。但您可以使用准确属性来确定位置的准确程度,然后在用户高于您设置的阈值时提醒用户。

精度属性以米为单位指定。因此,较小的数字意味着您收到的位置更准确。

以下是一个例子:

navigator.geolocation.getCurrentPosition(
    function(position) { alert(position.coords.accuracy); },
    function() {alert("failure"); },
    {enableHighAccuracy:true});