我在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+");");
}
}
这让我更接近......
答案 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]);
}
}