首页 / 浏览问题 / WebGIS / 问题详情
二维管网怎么如何实现?
63EXP 2023年04月07日
你好,我们之前制作过一个三维的管网,现在想做成二维的,三维我们使用的是场景,二维的话我们一开始使用的是地图,但是发现地图的做的话,无法鼠标点击图上元素来获取属性,并且通过勾画矩形的方式获取到的和矩形内的元素不一致,感觉地图会遇到很多奇葩问题。所以我想问下制作二维管网到底是用地图做比较好还是使用场景做二维的比较好?

1个回答

您好,二维肯定在二维地图中来实现更好,您可以详细具体说下都是遇到的什么问题,

比如您说到的点击,在二维iClient中实现思路比较多,若数据量不大不存在性能问题,可以考虑使用矢量瓦片即可支持要素直接点击,

若数据量很大,还是栅格瓦片才能有良好的性能,也可以加载栅格瓦片,鼠标点击事件里对数据服务进行空间查询,查询到此时点击到的要素,

以方便调用属性或在地图上作为高亮实体打印出来。

希望可以帮助到您。
10,513EXP 2023年04月07日

可是制作的二维地图图上的管网返回给前端不都是成图片的一样的东西吗?

数据服务我们是有的,只是鼠标点击地图时都是图片,无法获取地图服务上的管网元素,获取到的都是图片,获取没法请求数据服务。

您看下是不是我这图层有问题,我是把点和线制作成专题图的?难道我直接把点和线拖进去就可以了吗?

不是一样的,作为矢量图层加载的话,返回来的不是图片而是实体几何要素,所以才可以点击。

看您具体前端用的iClient是什么,具体不同的接口有一点差异,

比如leaflet的话:

https://iclient.supermap.io/examples/leaflet/editor.html#vectorTileLayerNormal

那这个点和线如何做为矢量图层去加载的呢?我们点和线可能会比较多,几千上万的吧。
我们前段根据您的例子试了之后,发现图上元素是能点了,然后iserver没有任何的返回,也不知道这个点的具体属性

有配置好的风格的话按图层或者地图添加就可以,不用一个个几何对象加。

业务实现的话,前端点击isever那边肯定没反应,这个是在前端层面的,

做在iClient前端交互里就行,比如可以做在图层的点击事件里

输出点击的对象和这个demo里点击对象的高亮都是业务代码实现的。

建议您可以专门与熟悉前端业务开发的同事看下这个demo和相关api,来实现你们这边具体的业务功能和iClient的使用

https://iclient.supermap.io/web/apis/leaflet.html

https://iclient.supermap.io/docs/leaflet/TiledVectorLayer.html

感谢感谢,我还想问下我在桌面端应该怎么样做来给前端使用,1、在地图中制作成专题图,2、直接点和线拖到地图中,3、点线拖入到地图中并设置风格。同时怎么通过画矩形来批量勾选图中元素?
桌面端做好的地图直接发布工作空间就可以。

前端实现画矩形勾选的业务的话,建议还是做绘制矩形鼠标点击事件,绘制举行完成后使用矩形对数据进行空间查询,得到查询到的对象的id,

根据对应的对象实现高亮效果。

这个矢量瓦片生成的,会有小黄点,这个怎么去掉呢?

这个矢量瓦片生成后原图层上会有小黄点,这个怎么去掉或者修改?

这个矢量瓦片的的标记,是您的具体数据了,您对照您数据本身和地图找找。
...