NMEA格式数据的经纬度如何转换为十进制?

新手上路,请多包涵

我有 NMEA 格式的经纬度,我想把它转换成十进制值。有什么公式吗?例如,NMEA 格式纬度 = 35.15 N 和经度 = 12849.52 E

原文由 NajLinus 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 950
2 个回答

NMEA 坐标的格式为 (d)ddmm.mmmm

d=度和 m=分钟

一个度数有 60 分钟,因此将分钟数除以 60,然后将其加到度数上。

对于纬度=35.15 N

35.1560 = .5858 牛顿

对于经度= 12849.52 E,

128+ 49.5260 = 128.825333 电子

在 php 中,你可以这样做:

 <?php
$lng = "12849.52 W";

$brk = strpos($lng,".") - 2;
if($brk < 0){ $brk = 0; }

$minutes = substr($lng, $brk);
$degrees = substr($lng, 0,$brk);

$newLng = $degrees + $minutes/60;

if(stristr($lng,"W")){
    $newLng = -1 * $newLng;
}

?>

原文由 johnDoe 发布,翻译遵循 CC BY-SA 3.0 许可协议

是的,NMEA 格式是 ddmm.mmmm, n/s (d)ddmm.mmmm, e/w

要从度数到分钟数转换为十进制度数,您可以使用以下公式:

(d)dd + (mm.mmmm/60)(* -1 用于 W 和 S)

这里有一个不错的小计算器:http: //www.hiddenvision.co.uk/ez/

原文由 xrgb 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题