Поместите маркеры выше ломаной с устаревшими маркерами - PullRequest
0 голосов
/ 17 июня 2019

Как вывести все маркеры выше полилинии. Я использую устаревшие «Маркер» и «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'
...