ArcGIS for JS、SuperMap for webgl、OpenLayers查询方式总结

本文总结了使用ArcGIS for JS、SuperMap for WebGL+iServer以及OpenLayers+Geoserver+PostGIS进行地图查询的方式。在ArcGIS中,重点介绍了FeatureLayer的属性和空间查询;SuperMap侧重于缓冲区查询;OpenLayers则涉及了WFS服务的多图层空间和属性查询,并利用JSTS进行缓冲区分析。
摘要由CSDN通过智能技术生成

ArcGIS for JS 、Supermap for WebGL+ iServer和OpenLayer+Geoserver的查询方式;

一、ArcGIS for JS

ArcGIS for JS 查询API官方介绍得已经十分清楚,并且有很多相关的Sample Code,所以在此只介绍介绍一下多个FeatureLayer图层的属性和空间查询。

主要使用FeatureLayer.queryFeatures(query, options),Query类,以及dojo/promise/all

Query类定义了查询细节,包括空间查询条件和属性查询条件。

执行FeatureLayer.queryFeatures(query, options)会返回一个异步对象promise,将多个promise放入数组,使用promise/all等待每个图层的查询执行完毕后返回查询结果。

代码:

import Query = require('esri/tasks/support/Query');
import All = require('dojo/promise/all');

const layers = this.sceneView.map.allLayers;
const query = new Query();
query.geometry = geometry;//空间查询条件
//query.where = "STATE_NAME = 'Washington'";//属性查询条件
query.returnGeometry = true;
query.spatialRelationship = 'intersects';
query.outFields = ["*"];//返回字段
let tableresulte = [];
let allpromise = [];//查询异步对象数组
layers.forEach((layer: __esri.FeatureLayer) => {
    const promise = layer.queryFeatures(query);//图层查询异步对象
    allpromise.push(promise);
})
All(allpromise).then((result) => {
   result.forEach(item => {
      if (item.features.length > 0) {
        tableresulte.push({ "layer": item.features[0].layer, "features": item.features });
        }
    })
})

二、超图supermap for webgl+iServer

超图 supermap for webgl ,基于Cesium开源框架。进行多图层的属性和空间查询。iServer版本为10i。

超图的关于三维数据服务的查询就不介绍了。官方例子很清楚了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值