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



从网络服务中,我获得了一个字符串格式的多边形,如下所示:

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

最新更新