如何在两个位置之间创建阴影折线?

时间:2017-05-09 17:36:21

标签: android google-maps google-polyline

优步在两点之间有一个阴影。他们是如何做到这一点的?我唯一能想到的是在不同的灰色不透明度下创建多条线,但结果并不相同。这是看起来的样子。

    for (int i = 0; i < 6; i++) {
        PolylineOptions testOptions = new PolylineOptions();
        testOptions.strokeWidth(ARC_STROKE_WIDTH - (i * 5));
        if (i == 0) {
            testOptions.strokeColor(Color.GRAY_80);
        } else if (i == 1) {
            testOptions.strokeColor(Color.GRAY_50);
        } else if (i == 2) {
            testOptions.strokeColor(Color.GRAY_40);
        } else if (i == 3) {
            testOptions.strokeColor(Color.GRAY_30);
        } else if (i == 4) {
            testOptions.strokeColor(Color.GRAY_20);
        } else if (i == 5) {
            testOptions.strokeColor(Color.GRAY_10);
        }
        // draw polyline to map
    }

这是一张如何寻找优步的图片 enter image description here

1 个答案:

答案 0 :(得分:1)

老问题,但我想我还是会回答。实现这一目标的一种方法是获得&#34;预测&#34;在屏幕上形成线的两个点的坐标。然后,使用这些值,您可以绘制任何叠加视图(在您的情况下为渐变阴影)。详细说明:

//First do this to get the projected points. 
Point p1 = mMap.getProjection().toScreenLocation(location1);
Point p2 = mMap.getProjection().toScreenLocation(location2);

你需要找到这个&#34;投射&#34;之间的角度。 p1和p2之间的线,以及x轴,然后使用以下内容旋转您的视图或drawable:

Programmatically rotate drawable or view

您还需要投影线的大小来缩放您的绘图以恰好适合两点。

希望这有帮助!