需求举例:
如果我们有三年的空间数据存放在三个不同图层中,现在通过编写程序设定好了所需要素的属性条件和空间条件,查询出三个图层中满足这些条件的要素,并高亮显示在已有的地理底图中,便于观察对比。所要达到效果如下图(点击放大)所示:
功能思路:
实现这个功能可以有多种方式:
1. 创建新图层,将选中要素复制到新图层中;
2. 将要素转换为element,然后放到grahicscontainer中,单独显示;
3. 创建临时图层SelectionLayer。
这三种方式中,第一种需要创建要素类、设置坐标参数、属性结构等等,还涉及图层之间的要素拷贝,较为麻烦,第二种方式创建不含属性结构的element,代码上简单一些了,但是当查询量非常大的时候element的管理效率不如feature的高,会导致界面刷新缓慢,用户体验较差,第三种方式是常用的查询显示要素的办法,只不过针对多图层的查询需要通过循环创建多个SelectionLayer,但是这种方式执行效率最高,代码实现也比较容易。
功能实现:
首先,将底图图层、存放空间数据的三个图层加载到工程中,然后底图的visible属性设置为true,其他图层设置为false;
然后,编写函数实现根据设置条件选中指定图层中的要素,并通过要素创建SelectionLayer,函数代码如下:
public static I