【问题标题】:determine if geolocation is ip based?确定地理位置是否基于 IP?
【发布时间】:2011-09-05 14:36:48
【问题描述】:

我正在使用 google maps-api,如果 google maps 地理定位是基于 IP 而不是来自 wifi 或 gps,我想向访问者显示一条消息。 原因是告诉他们位置不是那么准确…… 但我找不到检查这个的功能。

【问题讨论】:

  • 无论如何都不应该告诉他们吗?基于 WiFi 的地理位置也不是那么准确......

标签: geolocation google-maps-api-3


【解决方案1】:

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

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

这是一个例子:

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

【讨论】:

    【解决方案2】:

    Google Maps Geocoding API 参数之一是sensor:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      • 2011-01-11
      • 2019-12-21
      相关资源
      最近更新 更多