例子中用这段代码做到绘制自由面,要怎么把绘制的面图层转成shp文件,并创建一个数据表插入几个字段值呢?
mMapControl.setAction(Action.DRAWPLOYGON); layers.get("UserRegion@Changchun").setEditable(true);
1.绘制自由面是在数据集中绘制的?我看mobilegis的例子是先画面,再通过监听来设置数据集的。没看到在哪里创建的数据集啊?
/** * 对象添加监听 */ GeometryAddedListener geometryAddedListener = new GeometryAddedListener() { @Override public void geometryAdded(GeometryEvent Event) { //当点击提交时,才进行数据存储 if ((mMapControl.getAction().equals(Action.CREATEPOINT) || mMapControl.getAction().equals(Action.CREATEPOLYLINE) || mMapControl.getAction().equals(Action.CREATEPOLYGON) || mMapControl.getAction().equals(Action.DRAWLINE) || mMapControl.getAction().equals(Action.DRAWPLOYGON)) && isFlag) { tmpeditdataset = (DatasetVector) Event.getLayer().getDataset(); int[] a = {Event.getID()}; recordset = tmpeditdataset.query(a, CursorType.DYNAMIC); } } };
我之前用的是将绘制的线对象放在跟踪图层上显示,直接通过构造几何对象,但是和现在需求不一致;所以现在想用action来创建几何图层,数据集已经创建了,在layers.get("Surface" + autoIncrement + "@" + Constants.mapName).setEditable(true);这一步报空指针了,@符号前面是数据集名字,@符号后面是数据源名字,有什么问题吗?