【问题标题】:Drawing polygons on google Map using array[] - Android使用数组 [] 在谷歌地图上绘制多边形 - Android
【发布时间】:2014-04-02 16:38:11
【问题描述】:

我正在尝试根据数组列表在 Google 地图上绘制一个多边形。首先检查数组长度然后我手动添加点来绘制多边形。下面的代码工作正常。

由于.add(new LatLng(array[0].a, array[0].b)) 是单行语句,我无法循环它。

有什么办法可以循环执行。

private void drawpolygon(DistanceInfo  array[]) {

    int lengh = array.length;
    if(lengh==2){
        mMap.addPolygon(new PolygonOptions()
            .add(new LatLng(9.6632139, 80.0133258))
        .add(new LatLng(array[0].a, array[0].b))
        .add(new LatLng(array[1].a, array[1].b))
       .fillColor(Color.GRAY)); 
    }
    else if(lengh==4){
        mMap.addPolygon(new PolygonOptions()

        .add(new LatLng(9.6632139, 80.0133258))
        .add(new LatLng(array[0].a, array[0].b))
        .add(new LatLng(array[1].a, array[1].b))
        .add(new LatLng(array[2].a, array[2].b))
        .add(new LatLng(array[3].a, array[3].b))
       .fillColor(Color.GRAY));
    }
}

【问题讨论】:

    标签: java android arrays google-maps


    【解决方案1】:

    试试

    private void drawpolygon(DistanceInfo  array[]) {
    
        int length = array.length;
    
        // Optional length checks. Modify yourself.
        if(length == 0) 
        {
           // Do whatever you like then get out. Do not run the following.
           return;
        }
    
        // We have a length of not 0 so...    
        PolygonOptions poly = new PolygonOptions();
        poly.fillColor(Color.GRAY);
    
        // Initial point
        poly.add(new LatLng(9.6632139, 80.0133258);
    
        // ... then the rest.
        for(int i = 0; i < length; i++)
        {
            poly.add(new LatLng(array[i].a, array[i].b));
        }
    
        // Done! Add to map.
        mMap.addPolygon(poly);
    }
    

    请注意,这允许 array[] 为任意长度(0 除外)。请添加您自己的代码进行长度检查:)

    【讨论】:

    • 其实;您的初始点 (9.6632139, 80.0133258) 是否会在作为索引 0 的参数中传递的数组中?因为如果是这样,那么删除线 poly.add(new LatLng(9.6632139, 80.0133258); 一起。
    • @Losin'Me 你的回答很好,只有以某种好的格式排列。为您的代码 +1
    猜你喜欢
    • 1970-01-01
    • 2012-05-31
    • 2011-01-20
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    相关资源
    最近更新 更多