如何使用boost处理lat long值?

问题描述 投票:0回答:1

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

  1. 是否已经定义了一种类型来存储lat lon对?
  2. 如果多边形已填充点,如何检查这是否是有效多边形?
  3. 如果多边形有效。如何获得它的面积?
c++ boost coordinates latitude-longitude boost-geometry
1个回答
2
投票

为了有效,需要关闭多边形,即最后一个点必须与第一个点相同。 由于最小多边形是具有3个点的三角形,因此有效多边形必须至少为4。 这对你来说是一个简单的测试。

boost geometry库的类型定义为存储lat lon对,并且可以在地理坐标中找到多边形的区域,请参阅:area

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

此外,请注意许多GIS库(包括增强几何)采用经度/纬度顺序的坐标,以符合OGCGeoJSON标准。

© www.soinside.com 2019 - 2024. All rights reserved.