gpt4 book ai didi

ios - 无法在 Mapbox SDK iOS 的 RMMapView 中一层一层地显示两层

转载 作者:行者123 更新时间:2023-11-29 02:18:10 25 4
gpt4 key购买 nike

我有两个 URL 模板(一个是地形,另一个是标签)。所以我需要在 map 图 block 上方显示标签图层(与图层透明)。

我继承自 RMAbstractWebMapSource 并创建了一个类 AxMapKitTileSource,其中覆盖了提供 URL 模板的方法。

这就是我初始化 RMMapView 的方式。我有一个类,我首先像这样进行初始化:

- (void) commonInitializer
{
self.mapView = [[RMMapView alloc] initWithFrame:self.bounds];

self.mapView.autoresizingMask = UIViewAutoresizingFlexibleHeight |
UIViewAutoresizingFlexibleWidth;
[self addSubview:self.mapView];
[self updateTiledLayer: self.tiledLayerMode];
}

在这个方法中,我将图 block 添加到 map View 中:

- (void) updateTiledLayer:(AxMapTiledLayerMode)layerMode
{
[self.mapView removeTileSource:self.mapView.tileSource];

[self.mapView removeTileSource:self.mainTileSourse];
[self.mapView removeTileSource:self.auxTileSourse];

[self.mapView removeAllCachedImages];

self.mainTileSourse = nil;
self.auxTileSourse = nil;

NSString *mainTemplateURL = [[AxMapKitConfiguration sharedInstance] URLTemplateForMainTiledLayerForMode:layerMode];
NSInteger mainLayerZoomCorrection = [[AxMapKitConfiguration sharedInstance] zoomOffsetForMainTiledLayerForMode:layerMode];

if (mainTemplateURL && mainTemplateURL.length > 0) {
self.mainTileSourse = [[AxMapKitTileSource alloc] initWithURLTemplate:mainTemplateURL withZoomCorrection:mainLayerZoomCorrection];

[self.mapView setTileSource:self.mainTileSourse];
}

NSString *auxTemplateURL = [[AxMapKitConfiguration sharedInstance] URLTemplateForAuxTiledLayerForMode:layerMode];
NSInteger auxLayerZoomCorrection = [[AxMapKitConfiguration sharedInstance] zoomOffsetForAuxTiledLayerForMode:layerMode];

if (auxTemplateURL && auxTemplateURL.length > 0) {
self.auxTileSourse = [[AxMapKitTileSource alloc] initWithURLTemplate:auxTemplateURL withZoomCorrection:auxLayerZoomCorrection];

[self.mapView addTileSource:self.auxTileSourse];
}
}

正如我从文档中看到的那样,addTileSource: 应该在当前层之上添加层,但第二层没有出现在 mapView 上。我想,我在这里遇到一些初始化问题 - 你能帮我解决它吗?

最佳答案

用法看起来是正确的。如果您不希望切换任一层的可见性,您可能想要查看的一件事是 RMCompositeSource,它将并行获取并在客户端合成层,缓存结果,并且是一个显示始终可见的图层的更有效方式。

关于ios - 无法在 Mapbox SDK iOS 的 RMMapView 中一层一层地显示两层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28495388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com