确定移动网站用户的位置

Posted

技术标签:

【中文标题】确定移动网站用户的位置【英文标题】:Determining the location of mobile web site user 【发布时间】:2012-03-12 19:48:18 【问题描述】:

是否可以跟踪移动网站用户的位置(尽可能精确)?

我知道定位某人的最佳方式是通过 GPS,但我不确定这是否可以通过移动网站实现?我也知道您可以通过设备的 IP 地址大致跟踪用户的位置,但我不确定这是否是最好的方法?

以谷歌地图为例,谷歌地图网站可以使用 iPhone 或 android 设备非常精确地跟踪我的当前位置。这是因为这些网站正在激活设备的 GPS 功能,还是为了让他们实现这一点,还有其他事情发生?

我计划创建的网站理想情况下能够在智能手机设备(如 Android/iPhone/Blackberry/Windows Phone 等)上运行,但也能够在可能没有 GPS 的非智能手机设备上运行内置技术来查询当前位置。

谁能提出最好的方法来实现这一点?我知道一些现有的位置库(例如 GeoLocation)被广泛推荐,但同样,这些是否与不一定具有 GPS 技术的设备兼容?

提前致谢。

【问题讨论】:

你的意思是跟踪手机注册的位置?还是手机的当前位置? (我也假设不使用 WIFI) 理想情况下,用户在访问页面时当前所处的位置。网络请求可以通过 3G 或 WiFi 发生,但我想主要是 3G。 【参考方案1】:

您可以在支持它的设备上使用 html5 Geolocation API。它将返回可用的最准确位置,可能是 A-GPS 或 wifi 位置。

例如使用 javascript 查看 tutorial on how to use geolocation。

基本上你测试地理定位支持并请求位置:

if (navigator.geolocation)  // device can return its location
    navigator.geolocation.getCurrentPosition(function(position) 
         console.log(position.coords.latitude);
         console.log(position.coords.longitude);
    );

请注意,此代码将提示用户是否要共享当前位置。

【讨论】:

感谢您的反馈。这个 API 看起来确实不错,但是我有点担心它不能很好地检测非 GPS 位置。虽然可以理解,但我想知道在非 GPS 手机上运行的这个 API 是否会比台式机更好(由于使用手机定位?) 我不认为对位置的准确性有任何保证。一般来说,电话会使用任何可能的方式来定位自己,而台式机上的 IP 地址最多只能为您提供城市级别的位置。使用 Geolocation API,您可以使用 position.coords.accuracy 读取返回位置的准确性 啊,好吧,酷。是否还有一种方法可以判断 GPS 设备何时不存在?如果是这样的话,我可能不会在页面上显示“查找我的位置”按钮。 不,您事先获得的唯一信息是手机是否支持地理定位 API(在这种情况下,您不应显示“查找我的位置”按钮)。即使它有支持,手机也不会告诉你它是如何知道它的位置的(GPS 或其他方式),只告诉你它的准确性。这里有很多附加信息:http://diveintohtml5.info/geolocation.html 非常感谢。你帮了大忙!

以上是关于确定移动网站用户的位置的主要内容,如果未能解决你的问题,请参考以下文章

从常规页面移动到 asp 页面到用户控件后,脚本停止工作

我可以从网站上读取“真实”的移动 GPS 坐标吗?

服务器端地理定位?

移动设备上的悬停和点击事件

验发票网站成功推出验发票移动web版

PHP类Web网站适应移动设备十贴士