Android Mapbox: сбой анимации при обновлении источника / слоя - PullRequest
0 голосов
/ 29 мая 2020

Я использую android mapbox, чтобы показать карту. Каждый раз, когда node обновляется, мне нужно изменить его положение и анимировать внешний вид:

private void drawNode(Node node) {
    mapboxMap.getStyle(style -> {
        String layerId = "test-layer";
        String sourceId = "test-source";
        style.removeLayer(layerId);
        style.removeSource(sourceId);
        Geometry geometry = com.mapbox.geojson.Point.fromLngLat(node.getLongitude(), node.getLatitude());
        style.addSource(new GeoJsonSource(sourceId, geometry));
        if(style.getLayer(layerId) == null) {
            PropertyValue[] values = new PropertyValue[] {
                    PropertyFactory.circleColor(getColor(R.color.colorAccent)),
                    PropertyFactory.circleRadius(0f),
                    PropertyFactory.circleOpacity(0.5f),
            };
            style.addLayer(new CircleLayer(layerId, sourceId).withProperties(values));
        }
        Layer layer = style.getLayer(layerId);
        ValueAnimator animator = ValueAnimator.ofFloat(0f, 12f);
        animator.setDuration(3000);
        animator.addUpdateListener(animation -> layer.setProperties(PropertyFactory.circleRadius((float) animation.getAnimatedValue())));
        animator.start();
    });
}

Результат будет следующим:

glitch

Перед запуском анимации произошел сбой. Как это можно исправить?

Примечание : В конце концов решил это, добавив слой и источник с идентификатором, который отличается от предыдущего вызова метода.

...