在java中,如何将文本形式的SQL空间数据多边形转换为PolgonOptions对象?

在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

从Web服务中,我获得字符串格式的多边形,如下所示:

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分解为一个数组,并在其中循环。