Mapbox iOS在顶部获得注释?

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

[我正在使用我的视图控制器上显示的Mapbox MGLMapView编码iOS应用,在此mapView上,我使用MGLShapeSourceMGLLineStyleLayerMGLPolylineFeature对象绘制路线。

这里是代码:

let newSource = MGLShapeSource(identifier: "polylineBlue", shape: self.polylines, options: nil)
mapView.style?.addSource(newSource)
let newStyle = MGLLineStyleLayer(identifier: "polylineBlueLayer", source: source)
...styling my layer...
mapView.style?.addLayer(newStyle)
source.shape = self.polylines // a MGLPolylineFeature object

非常适合该路线,但有一个问题:出现在我的注释顶部。

我使用常规的mapView函数添加注释:

mapView.addAnnotations([..my MGLPointAnnotation objects...])

我尝试在这里和其他网站上搜索,我只找到一个主题,除了有人说我们无法在注释上设置z图层位置之外,没有其他帮助。

有人知道解决方法吗?我是否必须使用:https://docs.mapbox.com/ios/maps/examples/add-marker-symbol/

如果是,我是否需要为每个注释创建一个MGLSymbolStyleLayer

听起来像是对基本需求的痛苦解决方案...

谢谢!

ios swift annotations mapbox
1个回答
0
投票

在您提供的代码段中,您的注释似乎是MGLPointAnnotations。在这种情况下,您需要使用MGLPointAnnotationsMGLShapeSource添加到MGLShapeSource(initWithIdentifier:shapes:),然后使用此形状源创建MGLSymbolStyleLayer

为了确保注释显示在路线的​​顶部,您需要验证何时添加每个图层,因为在渲染之前将图层“烘焙”到地图中。如果在将路线添加到地图后添加负责注释的MGLSymbolStyleLayer,它们将显示在顶部。如果在路线加载之前添加它们,它们将显示在路线线图层下方。只需要一个MGLSymbolStyleLayer

有关标记和注释的其他信息,请查看Mapbox的文档here

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