首页 / 浏览问题 / 云GIS / 问题详情
tiledMapLayer不能正常加载,imageMapLayer能正常加载
2EXP 2023年04月28日

使用产品:isever 10i、iserver 11i

操作系统:win10 x64

数据类型:人大金仓V8R6

一、运行环境

1、GIS工具 、

(1)supermap 10i desktop 、supermap 10i iserver , 服务端口 8090

(2)supermap 11i desktop 、supermap 11i iserver

(3)geoserver 2.18.2 , 服务端口 8091

2、数据库

(1)人大金仓数据库 V8R6 ,详细版本信息如下

KingbaseES V008R006C005B0023 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit POSTGIS="3.1.2 3.1.0alpha2-435-g2aa56cae2" [EXTENSION] PGSQL="120" GEOS="3.9.1dev-CAPI-1.14.1" PROJ="Rel. 5.2.0, September 15th, 2018" LIBXML="2.9.1" LIBJSON="0.12.1" LIBPROTOBUF="1.3.3" WAGYU="0.5.0 (Internal)"

以上软件均安装在局域网(软件间均可互通访问)

二、具体问题

1、利用supermap 10i 或 11i 分别发布读取 人大金仓里面的空间表,发布为wms图层(wms1.1.1 和 wms1.3.0) (图1)

2、使用 L.supermap.imageMapLayer 可以正常加载完数据,而使用 L.supermap.tileMapLayer 则不能正常加载完数据 (图2和图3)

3、使用desktopmap 读取对应数据能正常完全显示,然而使用desktop 读取 iserver 发布的wms服务就不能正常显示完整了(图4)

4、使用geoserver 2.18.2 接入同一个数据源(人大金仓) ,发布为wms服务,可以正常加载完数据(图5)

对于上面的问题,比较困惑,为什么会有这个情况。

三、过程截图

图1

图2

图3

图4

图5

1个回答

您好,tileMapLayer出图时会基于数据集本身的范围。

建议您在使用iDesktop中,连接数据库型数据源,将将面数据集添加到地图中,进行几何对象的编辑后(增、删、改),

在数据集右键,依次 重新计算范围-重新计算面积和周长-重建空间索引,然后保存地图,保存工作空间。

iserver和浏览器如果开启了缓存的话,注意清下缓存。

希望可以帮助到您。

10,758EXP 2023年04月28日
谢谢你的回复,但是您的回复不能解决我目前的问题。

我在补充下我的使用场景。

1、数据建库(SQL建库,然后通过idesktop 发布为 wms 图层服务。)

2、写入数据(在实际场景中,我是通过PG函数写入数据,我上面提到使用idesktop 写入数据,是发现idesktop 写入数据依旧有这个问题)

3、应用对接(leaflet 加载 发布的wms 地图),发现更新的图斑,不能正常显示。

另外实际测试中我发现,重新发布wms 地图服务,使用TileMapLayer不能正常显示的数据能正常显示了。

但是在实际应用下,不可能每次一更新数据 ,都发布图层吧。

(所以你提到重新计算范围、重新计算面积、重新空间索引也一样,不符合我们实际使用场景)

至于你提到的iserver 的缓存,我们也注意到了。

在之前开启缓存(UGC缓存)的时候,我看了iserver的缓存目录( iserver安装目录/ webapps/iserver/output/cache 、 iserver安装目录/ webapps/iserver/output/cache_t) ,发现有的级别的缓存的确没生成出来,怀疑此问题和iserver 服务缓存有关,服务端也没有日志。

我们目前已经关了iserver 缓存,但是也有问题。
我们们现在先定位问题,你现在对数据集重新计算范围、重新计算面积、重新空间索引后,发布的wms服务使用 TileMapLayer 正常吗?

还有就是我们iserver层面或者iDesktop层面都是不建议用数据库函数直接编辑,存在并非所有的空间数据的关联表都进行了正常正确的更新。

我们的数据库型数据源,增加几何数据时并非只是在几何数据表里加了一条几何数据。

数据编辑的环节,一般是只建议在具有sdx引擎内的产品去添加的,比如iDesktop、iobject组件、iserver数据服务的rest api,

数据库直接写入在我们产品层面是不可预知不可控的。
...