问题标签 [mktileoverlay]

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 回答
871 浏览

map - iOS7 MKTileOverlay Cached(保存缓存的方法?)

我正在开发地图应用程序并考虑在 iOS7 中为 MKTileOverlay 和 MKTileOverlayRenderer 使用新功能。但我用谷歌搜索没有运气。

我找到了这个线程,告诉我做子类化 MKTileOverlay

当mapoverlay可见时隐藏mapview ios7

来自线程的代码:

问题是: [self someHowGetTileImageIntoNSDataBaseOnPath:path]加载 tileData 但如何将 tileData 保存到数据库?

如果我可以从数据库中获取 tileDataresult(tile, nil);是否足以显示覆盖?或者我需要在覆盖后做其他事情loadTileAtPath:result:

谢谢

0 投票
0 回答
354 浏览

ios7 - 无法让 MKTileOverlay 支持 1024 x 1024 大小的图块...

如果我将 MKTileOverlay 的 tileSize 属性设置为 tileSize=CGSizeMake(1024, 1024)。mapViewer 以错误的顺序在整个视图中显示我的图块。我制作了尺寸为 1024 x 1024 的瓷砖。

缩放级别 1 有 4 个 png 切片,缩放级别 2 有 16 个 png 切片,缩放级别 3 有 64 个 png 切片

如果我设置 MKTileOverlay.tileSize=CGSizeMake(256, 256) 并提供 256x256 瓷砖一切正常吗?

可能是什么问题呢?

0 投票
1 回答
599 浏览

ios - MKTileOverlay 缩放级别大于 21

从 iOS 7 开始,我们能够以非常简单的方式为地图设置自定义叠加层。我正在使用自己的图块叠加层,缩放大于 21。MKTileOverlay 类具有属性“maximumZ”,但根据文档:

此属性的默认值为 21。将此属性的值设置为大于默认值的数字并不能保证使用这些额外的缩放级别。

有没有其他选项可以保证我额外的缩放级别?也许使用谷歌地图或其他引擎?

0 投票
0 回答
2030 浏览

ios - 另一个 MKMapView 缩放级别和离线地图

我一直在使用iOS 7 中的MKMapView尝试以编程方式设置和获取缩放级别,以便在我离线时下载和重用地图图块。

由于我无法将整个地图下载到手机中,因此我只下载了适当缩放级别的几个图块,然后我修复了该缩放级别并使用MKTileOverlayMKTileOverlayRenderer等图块。

我尝试使用 Troybrant 的算法(http://troybrant.net/blog/2010/01/set-the-zoom-level-of-an-mkmapview),但对我来说效果不佳。它未能正确建立缩放级别。

所以我创建了一个我自己的,效果很好。

关于我自己的方法的一些解释:

  • 在最大地图缩放级别 (20) 下,您会以 1:1 的比例看到每个地图点。整个地图将有 256*2^20 点。

  • 在视网膜显示器中,地图点和像素之间的比例因子为 2.0。

  • Apple 地图可以将缩放级别从 3 更改为 19(最小和最大)

  • 然后有一个简单的逆规则:

    • 在最大缩放级别下,我们的视图将显示与其拥有的像素一样多的点(对于视网膜显示器,点像素比例因子为 2.0)
    • 如果缩放级别降低,则显示的地图点数量应增加(逆规则)


有了这些信息,想法是设置MKMapView 的 visibleRect属性:

使用该公式,我已经能够将我的地图居中并正确应用到它们的缩放级别。


正如 Troybrant 所做的那样,我使用以下方法创建了一个类别:


我希望这段代码可以帮助到大家。

0 投票
2 回答
2710 浏览

ios - 缓存切片的 MKTileOverlay 子类

您好,我正在使用MKTileOverlay在我的iOS7 App. 现在我想实现缓存这些图块的能力。我在 NSHipster ( http://nshipster.com/mktileoverlay-mkmapsnapshotter-mkdirections/ ) 上看到了一个帖子,并相应地做了。

这是我的 MKTileOverlay 子类:

然后我像这样使用它:

当我启动我的应用程序时,没有加载任何图块。如果我不覆盖我的子类中的 loadTileAtPath 一切正常。我究竟做错了什么 ?

非常感谢。

0 投票
1 回答
2339 浏览

ios - 视网膜显示中来自openstreetmap的图块

通过 MKTileOverlay 从 openstreetmap 显示图块时出现问题;在视网膜显示中,文本和标签是一半大小(比例错误)并且地图不可读。我试图更改tilesize,但是使用不同的值,地图无法正确显示(我看不到512,而tile与128重叠)

在此处输入图像描述

我该如何解决这个问题?

0 投票
2 回答
355 浏览

ios - iOS 7 有没有办法知道 MKTileOverlay 何时完成加载图块?

我想在地图上实现缩放效果(我已经想通了),但是在 MKTileOverlay 完成加载瓷砖之后。无论如何知道这些瓷砖何时完成加载?我已经尝试了所有其他 mapView 方法,似乎没有什么要等到覆盖层加载后再运行。提前致谢。

0 投票
1 回答
1648 浏览

ios - 带有 Retina-Tiles 的 MKTileOverlay

我在 MKMapKit 中加载 512x512px 瓷砖时遇到问题。服务器提供 512x512 .jpeg 切片。

我在 MKMapView 中找不到自定义视网膜图块的任何解决方案或示例实现。

我所做的:

当我将它们加载到 MKMapView 中时

......瓷砖缩放正确,但只有一半被加载(不仅在视觉上 - 我嗅到了请求并且瓷砖丢失了)

... 显示所有图块,但缩放不正确

这是我的绘图方法:

... overlayRenderer.contentScaleFactor 始终为 1 ... 无论 tileSize 是什么(iOS 模拟器 7.1 视网膜)

有什么建议么?

最好的问候,史蒂夫

0 投票
1 回答
1318 浏览

ios - 如何在我的 mapview iOS 7 中使用 OpenLayer (OpenStreetMap) 瓦片

我最近开始研究地图,想知道如何在我的 MKMapView 上实现来自 OpenLayer(我相信 openstreetmap 正在显示的)的图块。默认的 sdk 没有显示足够的细节来做我想做的事情。我可以 ping 服务器以获取磁贴,但我一直看到有关这样做的警告。所以我的两个问题是1)我如何从openlayer获取瓷砖并将它们覆盖在我的地图视图中2)有没有办法提前获取这些瓷砖并将它们存储在我的应用程序中?我只是想绘制一个小区域(价值大约 9 平方英里)。任何建议表示赞赏

0 投票
1 回答
689 浏览

ios - 将 MKTileOverlayPath 转换为 MKMapRect?

我正在使用以下方法:

- (void)loadTileAtPath:(MKTileOverlayPath)path result:(void (^)(NSData *data, NSError *error))result

MKTileOverlayPath 给了我一个 x、y 和 z。我正在尝试沿此路径拍摄该区域的 Apple Maps 版本的快照,以便我可以对图像应用过滤器。

我正在使用 MKMapSnapshotter,但不知道给它什么值来绘制该区域的苹果地图表示。

或者也许还有另一种从该区域获取地图图像的已知方法。