【发布时间】:2011-06-10 02:32:44
【问题描述】:
有谁知道这是否可能。我正在尝试创建一个非常复杂的多边形,并且想知道是否有任何方法可以获取 2 个或更多 MKPolygon 的对象并从中创建一个新的 MKPolygon。
谢谢!
【问题讨论】:
标签: objective-c ios cocoa-touch mkmapview
有谁知道这是否可能。我正在尝试创建一个非常复杂的多边形,并且想知道是否有任何方法可以获取 2 个或更多 MKPolygon 的对象并从中创建一个新的 MKPolygon。
谢谢!
【问题讨论】:
标签: objective-c ios cocoa-touch mkmapview
MKPolygon 及其祖先非常简单。您可以轻松地做的最多的事情就是制作一个大的 mkpolygon 并开始填充内部多边形“孔”或环以创建更复杂的形状。
话虽如此,如果您在谈论真正的几何数学、联合、交集和更复杂的函数,您可能想要使用特定于地理的框架(或将您的 lat/long 视为 x/y 双浮点数和只需使用常规的教科书几何函数来构建 2d 多边形)
Michael Weisman 有一个很好的地理/GIS 库,名为 ShapeKit,专门针对 iOS。它充当 GEOS 和 PROJ.4 这两个非常强大的库的前端。这可能是您最好、最安全的选择。
如果您不必在设备上计算多边形,您可能想要探索的另一个选项...从 GIS 驱动的数据库服务器提供您的多边形。我对 shapekit 进行了一些修改,让您可以从 mysql 或其他地方导入二进制 WKB 多边形……如果需要,您可以在那里获得快速强大的功能来卸载处理能力。或者你甚至可以将它们直接从 Esri shapefile 带到 iOS,如果那是你来自的地方……我也在 GitHub 上做了一个 proof of concept 。
【讨论】:
我已经为此编写了一个解决方案。查看MKPolygon-GPC。它是 Alan 的 GPC 库的 Objective-C 包装器。
【讨论】: