3

我知道有一个具体的问题在讨论这个问题,但它有点老了,如果可能的话,我想获得更多的技术知识。

首先看一下这个截图:https ://www.dropbox.com/s/f94q3qaxrog0ec9/intersections.png

我想要发生的事情是说“我看到它们相交的地方以及发生这种情况的地方我不想绘制多边形的那些'部分'”。在这种情况下,我想绘制两个多边形,但不绘制橙色多边形内的黄色多边形的“路径”。这不仅包括线条,还包括填充颜色。

显然,这会变得很棘手,因为您并不总是沿着每个多边形的路径都有精确的点,这些点与另一个多边形路径上的其他点完全相交。正如您从该屏幕截图中看到的那样,为了使这成为可能,我认为,我需要将点恢复到它们相交的位置。

在那之后,假设我可以做到这一点,我不知道是否有办法使用 CGPathRef 类来做我需要做的事情。显然,我将重新创建一个多边形,但根据文档,除非它是封闭路径,否则您无法填写它。那么如何在不关闭路径的情况下填充不相交的多边形呢?

我唯一能想到的就是“隐藏”多边形中相交但不确定如何执行此操作的部分。任何人都可以为这个问题提供任何帮助/见解吗?

4

3 回答 3

2

干得好。我围绕 Alan 的 GPC 库编写了一个 Objective-C 包装器。查看MKPolygon-GPC

于 2014-02-13T04:52:21.943 回答
0

好了朋友们!好吧,我开始创建自己的 MKPolygon 类别来解决我需要解决的问题。我希望它也对其他人有用!

github链接是:https ://github.com/geeksweep/MKPolygon-GSPolygonIntersections

于 2013-06-25T22:10:12.487 回答
0

经过几天的调查,这是我为Swift 4找到的解决方案:

1)去这里克隆项目

2)将以下内容拖放到您的项目中:

- MKPolygon+GPC.m

- MKPolygon+GPC.h

- gpc232(文件夹)

3)创建一个桥接头(这里是一个教程

4)打开您的桥接头文件并添加以下内容:

#import "MKPolygon+GPC.h"

5)在您的View Controller中,使用此方法来合并您的两个 Polygons :

let mergedPolygon = polygon1.fromUnion(with:polygon2) 

注意:当前库中存在崩溃,我已修复它,但我正在等待我的拉取请求进行审查。感谢 SunGard-Labs 的框架!

于 2018-07-20T22:55:36.840 回答