Я относительно новичок в iOS и разработке Mapbox. Я работаю над приложением, в котором пользователь может свободно манипулировать картой, полной сохраненных мест.
Когда они достигают уровня масштабирования, который полностью заполнен географией города, я хотел бы отобразить название города, который они просматривают, в виде баннера, даже если метка города на карте не отображается (как это часто бывает при увеличении масштаба).
Вот скриншот пользовательского интерфейса для контекста.
Я пытаюсь запросить набор мозаики Mapbox для названия города, используя следующий код:
func mapViewRegionIsChanging(_ mapView: MGLMapView) {
let zoomLevel = mapView.zoomLevel
if zoomLevel >= 14.0 {
// layer identifier taken from layer name in Mapbox Studio
let layerIdentifier = "place-city-lg-n"
let screenRect = UIScreen.main.bounds
let cityName = mapView.visibleFeatures(in: screenRect, styleLayerIdentifiers: Set([layerIdentifier]))
print(cityName)
}
Я думаю, что этот код не работает, потому что метка не отображается на экране при указанном уровне масштабирования.
I ' Интересно, лучше ли использовать visibleFeaturesInRect
для моих нужд? Есть ли лучший способ получить название города независимо от видимых элементов и уровня масштабирования?