Скрытие имен меток в MapKit при использовании MKTileOverlayRenderer - PullRequest
1 голос
/ 16 июня 2020

Я использую 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

Я знаю, что можно использовать плитку-заполнитель для областей за пределами интересующей области, которые, в принципе, покрывают пустую сетку и названия меток ориентиров. Это проблематично c по 2 причинам:

  • При увеличении / уменьшении масштаба или панорамировании и за доли секунды, необходимые для загрузки плитки, отображается содержимое ниже, которое дезориентирует
  • плитка-заполнитель не смешивается плавно с предоставленными плитками интересующей области, что оставляет зазоры, через которые вы все еще можете видеть пустую сетку и названия меток ориентиров

Для По этим причинам я решил использовать прозрачную плитку-заполнитель.

Есть ли способ скрыть названия меток ориентиров?

1 Ответ

0 голосов
/ 16 июня 2020

Мне не удалось найти способ запретить MapKit отображать имена меток для ориентиров (а свойство canReplaceMapContent скрывает содержимое карты, но не метки), но я понял, почему выходило покрытие за пределами интересующей области. пробелы: исходные плитки имели прозрачность по краям интересующей области.

Способ скрыть названия меток ориентиров состоит в том, чтобы обеспечить цвет solid на краях интересующей области в сгенерированных плитках и использовать плитку-заполнитель с тем же цветом solid для областей за пределами интересующий регион. Таким образом, никаких изменений кода не требуется, просто чтобы регенерировать плитки с цветом solid по краям.

Это все еще имеет проблему с небольшими проблесками на карте при масштабировании, панорамировании, что не очень хорошо, но я не вижу другого пути.

...