ios - 基于平铺矢量的 map iOS

标签 ios vector maps vector-graphics

我正在尝试使用图 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 一个 layerClassCATiledLayer 然后调整整个 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/

相关文章:

c++ - 基于另一个 vector c++中相似性的 vector 的条件平均

c++ - 计算中间 vector 角

javascript - 传单.js : How to remove multiple layers from map

maps - 如何将 shapefile 转换为 map 文件?

android - 如何通过短信作为链接发送谷歌地图位置信息

javascript - 移动 safari 或 chrome 上的屏幕键盘打开时是否会触发任何 javascript 事件?

c++ - 如何将 vector 作为函数参数传递给指针

ios - 使用 KML 文件 Swift 应用程序

iOS Alamofire 停止所有请求

ios - 使用适用于 iOS 的 twitter 框架进行搜索