问题标签 [mkpolygon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
7158 浏览

ios - iPhone MKMapView - MKPolygon 问题

我正在尝试在 iOS 4.0 中的 MKMapView 上绘制 MKPolygon。我有一个 NSArray,其中包含自定义对象,其中包括纬度/经度属性。我在下面有一个代码示例:

我理解的方式是:

  1. 我需要创建 MKPolygon
  2. 将叠加层添加到 MapView
  3. 这将反过来触发 MKPolygonView 的创建。

我的问题是如何获取 NSArray (coordinateData) 中包含的自定义对象并将这些对象转换为 CLLocationCoordinate2d 数组,以便 Polygon 可以解释和渲染?我不确定 CLLocationCoordinate2d 甚至是一个数组吗?有人可以澄清一下吗。

0 投票
2 回答
3017 浏览

ios - 使用背景颜色绘制 GMSPolyline

我看到GMSPolyline协议已经color为其描边颜色定义了一个属性,但是有没有办法对其多边形内部进行着色(最好是透明的)?我正在寻找相当于MKPolygon和朋友的谷歌地图。

0 投票
1 回答
2830 浏览

ios - 添加新叠加层时,MKMapView 叠加重绘(闪烁)。MKPolyLines 是锯齿状的

我正在测试 MKMapView 上的一些基本绘图功能,并且发生了一些奇怪的事情。您可以参考下面的保管箱链接。这是在实际设备上运行和测试的 - 而不是模拟器。

您会注意到一些 MKPolyLines 在连接时呈锯齿状,而有些则没有。这是什么原因,可以纠正吗?我没有看到任何设置抗锯齿的选项。我认为最右边的多边形是你能看到的最多的。但总的来说,有些线条似乎比其他线条更平滑。

此屏幕截图未显示的另一件事是,每次我点击视图以添加新的叠加层时,地图上的所有叠加层都会“闪烁”,就好像它们正在重绘或者重绘速度不够快一样。想知道这是什么原因,或者我应该做些什么来防止这种情况发生,我不知道。

还有一个关于代表的问题。如果您的地图上有 100 个不同的叠加层怎么办?您是否应该检查代表中的每个人,以告诉它要执行哪种绘图?就我而言,只有 3 种情况,但我可以想象这种方法可以用我在这里设置的方法变得非常大。我知道这是一个题外话,但我想我会在这里插入它。

https://www.dropbox.com/s/dbordqnml33urmu/Screenshot%202013.03.28%2011.26.36.png

这是相关代码:

//绘制折线。设置多边形,但在完成绘制形状之前不要添加为叠加层。不包括此代码,因为这里有很多不相关的按钮状态。

//设置圆形覆盖

//MapView 覆盖委托方法。有没有更好的方法来检查覆盖?如果我有 100 个叠加层怎么办

0 投票
1 回答
476 浏览

objective-c - 将 MKPolygon 转换为 UIBezierPath

有没有办法将 a 转换MKPolygon为 a UIBezierPath?我有一个MKPolygon使用纬度和经度坐标来组成它的点。这些纬度/经度坐标如何转换为 a 上的坐标UIView

0 投票
3 回答
1198 浏览

ios - 从两个相交的多边形创建一个新的 MKPolygon

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

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

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

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

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

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

0 投票
1 回答
2324 浏览

ios - iOS - 如何使用私有方法创建类别

我正在为 MKPolygon 类创建一个类别。您可以在此处找到对此类的参考。我有两个要“公开”的公共类方法和一些“私有”方法来处理一些内部。我想这样做的原因是,如您所见,该类可用的方法是类方法,我想通过提供将返回的类方法(MKPolygon *)继续与此保持一致。此外,我将编写大量工作,而不分解任务将违背良好的编码实践,当然也难以测试和阅读——这尤其重要,因为我将把它贡献给 github。

这是我在 XCode 中创建新类别时创建的头文件和实现文件。我现在要使这些方法通用,以表达我的观点:

MKPolygon+MKPolygonStuff.h

MKPolygon+MKPolygonStuff.m

在我的实现文件中,我的界面在括号内有一些东西,但它给了我以下警告:

“界面上的类别重复定义......”

因此,我决定在这里阅读有关此问题的其他几个线程后,将括号留空。这样做也可以让我拥有我最肯定需要的、我不想被“公开”的实例变量。

现在我有一个警告,它位于 +(void)calculateStuff 旁边的实现部分下。

“类别正在实现一种方法,该方法也将由其主要类实现”。

我在网上搜索了这个警告,看看是什么导致了这个警告,如果编译器认识到你将覆盖类的一些内置功能,你似乎会收到这个警告。问题是,MKPolygon 类中没有 calculateStuff 方法,所以我不确定为什么会收到此警告。这里有什么我做错了,如果有的话,一般来说,我是否在这里设置了我想做的所有事情?显然,我的私有方法也必须是类方法,因为您不能从类方法中调用实例方法。

在此不胜感激任何评论/建议/更正。

0 投票
1 回答
1252 浏览

ios - 数组中的多个多边形叠加

我有一个多边形数组,该数组是从每个多边形坐标的数据文件中创建的。

因此,当我在地图上绘制它们时,我使用:

在我看来ForOverlay:

问题在于,关于我的“colorWithAlphaComponent”,代码似乎重用并为每个多边形重新创建了 polyView。因此第一个是 alpha 0.1 但第二个是 2x 等等。所以最后几个多边形不再“透视”了。

这是它的外观:

在此处输入图像描述

0 投票
2 回答
4160 浏览

ios - 具有多个覆盖内存问题的 MKMapView

叠加层和MapKit. 与注释不同,叠加层不会被重用,因此添加多个叠加层会导致真实设备上的内存问题。我多次遇到这个问题。所以我的问题是,我怎样才能重用 MKOverlay 从而提高叠加层的性能MapKit

0 投票
0 回答
101 浏览

ios - 在单个中绘制多个 MKpolygons

我正在使用 aMKMapView来显示带有一堆MKPolygons 的地图。它有时最终会绘制 1000+MKPolygon秒并开始影响性能。

有没有办法更有效地在地图上绘制多边形?我可以将它们全部绘制在一个叠加层中吗?

0 投票
1 回答
423 浏览

ios - NSLog 检测更新 MKPolygon 中的当前位置

菜鸟在这里。我已经阅读了如何检测 MKPolygon 中的一个点,但我在实现它时遇到了困难——它可能与我正在检查用户位置的代码部分有关……我不是即使确定它是否一直在检查。无论如何,这是相关的代码:

然后

我模拟了 Xcode 中的不同位置,它在我的 iPhone 上运行,虽然更新了纬度/经度,但它并没有给我我想要的我绘制的多边形中的真/假。在某一时刻,它显示为全部真实,但现在在 NSLog 中全部为(空)。谢谢!