移动GPS Web应用程序

6
我需要开发一个Web应用程序(PHP),100%适用于移动电话,并需要从移动电话GPS获取信息,以获取用户的当前位置。我的问题是,我该怎么做?
我知道PHP,但对GPS一无所知(从未使用过)。我只是想看看我能否处理这项工作或拒绝它。
我听说W3地理位置API的表现非常好,但在测试后,我对其准确性和浏览器支持并不满意。我不想使用Google的gears,因为必须先下载它。
4个回答

2
我认为W3C Geolocation API是一个不错的起点:它在移动手机上得到了广泛的认可,是一个开放的标准并且抽象出了所有特定于设备的API。
确实,精度可能不是完美的,但这是因为手机本身可能并不总是完全知道自己在哪里。该API提供了一些解决方法:如果您需要高精度,请使用enableHighAccuracy标志提示设备,即使牺牲电力/时间成本也要获得准确的结果,并设置长timeout参数以允许设备使用GPS来查找位置。此外,所有位置都返回95%置信度的准确度值--如果误差太大(通常手机会在第一次请求时返回高误差),则可以再次请求位置,指定不要缓存位置。

W3C的地理位置API能在PHP中应用吗?还是只能在JavaScript中使用?我已经参考了相关资料,但仍然不清楚。谢谢。 - davidlee
1
@benmsia W3C API是一个JavaScript API,由越来越多的浏览器支持。如果需要,您可以通过使用AJAX将JavaScript的结果传输回服务器端PHP脚本来访问此信息 - 或者更好的方法是,通过使用JavaScript自动填充的表单让用户提交信息。 我知道规范本身可能很难阅读:我在http://npdoty.name/location#developer上有一些示例代码。 - npdoty

1

使用JavaScript可以获取GPS坐标 - 在页面加载时添加类似以下内容的代码:

function locationHandler(location)
{
    var lat = location.coords.latitude;
    var lng = location.coords.longitude;

    if(lat && lng)
    {
        // something clever goes in here
    }
}

if(typeof navigator.geolocation.getCurrentPosition == 'function')
{
    navigator.geolocation.getCurrentPosition(locationHandler);
}

当你想要做一些聪明的事情时,请在注释中标明。你可以填充表单值,或者调用后端脚本进行ajax调用。

将其与Google的反向地理编码相结合,你就是赢家了!


1

0

根据移动设备的不同,您可能可以访问GPS。然而,在广泛的移动设备中,仅从设备浏览器中可靠地获取它可能是不可能的。考虑到蜂窝网络的架构,读取IP地址是徒劳无功的。

虽然这是可以实现的,但您需要建立一定程度的降级。


也许不能透明地通过设备浏览器获取它,但是询问坐标怎么样? - Ben
我认为普通用户不会知道这个。如果您能够向他们提供它,那么您就拥有了GPS数据。这实际上取决于您的应用程序的目的。问问自己 - 位置是否是必需的?要求用户提供位置信息是否不好?是否有精度要求? - Jason McCreary
踩一个18个月前的答案。高雅。技术在不断变化。显然,这些答案中的任何一个现在都可能已经过时了。这适用于SO上的任何内容。 - Jason McCreary

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接