我对 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)
}
我认为此代码不起作用,因为标签不在指定缩放级别的屏幕上。
我想知道 usingvisibleFeaturesInRect
是否是满足我需要的最佳方法 - 是否有更好的方法来检索城市名称,而不管可见元素和缩放级别如何?