14

我已经设置了与 Google Maps JavaScript API 一起使用的磁贴源。我正在尝试将其翻译为与 iPhone MapKit 一起使用。我已将 javascript 缩放级别正确实现到 mapkit 中。每当- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated调用时,我都会根据同一中心点将该区域捕捉到最近的缩放级别。

是否有可能使用 CATiledLayer 实现一个解决方案来实现一个平铺解决方案。iPhone 是否像谷歌地图一样使用标准的 256x256 瓷砖?对此的任何指导或帮助将不胜感激。如果不可能的话,我宁愿不要浪费几个星期来尝试实现这一点。

4

3 回答 3

12

FWIW,我花了很多时间寻找一个体面的解决方案……在深入研究 CATiledLayer 示例之前,我注意到 MKOverlay 和 MKOverlayView——它们是 iOS 4 中的新功能,可以直接插入 MKMapView。

找不到使用 MKOverlays 提取任意图像数据(例如,来自远程切片服务器的 UIImages)的良好示例实现,但我对 API 进行了足够的修改,直到我让它工作为止。

构建了一个简单的示例实现,以防任何人(如我)想要参考:

http://github.com/mtigas/iOS-MapLayerDemo

希望这对将来的人有所帮助。

于 2010-08-11T09:12:51.803 回答
5

MapKit 没有提供太多自定义图块源的方式(事实上,它完全没有提供任何自定义源:您要么使用谷歌地图,要么不使用)。不过,我自己也遇到过类似的问题,我发现 RouteMe 是自定义地图的一个很好的解决方案: http ://code.google.com/p/route-me/

内置支持 OpenStreetMaps、OpenAerialMaps(目前离线)、Virtual Earth 和 Yahoo Maps,但该框架也可以很容易地插入您自己的图块源。

于 2010-03-21T06:29:11.570 回答
3

是的,从 iOS 7 开始,MKTileOverlay 可以:

https://developer.apple.com/library/ios/documentation/MapKit/Reference/MKTileOverlay_class/Reference/Reference.html

于 2013-10-02T21:17:27.830 回答