我需要开发一个网络应用程序。 (PHP)100%用于手机并需要从手机GPS获取信息,以获得用户的当前位置。我的问题是,我该怎么办?
我知道PHP,但我对GPS部分完全无能为力(以前从未使用过它们)。所有我正在寻找的是单挑,看看我能否处理这项工作或拒绝它。
我听说W3地理位置API做得非常好但经过测试后我不相信准确性和浏览器支持。我不想使用谷歌的齿轮,因为它必须先下载。
答案 0 :(得分:1)
这取决于设备,但是一些移动应用程序框架已经完成了所有工作并且有扩展程序来执行此操作,请查看iPhone的jqTouch:
更具体地说:
答案 1 :(得分:1)
我认为W3C Geolocation API是一个很好的起点:它在移动电话上越来越受欢迎,是一个开放的标准,并抽象出所有特定于设备的API。
确实,准确性可能并不完美,但这是因为手机本身可能并不总是完全知道它的位置。 API为您提供了几种解决方法:如果您需要高精度,即使以enableHighAccuracy
标志的功率/时间为代价,您也可以向设备提示您想要准确的结果并设置一个长的timeout
参数,允许设备使用GPS查找位置。此外,返回所有位置的准确度值为95%置信度 - 如果错误太高(通常电话会在第一次请求时返回高错误),您可以再次请求该位置,指定您不想要一个缓存的位置。
答案 2 :(得分:1)
GPS坐标可以使用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调用。
将其与谷歌的一些反向地理编码联系起来,你就成了胜利者!
答案 3 :(得分:0)
根据移动设备的不同,您可以访问GPS。但是,在广泛的移动设备中,您可能无法单独从设备的浏览器中获取它。考虑到蜂窝网络的架构,读取IP将是徒劳的。
可以做到,但你需要建立一定程度的退化。