瓦片矢量地图 iOS

3

我试图创建一个自定义矢量地图,使用类似iOS 6 Maps的瓦片。我已经看到了许多针对栅格地图的伟大解决方案,但迄今为止没有基于矢量地图的解决方案。

我已经将整个地图绘制出来,但不幸的是它太大了,无法在一个文件中使用。我也有svg格式的地图。最好的情况是,我希望找到一种不需要在另一种格式中重新创建整个地图的解决方案,同时,我也希望解决方案对iPhone轻松易用,即不会在其上崩溃/表现缓慢。

有人有什么想法吗?

感谢您的帮助。


代码绘制在哪个方面太大而无法放入一个文件中?你是指如果不进行修改直接执行它,那么处理时间太长,还是说你遇到了某种工具的文件大小错误? - Tommy
生成的代码超过了10,000,000个字符,Xcode在编译时会卡住。 - Simon
1个回答

2
我认为你最好的选择是将SVG输出为[矢量]PDF。这应该是你可以使用创建SVG的任何软件自动实现的。PDF的优点是它是一种矢量格式,iOS本地支持并且可以在少量调用中呈现。
然后,你可能想要创建一个能够呈现PDF的UIView子类。你需要降到适当的Core Graphics C级别,但实现起来并不难。从随机互联网教程中获取教程给我的 this one
如果你给那个UIView一个CATiledLayerlayerClass,然后将其大小设置为整个地图并放置在滚动视图中,你应该会得到与地图、Safari等完全相同的平铺行为。你不必实现任何特殊的功能——如果你捕获了你的视图的drawRect:,你应该会看到它被调用只是小部分。
不要担心任何关于CATiledLayer的旧教程,它们开始引起线程问题 - 根据QA1637,您只需以正常的UIKit方式实现drawRect:并且线程会自动工作,因为iOS 4以后允许这样做。假设您打算支持iPhone 5屏幕分辨率,您无法提交低于4.3的版本,即使您没有打算支持,我也不建议您花费精力。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接