• GeoTools:polygon 转 multipolygon&遍历multipolygon中的polygon


    【GeoTools】polygon 转 multipolygon:https://blog.csdn.net/u013517229/article/details/105790292

    geotools实现多边形的合并:https://blog.csdn.net/qq_18671415/article/details/111033366

    遍历multipolygon中的polygon

    https://www.jianshu.com/p/3906e0617cba

       private MultiPolygon multiPolygonDecrypt(MultiPolygon multiPolygon) {
            //获取geometry中的坐标 这里用string的方式保存
            int geoUnm = multiPolygon.getNumGeometries();  // 一个geometry可能含有n个geometry
            Polygon[] polygons = new Polygon[geoUnm];
            for (int j = 0; j < geoUnm; j++) {
                Polygon singleGeo =(Polygon) multiPolygon.getGeometryN(j); //获取其中每一个geometry
                int numGeometries = singleGeo.getNumGeometries();
                LinearRing exteriorRing = (LinearRing)singleGeo.getExteriorRing();
                int numInteriorRing = singleGeo.getNumInteriorRing();
                LinearRing holes[] = new LinearRing[numInteriorRing];
                for (int k = 0; k < numInteriorRing; k++) {
                    LinearRing interiorRing = (LinearRing)singleGeo.getInteriorRingN(k);
                    holes[k] = interiorRing;
                }
                //int pointCount = singleGeo.getNumPoints();
                Polygon Polygon1 = createPolygon(exteriorRing,holes);
                Polygon1.setSRID(4490);
                //Coordinate[] coords = singleGeo.getCoordinates();
                polygons[j] = Polygon1;
            }
    
           // MultiPolygon _multiPolygon = new MultiPolygon(polygons);
            GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory( null );
            MultiPolygon _multiPolygon = geometryFactory.createMultiPolygon(polygons);
            return _multiPolygon;
        }

    通过上面getdefaultgeometry()->multipolygon强制转换,得到的numGeometry个数不正确。难道是构建方式不对?

    4.3 构建多边形 
    public Polygon createPolygonByWKT() throws ParseException{   
            WKTReader reader = new WKTReader( geometryFactory );   
            Polygon polygon = (Polygon) reader.read("POLYGON((20 10, 30 0, 40 10, 30 20, 20 10))");   
            return polygon;   
        }   
    public MultiPolygon createMulPolygonByWKT() throws ParseException{   
            WKTReader reader = new WKTReader( geometryFactory );   
            MultiPolygon mpolygon = (MultiPolygon) reader.read("MULTIPOLYGON(((40 10, 30 0, 40 10, 30 20, 40 10),(30 10, 30 0, 40 10, 30 20, 30 10)))");   
            return mpolygon;   
        }   
  • 相关阅读:
    CSS基础
    数据库优化之SQL Server
    压力测试与系统调优
    JBoss架构分析
    JBoss基本配置
    深入了解硬盘结构
    EJB2与EJB3架构对比
    JBoss高级配置
    病毒分类及病毒命名规则详解
    深入讲解防火墙的概念原理与实现
  • 原文地址:https://www.cnblogs.com/2008nmj/p/16616061.html
Copyright © 2020-2023  润新知