【发布时间】:2011-09-05 14:36:48
【问题描述】:
我正在使用 google maps-api,如果 google maps 地理定位是基于 IP 而不是来自 wifi 或 gps,我想向访问者显示一条消息。 原因是告诉他们位置不是那么准确…… 但我找不到检查这个的功能。
【问题讨论】:
-
无论如何都不应该告诉他们吗?基于 WiFi 的地理位置也不是那么准确......
标签: geolocation google-maps-api-3
我正在使用 google maps-api,如果 google maps 地理定位是基于 IP 而不是来自 wifi 或 gps,我想向访问者显示一条消息。 原因是告诉他们位置不是那么准确…… 但我找不到检查这个的功能。
【问题讨论】:
标签: geolocation google-maps-api-3
我不相信 Google Maps API v3 内部有一种机制来确定如何获得位置。但是您可以使用 accuracy 属性来确定位置的准确程度,然后在它高于您设置的阈值时提醒您的用户。
精度属性以米为单位。因此,较小的数字意味着您收到的位置更准确。
这是一个例子:
navigator.geolocation.getCurrentPosition(
function(position) { alert(position.coords.accuracy); },
function() {alert("failure"); },
{enableHighAccuracy:true});
【讨论】:
Google Maps Geocoding API 参数之一是sensor:
"sensor (required) — 指示地理编码请求是否来自具有位置传感器的设备。此值必须为 true 或 false。"
您可能必须检查用户环境以检测它是否使用 GPS,然后将该值作为传感器参数传递。这可能因环境而异(至少我不知道如何使它成为平台中立的)。
另一种可能性是使用 Google ClientLocation,我相信它只使用基于 IP 的位置。然后,您可以将其与您拥有的值进行比较。如果它们相同,那么你知道。
【讨论】: