首页 / 浏览问题 / 云GIS / 问题详情
如果根据数据集的字段进行部分点线的控制
63EXP 2023年08月11日
目前我们有个需求是需要根据行政区域和工程对二维地图中点和线进行显隐控制,涉及到的区域有四十个,每个区域下又有很多个工程,一共工程有两千多个,不可能做两千多个图层,想问下有什么办法可以通过数据集的某个字段来选定对应的点和线进行显隐控制?

1个回答

您好,可以通过对子图层设置过滤条件,生成临时图层实现。具体可以参考博客:https://blog.csdn.net/supermapsupport/article/details/52943780

3,148EXP 2023年08月11日
我们在桌面端的数据要什么要求吗?我们是地图里面制作自定义专题图还是就是保留点和线的图层就好?然后前端那边通过什么方式进行字段过滤?我们全部点或者线都可以在一个数据集或者一个图层里面,全部都由前端子图层通过条件过滤现实吗?
根据具体情况来定,桌面是什么风格,前端过滤之后默认就是什么风格,需要其他风格可以自己设置。我只是根据您的提问给出方案,至于具体是否现实这个问题,我不了解您的具体项目情况我也没法判断。子图层过滤临时图层加载因为没有缓存肯定比直接地图服务(开启地图缓存)要慢。
不是风格问题,地图中使用专题图图层和使用线图层,都不会影响您说的这个方式吗?子图层过滤是个通过数据服务查询字段来过滤的吗?
前面给的博客里面有具体实现过程,您可以先看看呢

那个博客里面有这句话,是不是意味着只是通过条件过滤图层的显隐,并不是过滤图层中的某一段线的显隐?我们希望是全都在一个图层里面,然后根据条件过滤显示图层中的一部分线或者点

所有数据都在原始地图内,展示部分数据时是根据条件过滤生成临时图层出图。
意思我们把所有的点和线放到地图中,默认隐藏然后可以根据条件显示出对应的需要的点和线?比如我们四个点的图层一个线的图层,这个怎么过滤只显示出图层中的某一部分?

博客内都有介绍,

这个不是只能控制子图层的某几个的显隐吗?由于我们数据量大不可能做那个么多子图层,需要是在一个图层里面控制部分的显示
您仔细看下我截图的内容,建议结合api了解每个参数的含义。我圈出来的displayFilter就是设置过滤参数,通过sql语句对子图层进行过滤。
我们前端先试一下,有疑问的话我可以拉个qq或者微信群吗?
有新问题可以在社区重新提问,或者拨打支持热线。

根据博客中的方法,我们前端进行了测试,但是过滤条件并没有生效。部分代码如下,然后第一个图中蓝色的点,我们通过条件过滤之后,发现蓝色的全部隐藏了,我们的条件正确显示应该是部分蓝色的点隐藏才对。

图层不可见是整个图层不可见。正确做法是设置图层可见,过滤需要展示的要素,就像博客那样。
怎么设置图层可见?我们图层默认应该就是可见的,我们第一个图全部都显示出来了,只是通过条件过滤的时候,理想状态是只显示部分符合条件的,但是全部都隐藏了

博客内有展示API参数介绍,请仔细阅读。

好的,那个查询条件的话有长度限制吗?我们估计会有很长的条件查询
没有长度限制。
...