2010-07-21 62 views
5

我需要开发一个网页应用程序。 (PHP)的手机100%,需要从手机GPS获取信息,以获得用户的当前位置。我的问题是,我该怎么办?手机GPS网页应用程序

我知道PHP,但我完全无法了解GPS部分(从未与他们合作过)。我正在寻找的是抬头看看我是否可以处理这项工作,或只是拒绝它。

我听说W3地理定位API做得非常好,但经过测试,我并不相信精度和浏览器支持。我不想使用Google的齿轮,因为它必须先下载。

回答

1

我确实认为W3C Geolocation API是一个很好的开始:它已经越来越被移动电话所接受,是一个开放的标准,并将所有设备专用ic API。

的确,准确度可能并不完美,但这是因为手机本身可能并不总是完全知道它在哪里。该API为您提供了一些方法来解决这个问题:如果您需要高准确度,则可以通过标记enableHighAccuracy来设置您希望得到准确结果的设备,并设置一个长参数timeout以允许设备使用GPS查找位置。此外,所有位置均以95%的置信度返回精度值 - 如果错误过高(通常电​​话会在第一次请求时返回高错误),您可以再次请求位置,指定您不想要一个缓存的位置。

+0

可以将w3c地理位置API应用于PHP?或者它是单独的JavaScript工作?我参考了参考资料,但无能为力。谢谢。 – davidlee 2010-08-17 14:18:03

+1

@benmsia W3C API是一个JavaScript API,由越来越多的浏览器支持。如果需要,您可以通过使用AJAX将结果从JavaScript返回到服务器端PHP脚本来访问这些信息,或者更好的方法是让用户通过自动填充的表单提交信息JavaScript的。 我明白规范本身可能很难阅读:我有一些示例代码在http://npdoty.name/location#developer – npdoty 2010-08-18 06:53:53

0

根据移动设备的不同,您可能有权访问GPS。但是,在广泛的移动设备中,您可能无法单独从设备的浏览器中可靠地获取它。考虑到蜂窝网络的架构,读取IP将是徒劳的。

它可以做到,但你需要建立在退化水平。

+0

也许不透明通过设备浏览器,但要求coords? – Ben 2010-07-21 02:16:40

+0

我不认为普通用户会知道这一点。如果你能够提供给他们,那么你有GPS数据。这真的归结于您的应用程序的目的。问问你自己 - 这个位置是强制性的吗?向用户询问它是不是很糟糕?有准确性要求吗? – 2010-07-21 03:05:08

+0

对18个月大的答案进行投票。优雅。技术变化。很明显,我现在已经过时了。这适用于SO上的任何事情。 – 2012-01-13 17:52:36

1

GPS COORDS都可以使用JavaScript - 地方像这样的页面加载:

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调用。

链接与谷歌的一些反向地理编码,你是一个赢家!