使用嵌套多边形数组中的实际面积查找最内部多边形

时间:2016-08-08 10:29:39

标签: ios google-maps cllocation gmsmapview

我有GMSPath数组并且有坐标。我想找出这个坐标落入的路径。我能够找到这个位置所在的总多边形。 (使用此https://stackoverflow.com/a/38826411/2225439)在此步骤中,一切正常。

当一个关闭GMSPath与另一个关闭的GMSPath重叠并且坐标位于重叠区域时,会出现实际问题。根据我的要求,我必须从这两个中只获得一个GMSPath,其面积小于另一个。

请参阅图片以便更好地理解。

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以使用Google地图iOS SDK GMSPolygon中的以下方法找到GMSGeometryArea()的区域,它提供给定多边形的区域。现在你有了区域,所以你可以比较不同的多边形并找到最里面的区域。

double GMSGeometryArea(GMSPath *path);

根据谷歌提供的说明

Returns the area of a geodesic polygon defined by |path| on Earth.
The "inside" of the polygon is defined as not containing the South pole.
If |path| is not closed, it is implicitly treated as a closed path nevertheless and the result is the same.
All coordinates of the path must be valid.
If any segment of the path is a pair of antipodal points, the result is undefined -- because two antipodal points do not form a unique great circle segment on the sphere.
The polygon must be simple (not self-overlapping) and may be concave.