问题标签 [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 回答
1359 浏览

ios - MKOverlayRenderer 不渲染

我无法让 MKPolygonRenderer 出现在我的地图上。我有一个MapViewController包含 的类MKMapView,并创建CustomMapOverlay实例以在MKMapView.

MapViewController.m:

CustomMapOverlay.m:

mapView:rendererForOverlay被调用,并检查overlay调试器中coordinate的它说它确实)。boundingMapRectMKMapPointsPerMeterAtLatitude

但是,地图上没有出现多边形。


更新:

我现在意识到我正在尝试渲染多边形而不创建它们。CustomMapOverlay那么,我现在正在生成MKPolygon这样的叠加层,而不是:

但是,现在mapView:rendererForOverlay根本不再被调用。

0 投票
1 回答
1635 浏览

ios - 在 MKMapView 中创建覆盖当前区域的方形叠加层

如何创建一个覆盖 MKMapView 的当前区域的 Square Overlay。我的 MKMapView 设置了用户当前位置的坐标,但它们是中心坐标。如何计算正方形坐标,以便创建一个完全适合当前视图的正方形叠加层?

多谢你们!

0 投票
1 回答
98 浏览

xcode - 从 SQLite 读取坐标并创建一个 MKPolygon

我找到了很多示例,但仍然无法成功在 MKMapView 上显示动态创建的 MKPolygon。我有一个具有多边形坐标的 SQLite 数据库。我想从 db 中读取坐标,然后创建一个多边形。这应该不难。

首先我正在读取该行,然后我计算记录中的坐标数(dbCount),然后我正在创建一个这样的数组:

然后在 for 循环中,我将坐标填充到 dbCoord 数组中,如下所示:

但 dbCoord 数组不包含所有坐标。recCounter 正在增加每个循环,但该数组中只有一项。

0 投票
1 回答
1450 浏览

ios - MKPolygon 初始化错误“调用中的参数“interiorPolygons”缺少参数”/“调用中的额外参数”

我正在尝试将清单 6-9MKPolygon中 MapKit参考中的 Objective-C 代码转换为 Swift。

当我使用

初始化函数,我得到错误:

调用中缺少参数“interiorPolygons”的参数

当我使用interiorPolygons 参数调用该函数时,出现错误:

通话中的额外参数

这是我正在使用的代码。

更新:

似乎摆脱了编译器错误,但仍然没有添加覆盖。

0 投票
0 回答
248 浏览

ios - MKPolygon 交点

我正在MKmapView像这样绘制一个多边形:

在那之后,我可以拖我的观点。我想知道如何检查多边形上折线的交点(边缘)?

0 投票
1 回答
126 浏览

ios - MKPolygon 中的邮政编码

我正在尝试查找包含在 MKPolygon 叠加层中的邮政编码。我知道找到包含坐标的邮政编码很简单。那么多边形所包含的区域呢?

我正在考虑的几种方法:

  1. 只需使用多边形边界线的坐标中的邮政编码。这种方法的不准确性会随着多边形面积的增加而增加。

  2. 检查多边形边界内的 CGPath 中的点,转换为地图坐标,并获取其邮政编码。虽然您可以检查路径是否包含一个点,但您无法将路径中的各个点转换为坐标(因为它们太多了)。

  3. 获取多边形边界线上的点之一的位置(城市),获取该位置内的所有邮政编码,并检查它们是否与多边形相交。我仍在研究如何实际实施。

非常感谢更多/更好的想法!

0 投票
2 回答
2028 浏览

ios7 - 使用 Swift 的 MKPolygon(调用中的参数“interiorPolygons”缺少参数)

开发人员,我正在尝试在地图视图上实现多边形叠加,如下所示:

出现以下错误:

调用中缺少参数“interiorPolygons”的参数

根据文档: Apple Docu:

可变指针

当函数被声明为采用 UnsafeMutablePointer 参数时,它可以接受以下任何一种:

  • nil,作为空指针传递
  • UnsafeMutablePointer 值
  • 一个 in-out 表达式,其操作数是 Type 类型的存储左值,作为左值的地址传递
  • 一个 in-out [Type] 值,作为指向数组开头的指针传递,并在调用期间延长生命周期

现在我认为我的方法是正确的,提供一个 [CLLocationCoordinate2D] 数组。有没有人遇到过同样的问题并找到了解决方法?

谢谢罗尼

0 投票
2 回答
1514 浏览

ios - 验证 latlong 是否在 iOS 中的 MKPolygon 内

我正在验证 latlong( CLLocationCoordinate2D) 是否在绘制在 MKMapview 上的 MKPolygon 内。

我正在使用下面的代码在 MKMapview 上绘制 MKPolygon,

我正在使用 MKPolygon 验证 latlong,

它在正常情况下工作得很好,但是如果用户像下面这样绘制多边形,即 MKpolygon 有一些相交的点,并且在某些区域填充颜色并且在某些区域清除颜色。

在此处输入图像描述

如果我通过 MKPolygon 内透明颜色部分的 latlong,它应该返回 NO。但是,它返回的是。即,if(CGPathContainsPoint(mpr , NULL, mapPointAsCGP, FALSE))是 TRUE。

当 MKPolygon 之间有交集时,我该如何解决这个问题?如果有人建议在那个清晰的颜色区域填充颜色,那就更好了。任何建议将不胜感激。

0 投票
0 回答
391 浏览

ios - iOS mapkit:MKAnnotationView 不在 MKPolygon 内居中

我有几个MKPolygons我正在使用rendererForOverlay方法覆盖。现在在每个这样的多边形内,我需要显示我的注释视图。

我观察到注释视图位置非常不准确。只有当我完全放大到 MKPolygon 时,我才能看到以 MKPolygon 为中心的注释视图。

我尝试设置MKAnnotationView派生类实例的中心,但无济于事。

我尝试使用 centerOffset 属性,但无济于事。我不确定我可以传递给它什么值以使整个事物以 MKPolygon 为中心。

我正在使用我自己的MKAnnotationView派生子类,而不是在 iOSMKPinAnnotationView等中构建。这是我的 viewforAnnotation 实现:

更新:

事实证明,设置 centerOffset 没有效果。尝试将其设置在内部的不同位置,viewForAnnotation但无济于事。对于任何想知道的人,我有自己的MKAnnotationView子类,我在其中覆盖了centerOffsetsetter。使用 iOS 模拟器 8.0 版进行测试。

0 投票
1 回答
1292 浏览

objective-c - 将 MKPolygon Objective-C 代码转换为 Swift

我有以下 Objective-C 方法:

我尝试将其转换为 Swift:

最后,当调用委托方法时,它实际上并没有overlaymapView. 我什么都看不见。

我假设这是我的self.addPolytonToMap()方法,但我不是 100% 确定。整个场景在我的 Objective-C 项目中运行良好。

更新:

我刚刚注意到,在我的 Objective-C 版本中,points[i].latitude一切正常,但是当我执行以下操作时,我得到了一个奇怪的输出:

println(coordsPointer[i].latitude)

输出:

1.63041663127611e-321

1.64523860065135e-321

1.65511991356818e-321

1.68970450877706e-321

1.7045264781523e-321

1.72922976044436e-321

这可以解释为什么我看不到overlay,但是我的经验UnsafeMutablePointer<>是有限的。