iPhone 的 MapKit 是不是可以叠加平铺
Posted
技术标签:
【中文标题】iPhone 的 MapKit 是不是可以叠加平铺【英文标题】:Are tile overlays possible with the iPhone's MapKitiPhone 的 MapKit 是否可以叠加平铺 【发布时间】:2011-01-28 18:57:34 【问题描述】:我已经设置了用于 Google Maps javascript API 的磁贴源。我正在尝试将其翻译为与 iPhone MapKit 一起使用。我已将 javascript 缩放级别正确实现到 mapkit 中。每当调用- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
时,我都会根据同一中心点将该区域捕捉到最近的缩放级别。
是否有可能使用 CATiledLayer 实现一个解决方案来实现一个平铺解决方案。 iPhone 是否像谷歌地图一样使用标准的 256x256 瓷砖?对此的任何指导或帮助将不胜感激。如果不可能的话,我宁愿不要浪费几个星期来尝试实现它。
【问题讨论】:
您介意进一步详细说明您是如何完成此任务的吗?我正在尝试做同样的事情。 【参考方案1】:FWIW,我花了很多时间寻找合适的解决方案……在深入研究 CATiledLayer 示例之前,我注意到 MKOverlay 和 MKOverlayView — 这是 ios 4 中的新功能,可以直接插入 MKMapView。
找不到使用 MKOverlays 提取任意图像数据(例如,来自远程切片服务器的 UIImages)的良好示例实现,但我对 API 进行了足够的修改,直到我让它工作为止。
构建一个简单的示例实现,以防任何人(如我)想要参考:
http://github.com/mtigas/iOS-MapLayerDemo
希望这对将来的人有所帮助。
【讨论】:
【参考方案2】:MapKit 没有提供太多自定义图块源的方式(事实上,它完全没有提供任何自定义源:您要么使用 Google 地图,要么不使用)。不过,我自己也遇到过类似的问题,我发现 RouteMe 是自定义地图的一个很好的解决方案:http://code.google.com/p/route-me/
内置支持 OpenStreetMaps、OpenAerialMaps(目前离线)、Virtual Earth 和 Yahoo Maps,但该框架也可以很容易地插入您自己的图块源。
【讨论】:
感谢您的回答。实际上,我现在有一个基于 MapKit 的平铺解决方案。我的解决方案实际上需要一个映射提供程序,因为我只有覆盖。如果有什么事情发生,我会考虑在 Yahoo Maps 中使用 route-me。【参考方案3】:是的,从 iOS 7 开始,MKTileOverlay 就可以了:
https://developer.apple.com/library/ios/documentation/MapKit/Reference/MKTileOverlay_class/Reference/Reference.html
【讨论】:
以上是关于iPhone 的 MapKit 是不是可以叠加平铺的主要内容,如果未能解决你的问题,请参考以下文章
在 UIScrollView 的 tiledlayer 上方叠加图像