所以我使用GMSSyncTileLayer的子类为iOS上的谷歌地图添加了一个自定义平铺覆盖。我遇到的问题是,谷歌在地图上的本地标签(例如建筑物,街道等的名称)被放置在我的瓷砖覆盖之上,并且在视觉上干扰了我的瓷砖图像。我看到GMSSyncTileLayer
有一个zIndex
属性,但这似乎只影响一个覆盖相对于另一个覆盖的位置,而不是覆盖相对于本地地图文本的位置。
是否有某种方法可以将平铺覆盖带到正前方,甚至在本地地图文本的前面?如果没有,我会提交一个功能请求,但我想先在这里检查一下,是否我只是错过了一些东西。
no。内在顺序是不可改变的,它是IIRC(!):
- 覆盖
- 标记
我对功能请求的想法:
也许顺序不应该仅仅由zindex来定义,而应该由windows、mac和x-window上的窗口级别
来控制。它定义了特定元素的基索引是什么…例如,这里有4个级别:
- 地图级别 <
- 覆盖水平/gh><
- 文本水平/gh><
- 标记水平/gh>
的任何gmoverlay,你可以设置它的水平。如果没有指定,它将像现在一样工作。
GMSMarker *marker = [GMSMarker markerWithDefaults];
NSLog(@"%@", marker.overlayLevel);
==> '4' GMSOverlayLevelMarkers
marker.level = GMSOverlayLevelMap
NSLog(@"%@", marker.overlayLevel);
==> '4' GMSOverlayLevelMap
==> it would be behind text and overlays
可以。
您可以使用[yourMapView setMapType:kGMSTypeNone]
禁用背景地图。这也会提高你的叠加下载性能,因为背景贴图不会被下载。