如何使用 boost 处理 lat long 值?

Posted

技术标签:

【中文标题】如何使用 boost 处理 lat long 值?【英文标题】:How to handle lat long values using boost? 【发布时间】:2019-04-15 15:01:14 【问题描述】:

在我的应用程序中,我收到以下形式的纬度/经度输入:“N48 E010”、“N40 E020”、“S30 W110”... 我期待做的是检查这些点是否形成有效的多边形。 我的意图是使用 boost 库来实现我的目标。所以,我需要帮助:

    是否已经定义了一种类型来存储经纬度对? 多边形已经被点填充,如何检查这是否是一个有效的多边形? 如果多边形有效。如何得到它的面积?

【问题讨论】:

【参考方案1】:

为了有效,多边形需要闭合,即最后一个点必须与第一个点相同。 由于最小的多边形是一个有 3 个点的三角形,一个有效的多边形必须至少有 4 个。 这是一个足够简单的测试,您可以自己做。

boost geometry 库定义了存储纬度对的类型,并且可以在地理坐标中找到多边形的面积,请参阅:area。

注意:您的纬度/经度点不是标准格式,例如ISO 6709,其中纬度和经度坐标以十进制数字表示,北和东为正,南和西为负。 因此,您需要将坐标解析为十进制数字才能使用 boost 库。

另外,请注意,许多 GIS 库(包括 boost 几何)以经度/纬度顺序获取坐标,以符合 OGC 和 GeoJSON 标准。

【讨论】:

以上是关于如何使用 boost 处理 lat long 值?的主要内容,如果未能解决你的问题,请参考以下文章

沿 Lat 和 Long 值绘制路径

返回要在 sql 查询中使用的用户当前位置的 lat 和 long 值

将 x,y 像素值转换为 lat 和 long

如何计算具有 lat+long 信息的集合的地理空间距离?

等到 GPS 启用,然后在 FusedLocationAPI 中获取 lat 和 long 值

php mysql比较long和lat,返回10英里以下的