确定移动网站用户的位置
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
非常感谢。你帮了大忙!以上是关于确定移动网站用户的位置的主要内容,如果未能解决你的问题,请参考以下文章