使用php从gps设备获取经度和纬度

时间:2010-08-22 07:40:00

标签: php gps

如何使用PHP获取gps设备的经纬度?而不是通过JavaScript。谢谢。

5 个答案:

答案 0 :(得分:3)

如果您使用的是Linux,它可以通过串口与GPS进行通信...只需使用串行电缆连接GPS并激活GPS中的NMEA协议。

exec("stty -F /dev/ttyS0 9600 raw"); // Set the serial port parameters
if ( !$t = fopen('/dev/ttyS0','r+b') ) // Open for read
    die(" - Failed to open\n");

// Send some command...
fwrite($t,"Command\n");

while(true) {
    echo "recived: ".fgets($t,1024);
}

NMEA数据如下所示:$GPGLL,4916.45,N,12311.12,W,225444,A,*1D

有很多网站介绍了NMEA协议的工作原理,例如http://www.gpsinformation.org/dale/nmea.htm

答案 1 :(得分:0)

我认为不可能,所有商用GPS模块都屏蔽了用户的原始数据(NMEI)。现在,如果您只想要特定地点的纬度和经度数据,则不需要GPS。您可以使用谷歌地图,如果您想使用PHP,请查看ESRI(http://www.esri.com/)提供的API,NAVTEQ我很久以前就使用它们,它们非常好。现在,如果您想在该字段上使用Lat和Long数据,您可能需要考虑购买GPS记录器(如果您想要RAW NMEI数据),它可以告诉您所有类型的令人敬畏的事情。如果您只想要Lat和Long信息,那么您的Garmin或Tom Tom应该足够好。同样,这一切都取决于你想要什么以及你想要什么。

/ srm

答案 2 :(得分:0)

您可以使用Google Maps API

我知道这个法语源代码示例易于理解:Geolocation in 5 lines of PHP

但我不知道如何从GPS设备中检索城市和国家/地区的名称。

答案 3 :(得分:0)

真的需要了解更多关于您正在使用的硬件的信息。过去我用GPS做了很多工作,很多GPS装置都会以标准NMEA数据格式为您提供GPS数据,通常是RS232串行接口,频率约为1Hz。 NMEA没有给你所有像星历这样的高级数据(你可以开始真正做一些有趣的事情)。

你说你在'设备'上运行php,所以假设GPS数据来自串行/ usb接口,而GPS芯片正在为你提供NMEA数据,那么你需要从中获取数据串口。 PHP确实有一个可以使用的直接IO库(http://us2.php.net/manual/en/intro.dio.php)。查看此帖子了解更多详情Serial comm with PHP on Windows。如果处理器到GPS接口不是串口/ usb我不知道你将如何进入php土地。

希望有所帮助。也许您可以提供有关您正在使用的硬件的更多信息?

答案 4 :(得分:0)

答案很简单,PHP无法实现。如果客户端浏览器支持此功能,则应使用任何客户端脚本语言。

但是,您可以使用访问者IP地址获得某种信息。但这可能没有给出确切的位置,它只给出了ISP的位置。 (Google Analytics使用此方法获取访问者位置),您还需要一个用于IP到位置信息的大型数据库,或者您需要获得一些免费/付费服务,从IP地址提供位置信息。

希望它有所帮助!