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

ios - 在覆盖瓷砖ios7时关闭视图时MKMapView崩溃

因此,我有一个具有不同位置的表格视图,以模态方式呈现另一个带有地图视图的视图控制器。我在地图顶部添加自定义图块,但如果我在地图视图仍在加载图块时关闭视图控制器并打开另一个位置,我的应用程序将崩溃。这只发生在我取消注释 addOverlay 瓦片方法时。

关于为什么会发生这种情况的任何建议?

0 投票
1 回答
1054 浏览

ios - iOS 7 中的 MKTileOverlay 与 mbtiles 数据库

有没有一种方法可以直接将 mbtiles 数据库与 MKTileOverlay 一起使用,而无需使用 MapBox 或其他任何第三方框架?

现在,我将图块存储在文件夹结构中,我使用的代码如下:

但现在我想要一个tiles.mbtiles sqlite 数据库而不是文件夹中的文件。

请建议我该怎么做。如果我选择使用 sqlite 数据库,如何初始化 MKTileOverlay 对象。我将如何放置 {x},{y},{z}。

我浏览了 MKTileOverlay 的文档,发现:

可以使用,但我无法理解如何使用它?如果有人可以请给ma一个简短的例子,那将非常有帮助。

0 投票
0 回答
581 浏览

ios7 - iOS7:磁贴大小大于 256 的 MKTileOverlayRenderer

我想将 512x512 像素的自定义地图图块与 MKTileOverlay/MKTileOverlayRenderer 一起使用。我的自定义 MKTileOverlayRenderer 绘制每个框架的边框如下所示:

瓦片大小是这样设置的:

这适用于例如 128 或 256 的图块大小。但是对于 512(或更大)的大小,每个图块之间存在“未使用”空间,并且图块大小保持在 256 像素,如下图所示:

平铺大小为 512 像素

如何绘制完整的 512 像素图块?

0 投票
1 回答
237 浏览

ios - 为什么 MKTileOverlay initWithURLTemplate: 模板返回 nil?

我有如下代码:

为什么[[MKTileOverlay alloc] initWithURLTemplate:template]是返回nil值?我找不到任何合理的解决方案。类似的代码适用于我的其他项目。

0 投票
2 回答
785 浏览

ios - MapKit 覆盖以将平面图添加到地图

我正在尝试向 iOS MapKit 添加叠加层以显示平面图。但是,我不确定这样做的最佳方法。如果我使用 MKOverlay 添加平面图,是否会延迟加载平面图,或者我是否需要找出正在显示地图的哪一部分并在之后更新叠加层?我还研究了使用 MKTileOverlay,因为它使用延迟加载,但我的印象是它应该用于完全覆盖地图,而不仅仅是添加到现有地图。这个对吗?

0 投票
1 回答
1167 浏览

ios - 子类化的 MKTileOverlay 不在地图上显示

我正在尝试从我们的 WMS 服务器显示 WMS 磁贴。我用旧的实现了这一点,MKOverlay但我现在正在尝试更新它以使用MKTileOverlay但我无法让瓷砖显示。这是我的课:

我正在为磁贴请求生成 URL:

我正在取回数据(它与我对MKOverlay有效的旧类进行的 URL 调用相同)并且该类正在传回数据。但是没有绘制瓷砖。我这样创建类:

并实现了方法mapView:rendererForOverlay:

我究竟做错了什么?

0 投票
2 回答
889 浏览

objective-c - MapKit:添加 MKPolyline 隐藏 MKTileOverlay

MKMapView正在使用MKTileOverlay来自本地数据库的显示图块。它工作正常。
然后我用来MKDirections获取两个坐标之间的方向并像这样绘制路线:

但是当我放大看这条线时,它看起来没有平铺背景(通常从MKTileOverlay(存储到self.tileOverlay)加载)。我加入了图像以看得更好。

我还制作了这段代码来渲染叠加层:

就像渲染线的“瓷砖”隐藏从MKTileOverlay. 我如何:
- 指定我的MKPolyline覆盖必须是透明的?
- 重新加载背景图块?

截图:

看到带线条的瓷砖没有背景了 http://sigmanet.ch/tmp/screen.png

0 投票
1 回答
407 浏览

ios - MKTilelOverlay 中的 NSCache

我正在尝试向NSCache我的子MKTileOverlay类添加一个:

}

但是我从来没有看到从缓存中获取切片(我从来没有看到日志消息“找到缓存切片!!!!!!”)。

我可能做错了什么?

编辑:我添加了日志信息

我添加了一堆日志记录。我检查是否创建了缓存,以及它是否与我在查找图块时引用的缓存相同。我还检查了数据是否已添加到缓存中,并在添加后立即找到:

0 投票
0 回答
1381 浏览

ios - 使用 MKTileOverlay 时如何高效地保存和加载离线地图

我想显示并缓存地图图块以供从所选服务(例如 Open Street Maps)中离线使用。这似乎很容易,因为iOS7它可以使用:

在我的MKTileOverLay子类中,我重写loadTileAtPath:result:了下载磁贴并将它们保存到磁盘以供离线使用。后面我会实现一个方法让用户选择下载地图的哪个部分:

这完全符合我的预期,并将图像保存到适当命名的文件夹中:

在此处输入图像描述

现在,这里真正的问题是三个方面:

  • 将磁贴保存到磁盘,然后在离线时将它们加载回来是个好主意吗?还是应该将它们保存在 SQL Lite DB 之类的东西中?
  • 貌似图块是自动加载的MapKit,为什么要第二次下载loadTitleAtPath:呢?有没有办法得到MKMapView已经加载的瓷砖?
  • 什么是允许用户选择他们想要下载地图的哪些部分以及地图级别的好方法(忽略我在这里是如何做到的,那是为了测试)?所有缩放级别都高于当前缩放级别的当前矩形?
0 投票
1 回答
1400 浏览

ios - 快速的 MKTileoverlay 问题

我对 iOS 开发很陌生,并且在使用 MapKit 时遇到了问题。

我正在尝试创建一个简单的应用程序来将光栅图像覆盖到使用 mapkit 创建的地图上。

这是我的 tabViewcontroller 的代码:

还有我的 rendererForOverlay 的代码

在我的示例中,如果我使用 OpenStreetMap 链接,我的叠加层还可以,但如果我使用自己的图块,它就不再工作了。我已经使用 gdal 生成了我的图块,当我尝试在 safari 上将它们可视化时,似乎还可以。这是可视化我的图块的链接:MyMap

我不明白为什么它们没有显示在我的应用程序中?