将多个坐标分成多个latlng googlemap v2

时间:2013-09-17 20:37:20

标签: android latitude-longitude

我在XML标签中有一个巨大的列表,如下所示:

<coor>     -123.3858,41.34119,0
     -123.3856,41.34109,0
     -123.3852,41.34121,0
     -123.3848,41.34139,0</coor>

并且需要这样:

           new LatLng(-123.3858,41.34119),
           new LatLng(-123.3856,41.34109),
           new LatLng(-123.3852,41.34121),
           new LatLng(-123.3848,41.34139),

使用谷歌地图v2 android。

我在坐标上做了一个字符串替换,并得到了正确的结果:

String ll = "),new LatLng(";
coor = coor.replaceAll(",0", ll);

将0替换为新的LatLng(...我不知道如何将大量的latlng文本更改为latlng位置以放入我的多边形:

PolygonOptions perimeteres = new PolygonOptions().add(coor);

有办法做到这一点吗?或者我是否需要将每个分开并将它们单独设置?

EDIT ::::

String[] splitData = coor.split(",0");
                    for (String eachSplit : splitData) {
                        if (!eachSplit.endsWith(",0")) {
                            //Log.e("EACH",eachSplit);
                            Log.v("e","new LatLon("+eachSplit+");");
                        }
                    }

这让我更接近......

1 个答案:

答案 0 :(得分:0)

你完全走错了方向,这个

String ll = "),new LatLng(";
coor = coor.replaceAll(",0", ll);

不同
new LatLng(-123.3858,41.34119)

第一个给你一个不为你做任何事情的字符串,第二个是你需要的对象。

修改

你需要从坐标中删除0,然后在,上进行字符串拆分,这样就有了一系列纬度和经度。

然后创建一个List<LatLng>,这是创建点多边形所需要的

并循环点数

for(int j=0;j<locationAry.length;j++){
    if(j%2 == 0){
        lon = Float.parseFloat(locationAry[j+1]);
        lat = Float.parseFloat(locationAry[j]);

    }
}