android - Mapbox SymbolLayer 隐藏标记

标签 android kotlin mapbox mapbox-android mapbox-marker

我使用符号图层在 map 上绘制一堆点:

var imgId = R.drawable.ic_route_stop

        var featureCollection = FeatureCollection.fromFeatures(mSelectedBusStops!!.map { stop ->
            Feature.fromGeometry(com.mapbox.geojson.Point.fromLngLat(
                    stop.Lon.toDouble(),
                    stop.Lat.toDouble()))
        });
        map?.addSource(
                GeoJsonSource(mMarkerSourceIdentifier,
                        featureCollection,
                        GeoJsonOptions()
                ))

        val image = BitmapFactory.decodeResource(activity?.resources, imgId)
        map?.addImage(mMarkerImgIdentifier, image)

        var layer = SymbolLayer(mMarkerStyleLayerIdentifier, mMarkerSourceIdentifier)
        layer.setProperties(PropertyFactory.iconImage(mMarkerImgIdentifier),
                PropertyFactory.iconAllowOverlap(true))
        map?.addLayer(layer)

在此之后我在 map 中添加了几个标记(这些标记需要定期动画)

mSelectedBusCurrentStops?.forEach { stop ->
                (map ?: return).addMarker(MarkerOptions()
                        .icon(icon)
                        .position(LatLng(stop.lat, stop.lon)))
            }

这里重要的部分是标记,我后来添加的,这些标记应该始终可见。但是我的符号层隐藏了标记图标,我需要将标记放在前面。有什么办法可以解决吗?

原来是这样

enter image description here

最佳答案

您需要将 SymbolLayer 定位在层堆栈中标记层的下方。您可以使用 map?.addLayerBelow(layer, "com.mapbox.annotations.points") 实现。

关于android - Mapbox SymbolLayer 隐藏标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51496447/

相关文章:

javascript - Mapbox 标记 - 一层上的动态标记

java - Mapbox OfflineRegionObserver 监听器注销

android - 无法使用 Superpowered 库为 arm64-v8a 创建 so 文件

android - 图库选择器在 Android 10 上返回带有文件方案的 Uri,如何读取它?

Android SIP API - SipAudioCall.Listener.onRingingBack() 之后,如何听到任何等待的声音

java - 标记一个 fun/property 仅在 Kotlin/Java 中使用

kotlin - 如何修改调用扩展函数的对象本身?

android - MapBox:着色器编译失败:错误:有效的 GLSL 但不是 GLSL ES

android - Realm,在字符串列表中搜索

android - 如何在 Android 应用程序的 Facebook 开发者控制台添加多个类名