问题标签 [mkoverlay]

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 投票
0 回答
276 浏览

iphone - MKMapKit 六边形或方形叠加

我想用 MKMapKit 在谷歌地图上用六边形或正方形覆盖。不仅仅是一个六边形或正方形,我想使用谷歌地图,就像一个基于瓷砖的地图,在每 1 公里区域内完全覆盖六边形。

我知道如果我在一个进程中进行覆盖,应用程序会崩溃,所以我只想在屏幕的可视部分上进行,但在这种情况下,我很难确定与起点的距离,它没有到达正确的点或六边形在各处的大小不同等。

我的问题:

假设我在可视部分有 1000 个六边形,那么将它们一次以相等距离放置的最佳方法是什么,我应该如何计算?如果我滚动地图,我应该如何计算新的起点。

还是我应该放弃六边形并使用另一种想法?

我希望我能给你一个线索,让你知道我想做什么,任何帮助,任何例子或任何想法都是受欢迎的。

0 投票
0 回答
496 浏览

objective-c - 将渐变设置为 MKCircle

我需要将渐变设置为MKCircles 以便它类似于热图。可能吗?

或者我应该创建一个包含所有圆圈的图像,然后用覆盖将其连接到地图上?

0 投票
1 回答
2003 浏览

iphone - 使用 MKPolyline 和 MKPolylineView 覆盖问题

我使用 addOverlay: 方法向我的 MKMapView 添加了一个叠加层。覆盖是使用 MKPolyline 制作的,并使用 MKPolylineView 进行描边。描边颜色为蓝色,alpha 值为 0.7。

当视图最初加载时,覆盖被正确绘制,但覆盖的周围区域也是蓝色的......当我捏和缩小时,蓝色区域仍然存在,但它会调整到我的新缩放级别。这有点难以描述......但基本上我有一个“法线贴图”的小矩形被困在一个更大的蓝色矩形内。

当我缩小查看整个国家时,它会消失,当我放大时一切正常。

我认为这可能是由于我没有正确实施 MKOverlayProtocol 造成的?

如果有人有任何想法,请按照我的方式提出......

编辑:

下面是创建 MKPolyline 和委托方法的代码。

0 投票
1 回答
411 浏览

ipad - 在 UIMapView 中使用自定义地图图像

我想完成以下任务,我想显示一个静态地图图像,我必须UIMapView使用缩放和注释的好处,我已经非常努力地搜索并且我想出了这些解决方案。

  1. 有一个名为route-me的库,它使您能够自定义地图、更改地图颜色、指定预定义的道路和建筑物、突出显示它们,但这对我的问题没有帮助。
  2. 我看过使用MKOverLay类、HazardMap、KMLViewer 的苹果示例,但它们没有显示如何使用图像将其替换为地图。

我想要的只是显示一个地方的地图图像并在 UIMapView 中使用它。谁能把我引向正确的方向。

提前谢谢。

0 投票
1 回答
2034 浏览

ios - 将 CLLocation 对象转换为 MKMapPoint 结构

我想创建一个MKPolygon显示在MKMapView. 我的问题是我无法弄清楚如何去做。

我知道要创建一个MKPolygon我必须创建一堆MKMapPoint结构并将它们放入一个数组并调用类方法polygonWithPoints

我的问题是我有一个NSArray包含CLLocation具有 coordinate.latitudecoordinate.longitude属性的对象。

如何将其一一转换为MKMapPoint结构?

0 投票
1 回答
602 浏览

objective-c - 绘制许多 MKOverlay 时的性能问题

当我使用 MKOverlays(有时使用 5000 多个单独的 MKPolylines)绘制路径时,要等待很长时间才能绘制所有叠加层,并且每次将地图视图滚动到新区域时,该区域的叠加层都有被绘制,并且还有另一个明显的冻结。

我的困境是我有两组代码,它们都正确地绘制了路径。第一个将路径绘制为一条长线,并且绘制速度非常快。第二个将每个线段绘制为单独的线,并且需要很长时间。

现在,我为什么还要考虑第二种方式?因为我必须分析每条线以查看该线应该是什么颜色。例如,如果线条的title属性是“红色”,那么我将线条设为红色,但如果它是“蓝色”,则将线条设为蓝色。使用第一种技术,这种特异性是不可能的(据我所知,但也许其他人知道不同?)因为路径只是一条大线,并且访问每个单独的段是不可能的。第二种方法很容易,但需要很长时间。

这是我的两组代码:

第一种方式(快速但无法访问单个段):

第二种方式(慢,但我可以用特定颜色绘制每条线):

我的问题是:我可以通过第二种方式为我提供的对每条线路的控制来获得第一种方式的性能吗?

0 投票
1 回答
1236 浏览

objective-c - 带有一个 MKOverlayPathView 的 MKMapView 会导致地图模糊

任何人都可以就以下问题回答这两个问题中的任何一个

1) 如果我根据 MKOverlayPathView 中的 zoomScale 动态调整叠加对象的大小,我如何确保 MKOverlay 协议支持类在不知道 zoomScale 是什么时返回正确的 boundingMapRect?

2) boundingMapRect 太小的副作用是什么?

原来的 ....

我是一个带有一个 MKOverlayPathView 的 MKMapView。将叠加层添加到地图平移和缩放后,底层地图的部分会变得模糊,或者在某些情况下无法下载。覆盖视图本身很好并且焦点集中,它是模糊的地图数据(来自以前的缩放级别)。

如果没有添加叠加层,一切正常。

MKOverlayPathView 是子类,并且有一个点和大小数组,它使用这些点和大小将填充的圆圈绘制到单个叠加层中进行显示。边界矩形由所有点的并集形成,这些点考虑了它们将产生的圆的半径。

那么我错过了什么?是绘图过程,boundingRect还是别的什么?

示例代码:

MapViewController 代码

多集群.h

多集群.m

MKMultiClusterView.h

MKMultiClusterView.m

MKMultiClusterView 里面有一些测试代码,比如未使用的变量和固定的而不是动态的圆大小。它与问题无关(无论圆圈大小是固定的还是可变的,问题仍然存在)。

如果您希望包含更多代码,请发表评论,我会在某个地方将其作为示例项目上传或在此问题中包含相关部分。

相同代码的完全静态实现不会出现问题,使用引入的 alpha 进行更正。那么我可以肯定地说问题出在 boundingMapRect 上吗?

0 投票
1 回答
1421 浏览

ios - MKPolyline polylineWithPoints 错误?

我想显示从我的位置到目的地的路线。我使用了这段代码http://code.google.com/p/octomapkit并添加了一些日志消息。Go 正确获取了路线坐标(大约 103)。他们正在路上并填充从我的位置到目的地的路线,所以谷歌调用和解析元素很好。但是当我想在 MKMapView 中显示时,它只显示开始折线。像15个或20个不多。

我将尝试从上到下发布代码:

原始代码仅采用第一个元素,我在想如果我得到最后一个元素,我会看到其他东西,如果是的话,我将添加所有覆盖 - 这就是 for 循环的原因。

除此以外 : MKPolyline *polyLine = [self.mapView.overlays objectAtIndex:0];

无论是否评论都//[self removeOverlays:self.overlays];没有效果,我希望它会创造更多:) - 但不是。

在里面mapPointCArrayFromJSONString我正确地看到了坐标:

steps肯定有协调的。检查了很多次。

我看不出为什么我的地图上只有第一部分路线,有红线。

有什么建议吗?

0 投票
1 回答
850 浏览

ios - MKOverlayView 性能

我在我的地图中添加了大约 3000 个 MKOverlay,正如您所想象的那样,这需要一段时间,有时长达大约 8 秒。我正在寻找一种使用线程来提高性能的方法,以便用户可以在添加叠加层时移动地图。优选地,将顺序添加覆盖,从地图区域内的覆盖开始。我用 GCD 尝试了一些类似的东西:

但是因为 GCD 块是用void参数和返回类型定义的,所以这段代码不起作用——我得到一个不兼容的指针类型错误return。有什么我在这里遗漏的东西,或者另一种方法来解决这个问题吗?或者也许是一种完全不同的方法来提高叠加添加过程的性能?我感谢任何和所有的帮助!

编辑:

我发现问题在于我在此处实际添加叠加层:

在这里添加所有 3000 可能需要 100 毫秒。需要很长时间的部分(我假设)是我实际创建叠加层的地方,在我展示的第一种方法中。

0 投票
1 回答
183 浏览

objective-c - iphone - 你可以将手机创建的图像添加到 MKOverlay 中吗?

我一直在关注 WWDC 第 127 届会议-使用叠加层自定义地图。他们说您可以从应用程序包或网络获取图像以用作 MKOverlay。我想知道图像是否可以由手机使用它的 API 生成。

有人做过吗?你能提供一个教程吗?

谢谢。

[编辑] 实际上,我还需要一个关于如何将由手机创建或从网络下载的图像添加到地图的教程。我所看到的只是 WWDC 演示,但您需要参加会议的门票,而我显然没有。