English 中文(简体)
没有Google图层的MKMapView
原标题:MKMapView without Google Layers

当使用MKMapView时,有没有办法禁用谷歌图层?我打算自己供应所有的瓷砖。

我现在的看法是,我必须选择我的地图使用哪种类型的谷歌数据,但无法完全关闭它。

Update Just to reiterate. I don t want my app to contact Google at all. No map imagery should be received, therefore I d like to think I m not at the whim of their license agreement.

最佳回答

从iOS 7开始,这现在很容易做到。此代码(您可以将其放置在viewDidLoad:方法中)将在应用程序捆绑包中的map tile/文件夹中查找tile:

NSString *baseURL = [[[NSBundle mainBundle] bundleURL] absoluteString];
NSString *template = [baseURL stringByAppendingString:@"map-tiles/{z}/{x}/{y}.png"];
MKTileOverlay *overlay = [[MKTileOverlay alloc] initWithURLTemplate:template];
overlay.canReplaceMapContent = YES;
[self.mapView addOverlay:overlay level:MKOverlayLevelAboveLabels];

此页面提供了有关如何下载OpenStreetMap磁贴以供离线使用的详细信息。

问题回答

这是谷歌API许可协议的一部分。

你永远不能隐藏他们的标志、标签或图像。

即使你使用私人课程做到了这一点,我向你保证你的应用程序将被拒绝。

你唯一能做的就是添加覆盖和引脚。

祝你好运

我认为Craig的问题更多的是“有没有一个类似MKMapView的控件,我可以用来显示我自己的地图和地图块,它可以做MKMapView所做的所有事情(处理从“我的房子”到“整个星球”的缩放,动画滚动到特定的纬度/经度坐标等),但却使用我的内容?”

…答案是否定的,或者至少苹果不提供除MKMapView之外的“地图”控件,而且如果不使用谷歌地图,就无法使用MKMapView。您必须从UIScrollView的一个子类开始,编写自己的方法,或者查看用于显示地图的第三方SDK。

如果您反对使用MKMapView类,因为它是基于谷歌数据的,那么我建议您查看CloudMade作为一个替代地图提供商。他们有自己的SDK和UI控件,非常容易使用。

我已经在另一个stackoverflow问题

虽然更准确地说,它不会阻止谷歌调用(它们很可能仍然存在,因为解决方案涉及更改绘图行为),但您不会看到平铺。

希望它能帮助你。





相关问题
Code sign Error

I have created a new iPhone application.I have two mach machines. I have created the certificate for running application in iPhone in one mac. Can I use the other mac for running the application in ...

ABPersonViewController Usage for displaying contact

Created a View based Project and added a contact to the AddressBook using ABAddressBookRef,ABRecordRef now i wanted to display the added contact ABPersonViewController is the method but how to use in ...

将音频Clips从Peter改为服务器

我不禁要问,那里是否有任何实例表明从Peit向服务器发送音响。 I m不关心电话或SIP风格的解决办法,只是一个简单的袖珍流程......

• 如何将搜查线重新定位?

我正试图把图像放在搜索条左边。 但是,问题始于这里,搜索条线不能重新布署。

热门标签