使用MKTileOverlayRenderer时在MapKit中隐藏标签名称

问题描述 投票:0回答:1

我正在使用MKTileOverlayRenderer通过MapKit渲染自己的图块。在我的瓷砖无法覆盖的区域中,显示了一个空的网格,这正是我要的内容。但是,还会显示所有地点名称(地标标签)。我想将它们隐藏起来,以提供超出瓷砖限制的空白区域。

这就是我初始化mapView的方式:

let overlay = MapOverlay(map: map)  
// MapOverlay is my own subclass of MKTileOverlay, map is a Swift struct including url scheme to retrieve the tiles

overlay.canReplaceMapContent = true 
// I intend to have empty content beyond my tiles

tileRenderer = MKTileOverlayRenderer(tileOverlay: overlay)
mapView.addOverlay(overlay, level: .aboveLabels)
// I want my tiles to be laid over all other content

这是它在MapKit中显示在图块边框周围的方式:enter image description here

我知道有可能将占位图块用于感兴趣区域之外的区域,这些区域原则上将覆盖空网格和地标标签名称。这是有问题的,尽管有两个原因:

  • [放大/缩小或平移时,在一秒钟内加载图块时,它显示下面的内容,这使人迷失方向
  • 占位图块不会与所提供的感兴趣区域的图块无缝融合,从而留下了空白,您仍然可以通过它们看到空的网格和地标标签名称

由于这些原因,我选择使用透明的占位符磁贴。

是否可以隐藏地标标签名称?

ios swift mapkit gis
1个回答
0
投票

我无法找到一种方法来阻止MapKit显示地标的标签名称(canReplaceMapContent属性会隐藏地图内容,但不会隐藏标签),但是我发现了为什么覆盖感兴趣区域之外仍会留下空白:原始图块在感兴趣区域的边缘周围具有透明性。

一种覆盖地标标签名称的方法是在生成的图块中的感兴趣区域的边缘中提供纯色,并对超出感兴趣区域的区域使用具有相同纯色的占位符图块。因此,无需更改代码,只需重新生成边缘周围具有纯色的图块即可。

[在缩放,平移时,仍然会在地图上看到一些细微的问题,虽然不大,但是我无法解决。

© www.soinside.com 2019 - 2024. All rights reserved.