【发布时间】:2019-10-03 04:39:17
【问题描述】:
我需要找到一种方法将标记从 MGLPointAnnotation 转换为 MGLShapeSource 或类似的,以便将标记添加到地图图层并完全控制如何在地图上显示和聚集它们,例如.
我正在使用 MapBox SDK v5.2 构建一个 iOS 应用程序。
该应用程序在内部生成标记(标题、副标题、坐标和图标图像名称),并且在点击时标记会显示在地图上并带有标注。标记使用MGLPointAnnotation() 创建并使用mapView.addAnnotation() 添加到地图中。
但为了完全控制标记的显示方式,例如根据缩放级别对它们进行聚类或打开/关闭它们,我需要将标记添加到地图图层,例如使用 @987654326 @ 然后是 style.addSource() 和 style.addLayer()。
问题是我找不到从MGLPointAnnotation 到MGLShapeSource 或类似的转换器的方法。
我对此进行了调查,但我能想到的唯一解决方案是将标记信息包含在GeoJSON 文件中。但我想避免这种情况,因为标记是在应用程序运行时在应用程序内生成的,而不是从外部只读 GeoJSON 文件中生成的。
如何创建单个 poi 的示例:
let poi1 = MGLPointAnnotation()
poi1.coordinate = CLLocationCoordinate2D(latitude: 38.788534, longitude: -9.494489)
poi1.title = "poi1"
poi1.subtitle = "This is the text for poi1"
poiTitleImage[poi1.title!] = "icon1"
mapView.addAnnotation(poi1)
【问题讨论】:
标签: ios mapbox-ios