为啥 MKTileOverlay initWithURLTemplate: 模板返回 nil?

Posted

技术标签:

【中文标题】为啥 MKTileOverlay initWithURLTemplate: 模板返回 nil?【英文标题】:Why MKTileOverlay initWithURLTemplate: template returns nil?为什么 MKTileOverlay initWithURLTemplate: 模板返回 nil? 【发布时间】:2014-09-16 06:01:53 【问题描述】:

我有如下代码:

- (void)viewDidLoad

[super viewDidLoad];

NSString* template = [NSString stringWithFormat: @"http://my-map-server.com/?mode=tile&tilemode=gmap&tile=x+y+z"] ;

MKTileOverlay * overlay = [[MKTileOverlay alloc] initWithURLTemplate:template]; //returns nil
overlay.canReplaceMapContent = NO;

[mainMap addOverlay:overlay1 level:MKOverlayLevelAboveLabels];


为什么[[MKTileOverlay alloc] initWithURLTemplate:template] 返回nil 值?我找不到任何合理的解决方案。类似的代码适用于我的其他项目。

【问题讨论】:

【参考方案1】:

此模板字符串应包含xyzscale 占位符字符串,以便于创建用于请求相应图块的 URL。

如果您将scale 添加到您的模板中,您会得到相同的结果吗?

【讨论】:

以上是关于为啥 MKTileOverlay initWithURLTemplate: 模板返回 nil?的主要内容,如果未能解决你的问题,请参考以下文章

缓存切片的 MKTileOverlay 子类

iOS 13.2 MKTileOverlay 偶尔不会渲染

子类化 MKTileOverlay 的困难

将 MKTileOverlay 与 MKPolyLine 一起使用

MKTileOverlay - 添加捆绑瓷砖

带有 MTiles 数据库的 MKTileOverlay