我正在尝试使用图 block 创建一个基于自定义矢量的 map ,就像 iOS 6 map 一样。我见过许多基于栅格 map 的出色解决方案,但到目前为止还没有基于矢量 map 的解决方案。
我在绘图代码中有整个 map ,但遗憾的是它太大而无法在一个文件中使用。我也有 svg。最好是,我想要一个不涉及以另一种格式重新创建整个 map 的解决方案,而且,我更希望该解决方案在 iPhone 上很容易,即不会在 iPhone 上崩溃/执行缓慢。
有没有人有什么想法?
感谢您的帮助,
最佳答案
我认为最好的办法是将 SVG 输出为 [矢量] PDF。这应该是您可以使用用于创建 SVG 的任何软件自动实现的东西。 PDF 的优势在于它是一种矢量格式,iOS 本身就可以理解,并且可以在少量调用中呈现。
然后您可能想要做的是创建一个可以呈现 PDF 的 UIView 的子类。您需要下拉至 relevant Core Graphics C stuff但这并不难实现。随机从互联网上拉一个教程给了我 this one .
如果你给 UIView 一个 layerClass
的 CATiledLayer
然后调整整个 map 的大小并将它放在 ScrollView 中你应该得到完全相同的平铺行为例如 Maps、Safari 等。您不必实现任何特殊的东西 — 如果您捕获 View 的 drawRect:
,您应该看到它只被小部分调用。
不要担心任何关于 CATiledLayer
的旧教程开始引发线程问题 — 根据 QA1637你只被允许以正常的 UIKit 方式实现 drawRect: 并让线程从 iOS 4 开始工作。假设你打算支持 iPhone 5 屏幕分辨率,你无论如何都不能提交超过 4.3 的分辨率,即使你不是'那么我真的不建议您花费精力。
关于ios - 基于平铺矢量的 map iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020767/