Как вывести все маркеры выше полилинии. Я использую устаревшие «Маркер» и «LineManager» для рисования маркера и полилинии.
Я думаю, что со слоями это возможно, но сейчас мне сложно переключиться, есть ли что-нибудь с «маркером»?
Вот так я могу добавить маркер и полилинию
LatLng latLng = new LatLng(mLatLngList.get(i).getLatituede(), mLatLngList.get(i).getLongitude());
MarkerOptions markerOptions = new MarkerOptions().position(latLng).icon(icon).setTitle(cabList.get(i).getCabId());
Marker marker = mMapboxMap.addMarker(markerOptions);
mMapboxMap.setStyle(new Style.Builder().fromUrl(getString(R.string.mapbox_style_url_light)), style -> {
mLineManager = new LineManager(mMapView, mapboxMap, style);
LineOptions lineOptions = new LineOptions()
.withLatLngs(points)
.withLineJoin(Property.LINE_JOIN_ROUND)
.withLineColor(ColorUtils.colorToRgbaString(getResources().getColor(R.color.colorPrimary)))
.withLineWidth(4.0f);
mMapBoxLines = mLineManager.create(lineOptions);
});
Я даже пытался вручную удалить слой линии и добавить слой под символом, но это не сработало.
SymbolLayer symbolLayer = (SymbolLayer) mMapboxMap.getStyle().getLayer("mapbox-android-symbol-layer");
LineLayer lineLayer = (LineLayer) mMapboxMap.getStyle().getLayer("mapbox-android-line-layer");
mMapboxMap.getStyle().removeLayer(lineLayer);
mMapboxMap.getStyle().addLayerBelow(lineLayer, symbolLayer.getSourceId());
implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:7.0.0'
implementation 'com.mapbox.mapboxsdk:mapbox-sdk-services:4.3.0'
implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v7:0.4.0'