在java中,如何将文本形式的SQL空间数据多边形转换为PolgonOptions对象?
从Web服务中,我获得字符串格式的多边形,如下所示:在java中,如何将文本形式的SQL空间数据多边形转换为PolgonOptions对象?,java,android,google-maps,geospatial,spatial,Java,Android,Google Maps,Geospatial,Spatial,从Web服务中,我获得字符串格式的多边形,如下所示: POLYGON ((20.073517049032215 30.063606371213439, ... ,20.073517049032215 30.063606371213439)) 我想访问其中的所有lat lng点,并在Android的谷歌地图上绘制,如下所示: map.addPolygon(new PolygonOptions() .add(new LatLng(20.07351704
POLYGON ((20.073517049032215 30.063606371213439, ... ,20.073517049032215 30.063606371213439))
我想访问其中的所有lat lng点,并在Android的谷歌地图上绘制,如下所示:
map.addPolygon(new PolygonOptions()
.add(new LatLng(20.073517049032215, 30.063606371213439), ... ,new LatLng(53.558, 9.927))
我的意思是,我可以以某种方式遍历字符串并将所有LatLng对象排序到一个数组中,但是有没有更干净的方法来实现这一点?对于可能需要此方法的任何其他人,这里有一个不可靠的解决方法。不过,我会尝试更改Web服务
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);
我可以假设您没有控制webservice,因此无法更改其输出以向您发送一个或多个坐标数组吗?如果没有,您将不得不按照您认为的方式执行—将WKT分解为一个数组,并在其中循环。