首页 / 浏览问题 / 桌面GIS / 问题详情
iDesktop生成postgre数据源时如何生成专用的地理信息字段
256EXP 2022年04月07日
在iDesktop中创建postgreSQL数据源,往里面添加点线面数据的时候,能否还原出postgreSQL的地理数据自带的geometry字段geom

目的是希望通过iDesktop保存到postgreSQL的数据集可以通过postgre的SQL语句,获取地理信息

例如

WHERE ST_Intersects(ST_SETSRID(ST_POINT(139.0,36.0), 4326), geom) LIMIT 1;

1个回答

您好,
您创建的点线面是在idesktop中创建还是在数据库中直接创建的?

idesktop中创建的 postgre 数据库型数据源已经包含SM*一类的属性字段,也包含SmGeometry的空间属性字段,但是数据库中创建的只有空间属性字段而不包含SM*。建议在桌面添加点线面后再SQL获取地理信息。

希望能够帮助到您!
2,199EXP 2022年04月08日
您好,点线面有从原本postgresql里导入的,也有在iDesktop里新建的

保存到postgresql里之后,SmGeometry空间属性字段的形式是bytea,无法直接对应到postgresql的geometry,

现在想要在尽量不修改原本sql的情况下,让从iDesktop保存到postgresql里的数据集能够对应postgresql的sql语言

例子就是之前说的“WHERE ST_Intersects(ST_SETSRID(ST_POINT(139.0,36.0), 4326), geom) LIMIT 1;”

里面的geom无法用SmGeometry字段代用,

请问有没有解决办法
没有,首先就是要保证创建得字段属性一致。
也就是说无法通过点的xy坐标或者线面的SmGeometry去生成postgresql能用的geometry吧?
字段类型不同,不可以。
...