问题标签 [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 投票
1 回答
2736 浏览

swift - 如何使用 Swift 创建 MKPolyline 和 MKPolygon?

我需要在地图上添加折线或多边形来创建菜单。我知道如何使用注释列表渲染 MKPolyline 和 MKPolygon,但我不知道如何使用手势进行创建。

感谢帮助。

0 投票
1 回答
1066 浏览

swift - 如何向 MKPolyline 和 MKPolygon 添加描述?

如何在 Swift & MapKit 中为折线和多边形添加注释?按点很简单。

0 投票
0 回答
120 浏览

ios - 将 UIBezierPath 转换为 MKPolygon?

如何将 UIBezierPath 转换为 MKPolygon?

背景:我希望为地图(MKMapKit)创建一个覆盖,其中包括带有圆形(即弧)组件的形状。我看到我可以使用 UIBezierPath 在核心图形区域中创建一个包含圆弧的路径,那么是否可以这样做,然后将此路径转换为 ​​MKPolygon 并将其用于 MKMapKit 世界中的叠加层?

0 投票
1 回答
1364 浏览

swift - GEOSwift 和 MapviewOverlays (Swift)

ViewController.swift

导入 UIKit 导入 MapKit 导入 GEOSwift

类视图控制器:UIViewController,MKMapViewDelegate {

我正在尝试使用该库,因为我想创建一个带孔的多边形。但我找不到解决问题的方法。

当我尝试使用 addoverlay 添加 Multipolygon

它抛出一个错误

有人有办法解决我的问题吗?

0 投票
2 回答
5030 浏览

arrays - 领域对象返回 nil (Swift)

我有一个自定义多边形对象,因此我可以将地图叠加层保存到 Realm。我能够成功创建这个对象,但是当我想检索 var 多边形对象时,它返回 nil。当我打印多边形对象时,它可以很好地打印出所有数据。

这是它打印出来的样本。

我从 Realm 加载数据的函数

我的课程

0 投票
1 回答
515 浏览

swift - MKPolygon Swift 没有出现

我试图在我的地图上创建一个形状,但我很难快速找到有关 mkpolygon 的任何信息。我希望这里有人会看到这一点并指出我正确的方向。

这是我目前拥有的,但多边形没有出现。

0 投票
1 回答
127 浏览

ios - iOS中的多色多边形

您好我正在尝试根据每个角的颜色实现一个具有颜色渐变的多边形(多边形是地图的叠加层)。因此,例如,此图像将有一个绿色点、一个红色点和一个蓝色点,并且颜色在中心混合。到目前为止,我一直在使用 MKPolygon。任何指导将不胜感激。

谢谢,

0 投票
0 回答
1442 浏览

ios - 检测点击 MKPolygon 覆盖

我一直在尝试确定点击手势是否在覆盖多边形中,但无济于事。

我正在尝试制作国家叠加地图 - 单击叠加时我希望能够知道叠加的国家/地区。

首先我发现了这个:Detecting touches on MKOverlay in iOS7 (MKOverlayRenderer)和这个:detect if a point is inside a MKPolygon overlay这表明:

  1. 在您的触摸点周围制作一个小矩形,看看它是否与任何叠加层相交。

```

```

  1. 但是,现在已弃用viewForOverlay与有前途的探测功能一起使用。CGPathContainsPointviewForOverlay

这导致我发现Detecting a point in a MKPolygon break with iOS7 (CGPathContainsPoint)建议采用以下方法:

  1. 从每个叠加层的点制作一个可变多边形(而不是使用 deprecated viewForOverlay),然后CGPathContainsPoint如果单击的点在叠加层中,则使用返回。但是我无法使这段代码工作。

```

```

第一种方法有效,但无论我尝试使点击点周围矩形的高度和宽度有多小,点击let mapRect = MKMapRectMake(point.x, point.y, 0.00000000001,0.00000000001);的准确性都不可靠,因此您最终可以一次点击多个多边形。

目前我正在通过使用“MKPolygon”属性来决定哪个县更靠近水龙头coordinate——它给出了多边形的中心点。有了这个,就可以测量从这个多边形到点击点的距离,以找到最近的那个。但这并不理想,因为用户可能永远无法访问他们想要访问的国家/地区。

所以,总结一下我的问题:

  1. CGPathContainsPoint在上面的第二种方法(一种使用)中,我没有正确实现某些东西吗?
  2. 有没有更准确的方法来使用矩形方法注册点击事件?
  3. 有关如何实现单击地图并查看单击是否在叠加层上的目标的任何其他建议或指示。
0 投票
2 回答
895 浏览

swift - 如何区分几个不同的 MKPolygon 叠加层,以便为每个叠加层赋予不同的属性?

我发现区分 MKPolygons 的唯一方法是使用 MKPolygon.version(Int: Int) 类型属性。我可以将其设置为 1、2、3 等,并给每个颜色一个不同的颜色(例如)。我想扩展 MKPolygon 以添加标签,但 Swift 扩展无法添加存储属性。我不习惯使用 MKPolygon.version(我应该这样吗?)。有没有更好的办法?

0 投票
2 回答
622 浏览

swift - 将带有坐标的单个字符串转换为 CLLocationCoordinate2D 数组,并使用该数组在 mapView 中生成多边形

我收到了这个 JSON:

我存储在这个结构中:

然后我创建了一个 [RutaItem] 数组,我在其中存储结构

存储数据后,rutaItemArray 中的结构如下所示:

我现在需要做的是使用每个索引中的字符串rutaItemArray.coor来生成一个 MKPolygonObject,所以首先我需要将长字符串转换为 4 个 CLLocationCoordinate2D 对象并将这 4 个坐标对象放入每个项目的数组中,然后使用用于生成多边形的数组索引。针对不同的区域。

有人可以帮我解决这个问题吗?