当前位置: 首页 > 知识库问答 >
问题:

纬度经度格式错误DDDMM.MMMM2832.3396N

上官羽
2023-03-14

我有一个gps模块,它以一种奇怪的格式提供经度和纬度。

DDDMM.MMMM

如用户手册上所写,度*100分钟。

据我所知,它是度数分钟秒,秒在0-59之间,超过这个会增加分钟。但这是小数点后的分钟。这是一分钟的千分之一吗?

eg. 07717.3644 E
077 --> degrees
17 --> minutes
3644 --> ?
E --> Direction

另外,我如何将其转换为十进制,我正在使用公式。

decimal = degrees + minutes/60 + seconds/3600.

共有3个答案

谷梁嘉悦
2023-03-14

该值不是一个数字,而是由度数和分钟串联而成的字符串。您需要小心,因为纬度值很可能只有两位数(即DDMM)。MMMM),所以如果你使用字符串处理来分隔值,你必须考虑到这一点。然而,long和lat都可以用数字处理,如下所示:

double GpsEncodingToDegrees( char* gpsencoding )
{
    double a = strtod( gpsencoding, 0 ) ;
    double d = (int)a / 100 ;
    a -= d * 100 ;
    return d + (a / 60) ;
}

如果需要,您还可以将半球型字符E/W或N/S传递给这个函数,并使用它来确定一个合适的/-符号。

齐坚成
2023-03-14

按照算法进行转换。

var t = "7523.7983" // (DDMM.MMMM)
var g = "03412.9873" //(DDDMM.MMMM)

function lat(t){
  return (Number(t.slice(0,2)) + (Number(t.slice(2,9))/60))
}

function lng(g) {
  return (Number(g.slice(0,3)) + (Number(g.slice(3,10))/60))
}

console.log(lat(t)) 
console.log(lng(g))  
齐昊苍
2023-03-14

要将其转换为十进制格式,我们首先保留DD部分,然后将MM.MMM除以60,以确定十进制格式的MMM部分。

43. (48.225/60), -79.(59.074/60)  

43.(0.80375), -79.(0.98456)  

43.80375, -79.98456    

在你的情况下

eg. 07717.3644 E is the DDDMM.MMMM format

077 --> degrees
17 --> minutes
.3644 --> minutes equals to sec/60


decimal = degrees + minutes/60 

decimal = 77 + (17.3644 / 60)  

decimal = 77.28941

看这个链接会帮助你的

 类似资料:
  • Highmaps 从 1.1.0 开始支持经纬度定位功能,该功能依赖第三方库 proj4js(需要在 Highmaps 之前引入),最新版的文件可以从 cdnjs 上获取 <script src="https://cdn.bootcdn.net/ajax/libs/proj4js/2.7.2/proj4.js"></script> 有了经纬度支持后,我们可以通过 lon 和 lat 属性来指定经

  • 我有一对纬度 然而,我需要一个更灵活的解决方案,例如,我希望能够指定1/3, 1/4, 8/9等对点之间。 注:lat1,long1

  • 我想用xarray创建一个NetCDF文件,并尝试理解此处有关“创建数据集”的文档。 下面是示例中的代码(将ds保存到NetCDF): 从上面的例子中,我希望得到一个具有三个维度(x,y,时间)的两个变量(温度,降水)的NetCDF。我希望尺寸在 x 方向上为 2,在 y 方向上为 2,在时间方向上为 3。根据@Bart的测试(评论),NetCDF就是这种情况。因此,当在QGIS 3.4(EPSG

  • 问题内容: 我想将位置的纬度和经度值存储在mysql数据库表中。考虑到未来,我将希望能够在特定位置的特定半径内找到这些位置。话虽如此,我应该将纬度和经度值存储在哪些数据类型中?请给我提供一个用于创建列的创建表脚本,如下所示: 上表中是否可能缺少我会为我提供当前可能看不到的其他信息的列? 谢谢你的帮助。 问题答案: 您应将这些点存储在数据类型的单列中,该列可以用索引建立索引(如果表类型为): 这将大

  • 问题内容: 我有一个类型为(com.vividsolutions.jts.geom.Geometry)的几何对象。它目前是经度,纬度形式,我想翻转坐标,使其经度为纬度,这样我就可以将其以GeoJSON格式用于mongodb。 我看到的约束是:a)我想翻转坐标的输入是Geometry对象。b)几何对象将是多边形类型或多多边形。c)我想在将类型强制转换为Polygon / multipolygon之前

  • 问题内容: 我有一个类型为(com.vividsolutions.jts.geom.Geometry)的几何对象。它目前是经度,纬度形式,我想翻转坐标,使其经度为纬度,这样我就可以将其以GeoJSON格式用于mongodb。 我看到的约束是:a)我想翻转坐标的输入是Geometry对象。b)几何对象将是多边形类型或多多边形。c)我想在将类型强制转换为Polygon / multipolygon之前

  • 问题内容: 当存储通常为以下格式的纬度/经度时:44.087585(即,点和6dp前最多2个数字)我是否需要打扰大数位数? 问题答案: 使用double精度足以将纬度/经度降低至英寸,精确到6-7小数位。在航空中,如果使用小数位,则它们通常至少达到7个小数位。在我们的NASA模拟中,纬度/经度数据是双倍的,而所有其他姿态和高度都是浮点的。换句话说,海拔高度的小数点后第六位并不重要,而纬度/经度的小

  • 问题内容: 在询问具体的代码示例之前,我只想问一下是否可以进行类似此伪代码的查询: 从表中选择项目,其中经度/经度=-在某个经度/经度点的x英里内- 那可行吗?还是我必须跳过一些箍?可以推荐的任何好的方法都很棒! 问题答案: 您应该搜索Haversine公式,但是一个好的开始可能是: 使用PHP,MySQL和Google Maps创建商店定位器 -请参见“使用MySQL查找位置”部分 使用MySQ