从网络服务中,我获得了一个字符串格式的多边形,如下所示:
POLYGON ((20.073517049032215 30.063606371213439, ... ,20.073517049032215 30.063606371213439))
我想访问其中所有的纬度液化点,并在Android的GoogleMap上绘制它,如下所示:
map.addPolygon(new PolygonOptions()
.add(new LatLng(20.073517049032215, 30.063606371213439), ... ,new LatLng(53.558, 9.927))
我的意思是我可以以某种方式遍历字符串并将所有 LatLng 对象排序到一个数组中,但是有没有一种"更干净"的方法来实现这一点?
对于可能需要这个的其他任何人,这里有一个狡猾的解决方法。不过,我会尝试更改网络服务。
ArrayList<LatLng> polylist = new ArrayList<>();
String[] parts = news.getArea().replace("POLYGON ((","").replace("))","").split("(?<!\\), ");
for(String part : parts){
String[] subpart = part.split(" ");
polylist.add(new LatLng(Double.parseDouble(subpart[1]), Double.parseDouble(subpart[0])));
}
PolygonOptions polygonOptions = new PolygonOptions();
for(LatLng latLng : polylist){
polygonOptions.add(latLng);
}
map.addPolygon(polygonOptions);