【发布时间】:2013-12-16 00:36:29
【问题描述】:
跟踪设备在$GPRMC 中发送了数据,这不是我在代码中使用的,在谷歌上搜索 PHP 转换为十进制格式的方法无济于事。
刚刚得到解决方案不得不让我对$GPRMC的内容感到头疼
示例格式例如$GPRMC,001225,A,2832.1834,N,08101.0536,W,12,25,251211,1.2,E,A*03
地点:
RMC Recommended Minimum sentence C
123519 Fix taken at 12:35:19 UTC
A Status A=active or V=Void.
4807.038,N Latitude 48 deg 07.038' N
01131.000,E Longitude 11 deg 31.000' E
022.4 Speed over the ground in knots
084.4 Track angle in degrees True
230394 Date - 23rd of March 1994
003.1,W Magnetic Variation
*6A The checksum data, always begins with *
还有代码:
$gps = $_REQUEST['gps'];
if($gps){
$buffer = $gps;
if(substr($buffer, 0, 5)=='GPRMC'){
$gprmc = explode(',',$buffer);
$data1['lattitude_decimal'] = DMStoDEC($gprmc[3],'lattitude');
$data2['longitude_decimal'] = DMStoDEC($gprmc[5],'longitude');
$data = 'http://maps.google.com/maps?q='.$data1['lattitude_decimal'].','.$data2['longitude_decimal'].'+(PHP Decoded)&iwloc=A';
print_r($data);
echo "\n\n";
}
}
function DMStoDEC($dms, $longlat){
if($longlat == 'lattitude'){
$deg = substr($dms, 0, 2);
$min = substr($dms, 2, 8);
$sec = '';
}
if($longlat == 'longitude'){
$deg = substr($dms, 0, 3);
$min = substr($dms, 3, 8);
$sec='';
}
return $deg+((($min*60)+($sec))/3600);
}
?>
希望这会对某人有所帮助
【问题讨论】:
-
问题是什么?
-
将 $GPRMC GPS 位置转换为十进制我会更好地编辑问题然后我的文字有限我后来得到了答案
标签: php gps latitude-longitude type-conversion