无法更新面要素

0 投票
            while (!recordset.isEOF()) {
                GeoRegion geometry = (GeoRegion)recordset.getGeometry();
                // 判断几何对象是否为空,不为空时对几何对象进行平移操作
                if (!geometry.isEmpty()) {
                    GeoRegion geoRegion = new GeoRegion();
                    for(int a = 0; a < geometry.getPartCount(); a++) {
                        Point2Ds point2ds = geometry.getPart(a);
                        Point2Ds point2dsNew = new Point2Ds();
                        //获取坐标集合
                        for (int i = 0; i < point2ds.getCount(); i++) {
                            Point2D InputPoint = point2ds.getItem(i);
                            offsetDatapoint(InputPoint);
                            Point2D pointNew = new Point2D();
                            pointNew.setX(InputPoint.getX());
                            pointNew.setY(InputPoint.getY());
                            point2dsNew.add(pointNew);
                        }

                        geoRegion.addPart(point2dsNew);
                    }

                    recordsetnew.edit();
                    recordsetnew.addNew(geoRegion);
                    recordsetnew.update();
                    geoRegion.dispose();
                }

                recordset.moveNext();
                geometry.dispose();     //一定要先moveNext再释放Geometry,否则会保存失败
            }

最后添加新的数据集进入scene,发现数据没有更新。  顺带问个问题,shp文件的地理坐标系统在哪获取?

11月 17, 2020 分类:  96次浏览 | 用户: dhr1029 (2 分)
重新分类 11月 17, 2020 用户:jjz

1个回答

0 投票
没有更新是指数据添加没有成功还是,位置没有偏移。这部分需要跟踪代码一步一步看,看看是哪一步出现的问题。

shp数据导入后就是矢量数据集datasetvector,datasetvector.PrjCoordSys属性获取到坐标系
11月 17, 2020 用户: 程逸诗 名扬四海 (4,283 分)
debug了下把edit()删了,添加成功了,还有一个问题,就是怎么修改geometry的要素的坐标系,比如是添加大地坐标系或者地理坐标系,help文档里面没找到怎么获取

geometry本身没有坐标系的说法,将对象添加到地理坐标系的数据集,那它的坐标系就是地理坐标。

你需要是应该是对对象进行投影转换,比如,将地理坐标转换为投影坐标:

CoordSysTranslator..::.Convert 方法里面包含对 对象进行投影转换
...