Почему динамически добавленные символы отображаются в Mapbox серым цветом

Когда я нажимаю на экран, маркер добавляется в середину карты Mapbox. Первый маркер появляется, как и положено. Однако как только я добавляю второй маркер, маркеры становятся серыми.

Первый маркер  Второй маркер делает их серыми

Вот код, который я использую для создания источника символа и слоя символа, а также onMapClickListener, в котором функции источника символа обновляются с новым маркером. Весь этот код находится в методе onStyleLoaded.

            //Create the symbol source
            Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_map_marker_blue, null);
            Bitmap marker = BitmapUtils.getBitmapFromDrawable(drawable);
            style.addImage(BLUE_MARKER_IMAGE, marker);
            GeoJsonSource geoJsonSourceSymbol = new GeoJsonSource(SYMBOL_SOURCE_ID);
            style.addSource(geoJsonSourceSymbol);

            //Create the symbol layer
            symbolLayer = new SymbolLayer(SYMBOL_LAYER_ID, SYMBOL_SOURCE_ID);
            symbolLayer.setProperties(iconImage(BLUE_MARKER_IMAGE), iconOffset(new Float[] {0f, -10f}));
            style.addLayer(symbolLayer);

            mapboxMap.addOnMapClickListener(new MapboxMap.OnMapClickListener() {
                @Override
                public boolean onMapClick(@NonNull LatLng point) {

                    final LatLng mapTargetLatLng = mapboxMap.getCameraPosition().target;
                    Point mapTarget = Point.fromLngLat(mapTargetLatLng.getLongitude(),mapTargetLatLng.getLatitude());
                    pointList.add(mapTarget);
                    featureList.add(Feature.fromGeometry(mapTarget));

                    if (style.getLayer(SYMBOL_LAYER_ID) != null) {
                        GeoJsonSource geoJsonSourceSymbol = style.getSourceAs(SYMBOL_SOURCE_ID);
                        if (geoJsonSourceSymbol != null) {
                            geoJsonSourceSymbol.setGeoJson(FeatureCollection.fromFeatures(featureList));
                        }
                    }

                    return true;
                }
            });

Я что-то делаю неправильно или невозможно динамически добавлять символы с помощью стиля, управляемого данными?


person Jonasvle    schedule 01.02.2020    source источник


Ответы (1)


Вы пользуетесь эмулятором? Команда Mapbox уже знает SymbolLayer проблемы с рендерингом на эмулируемых устройствах:

https://github.com/mapbox/mapbox-gl-native/issues/10829

https://github.com/mapbox/mapbox-plugins-android/issues/1082

person langsmith    schedule 01.02.2020