Маркер Градиент истории рисования - PullRequest
0 голосов
/ 03 марта 2020

Я не уверен, что название вопроса действительно соответствует тому, что я ищу, так или иначе, я хочу добавить к маркеру, который я рисую на моей карте, этот вид истории предыдущей позиции с эффектом градиента, подобным изображение ниже:

enter image description here

Возможно ли это как-то возможно?

Я думал использовать map.addCircle под маркером, но все еще есть проблема градиентного эффекта. Это мой код:

        float heatmapRadius = (float) canvasProjection.getCanvasUnitsFromMeters(1);
        float recencyScore;
        int alpha;

        for (Location location : recentLocations) {
            if (location == null || !location.hasLatitudeAndLongitude()) {
                continue;
            }

            LatLng deviceCenter = new LatLng(location.getLatitude(),location.getLongitude());

            PointF center = getPointFromLocation(location);
            recencyScore = getRecencyScore(location.getTimestamp(), TimeUnit.SECONDS.toMillis(10));
            alpha = (int) (255 * 0.25 * recencyScore);
            historyFillPaint.setAlpha(alpha);
            RadialGradient gradient = new RadialGradient(center.x, center.y, heatmapRadius,
                    new int[]{R.color.md_green_900, Color.TRANSPARENT}, null, Shader.TileMode.CLAMP);
            historyFillPaint.setShader(gradient);

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                map.addCircle(new CircleOptions()
                        .center(deviceCenter)
                        .radius(1)
                        .strokeColor(historyFillPaint.getColor())
                        .fillColor(historyFillPaint.getColor())
                );
            }
        }
...