如何在Android谷歌地图中绘制线(路线)根据传递的坐标

时间:2015-12-14 12:21:18

标签: android google-maps

对每个人都有良好的编码,

我的情况是这样的;

例如我有坐标,让我们说它们是Q,W,E,R,T,Y,U。

我希望在谷歌地图中使用PolylineOptions显示此路线。没关系,但我怎么能实时显示通过的坐标。

例如; Q-W-E-R-T-Y-U是路线并显示蓝线。当我来到“R”时; Q-W-E必须以灰色(不同)线显示。这一定是实时的。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

使用PolylineOptions即可实现这一目标。

首先将颜色保存在XML文件color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="red">#FF0000</color>
    <color name="yellow">#FFFF00</color>
    <color name="green">#00FF00</color>
    <color name="cyan">#00FFFF</color>
    <color name="blue">#0000FF</color>
    <color name="magenta">#FF00FF</color>

    <array name="colors">
        <item>@color/red</item>
        <item>@color/yellow</item>
        <item>@color/green</item>
        <item>@color/cyan</item>
        <item>@color/blue</item>
        <item>@color/magenta</item>
    </array>
</resources>

创建Q,W,E,R,T,Y,U的Latlong对象并将其保存到List然后将其传递给PolylineOptions,如下所示。

 int[] polyColor= context.getResources().getIntArray(R.array.colors);
    for (int i = 0; i < list.size(); i++) {
                LatLng latPoint = list.get(i);
                googleMap.addPolyline(new PolylineOptions()
                .add(latPoint)
                .width(5)
                .color(polyColor[i]));
            }

确保你有比latlong更多的颜色:)

答案 1 :(得分:0)

经过搜索,我认出了这种方法。我不喜欢,但它的工作原理。每次(当前坐标改变),我都记得我的metot。

上面是metot;

public void add(GoogleMap mGoogleMap) {
    PolylineOptions options = new PolylineOptions().width(5).color(Color.BLUE).geodesic(true);
    for (int z = 0; z < list.size(); z++) {
        LatLng point = list.get(z);
        options.add(point);
    }
    mGoogleMap.addPolyline(options);
}

每次,在代码中的某个地方我都将LatLng添加到Arraylist(在代码列表中)并回忆这个方法。这将是实时跟踪。现在可以完成任何其他规格。

但我不喜欢这种逻辑,如果有其他解决方案,请写信。

=)