为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】:dm8 【操作系统】:win 【CPU】: 【问题描述】*:这边保存了一个多图层的空间数据,现在用dmgeo.ST_Intersects 函数进行比较,提示多图层空间数据无效,也看了相关文档只能进行单空间数据的比较,想问一下多图层空间数据如何操作
你好,我这边在03134283914-20220909-169171-20009 Pack1版本上验证是正常的。您这边可以试一下,脚本如下: sp_init_geo_sys(0); sp_init_geo_sys(1); CREATE TABLE T1_GEOMETRY(C1 sysgeo.ST_Geometry, C2 INTEGER); INSERT INTO T1_GEOMETRY VALUES(sysgeo.dmgeo.ST_MPOLYFROMTEXT(‘MULTIPOLYGON(((10 10,10 20,20 20,20 15,10 10)),((60 60,70 70,70 60,60 60)))’,101), 6); INSERT INTO T1_GEOMETRY VALUES(sysgeo.dmgeo.ST_MPOLYFROMTEXT(‘MULTIPOLYGON(((15 15,10 20,20 20,20 15,15 15)),((50 50,70 70,70 60,50 50)))’,101), 6); commit;
SELECT count(*) from T1_GEOMETRY where dmgeo.ST_Intersects( dmgeo.ST_GeoMFromText(‘POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))’,101), dmgeo.ST_GeoMFromText(dmgeo.ST_AsText(C1),101)) = 1;
如果还有问题,麻烦您这边提供数据库版本和测例,我们在分析下。
你好,我这边在03134283914-20220909-169171-20009 Pack1版本上验证是正常的。您这边可以试一下,脚本如下:
sp_init_geo_sys(0);
sp_init_geo_sys(1);
CREATE TABLE T1_GEOMETRY(C1 sysgeo.ST_Geometry, C2 INTEGER);
INSERT INTO T1_GEOMETRY VALUES(sysgeo.dmgeo.ST_MPOLYFROMTEXT(‘MULTIPOLYGON(((10 10,10 20,20 20,20 15,10 10)),((60 60,70 70,70 60,60 60)))’,101), 6);
INSERT INTO T1_GEOMETRY VALUES(sysgeo.dmgeo.ST_MPOLYFROMTEXT(‘MULTIPOLYGON(((15 15,10 20,20 20,20 15,15 15)),((50 50,70 70,70 60,50 50)))’,101), 6);
commit;
SELECT count(*) from T1_GEOMETRY where dmgeo.ST_Intersects( dmgeo.ST_GeoMFromText(‘POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))’,101), dmgeo.ST_GeoMFromText(dmgeo.ST_AsText(C1),101)) = 1;
如果还有问题,麻烦您这边提供数据库版本和测例,我们在分析下。