0

我在 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);

有没有办法做到这一点?还是我需要将它们分开并使其成为单独的latlng?

编辑::::

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

这让我离得更近了一点……

4

1 回答 1

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]);

    }
}
于 2013-09-17T20:53:16.780 回答