首页 / 浏览问题 / 组件GIS / 问题详情
iobject类型转换
29EXP 2017年07月12日
请问一下,iobjects中数据的类型转换在哪儿?就是属性数据可以转为点数据,,点可以转换为线数据的那个工具

1个回答

您好,这个没有直接的接口哈,您可以按如下方式实现这些功能。

属性转点:

1.新建一个点数据集。

2.读取属性数据的字段值,主要是X,Y,用其来构造点对象GeoPoint(Point2D)。

3.获取新建的点数据集的属性表,使用属性表Recordset.AddNew(Geometry)方法,来实现将构造好的点对象加入到点数据集中。

点转线:

1.新建一个线数据集。

2.用点来构造线对象Geoline(Point2Ds)。

3.获取新建的线数据集的属性表,使用属性表Recordset.AddNew(Geometry)方法,来实现将构造好的线对象加入到线数据集中。
5,985EXP 2017年07月12日
属性集转点的时候,那属性集中的除了x,y之外的其他属性能不能一同添加到点数据集中呢
当然是可以的,所以你还需要对点数据集新建字段,用来存放这些属性。
public boolean addNew(Geometry geometry,
                      java.util.Map<java.lang.String,java.lang.Object> values)

用这个方法,把属性表中的其他属性添加到点集中去?

这样也是可以的

那你的意思是我直接建立geopoint的时候就可以把其他属性添加上?应该不行吧。。gepoint只是单纯的geometry吧GeoPoint(double x, double y) 

您可以使用public boolean addNew(Geometry geometry)这个方法加点,同时可以使用Recordset.SetFieldValue() 方法给这个点对象的属性字段赋值。

好吧,大概明白了,生成一个点,添加属性,然后再生成一个点。咱们能把数据库中的表格自动生成属性表吗?我记得,oracle数据库中的表数据,应该和oracle能识别的属性表数据不一样吧
的确是不一样的,所以你需要读你oracle中相关表的字段和字段值
意思大概明白了,也就是说,我只能通过连接数据库的方式把表数据读出来,建立超图能识别的矢量数据。然后放入到数据库中。。不能通过datasourceConnectionInfo.setEngineType(EngineType.ORACLEPLUS);这种方式连接,直接读取数据库中的表格数据
我这边建议的是先建立Oracle数据源(对应一个数据库或者说Oracle的一个用户),然后在Oracle数据源中创建数据集。
嗯呐,我就是这样做的呀,建了数据源,建了数据集,接着才能把oracle中的表数据转换成空间数据导入到数据集中呀,对吧,我的意思就是说,对于数据库中普通的表结构,只能通过普通的数据库连接处理,不同通过ORACLEPLUS进行连接处理,因为普通的表结构supermap识别不了
是这样的
多谢啦,我先试试看
...