arcgis js 4.10 图属查询方法有三种:query、find、identify
1. 对比
方法 | 范围 | 查询模式 | 输入参数 |
---|
identify | map service(多图层)查询 | 模糊查询 | 图形(字符串) |
find | map service(单层单字段、单层多字段、多层多字段)查询 | 模糊查询 | 属性(字符串) |
query | 单个图层查询 | 精确查询 | 图形(几何)、属性(字符串) |
2. 使用
2.1. Identify
view?.on("click", event => {
let { mapPoint } = event;
var identifyTask = new IdentifyTask({ url: basics.clickQueryUrl });
var params = new IdentifyParameters();
//容差
params.tolerance = 6;
//是否返回几何信息
params.returnGeometry = true;
//空间查询的图层
params.layerIds = [0, 1, 2, 3, 4];
//指定使用“标识”时要使用的图层。
params.layerOption = "all";
params.geometry = mapPoint;
params.width = view.width;
params.height = view.height;
params.mapExtent = view.extent;
params.spatialReference = view.spatialReference;
identifyTask.execute(params).then(res => {
console.log(res);
})
})
2.2 Find
//属性查询(find)
function findTask(LayerIds,searchFields,searchText,sr) {
//定义属性查询对象,注意他的参数是整个地图服务,而不是单个图层
let findTask=new FindTask(mapServiceUrl.BOUA);
//定义属性查询参数对象
let findParms=new FindParameters();
//是否返回几何信息
findParms.returnGeometry=true;
//属性查询的图层
findParms.layerIds=LayerIds;
//属性查询的字段
findParms.searchFields=searchFields;
//属性查询的关键字
findParms.searchText=searchText;
//执行属性查询
if(sr==='showResults'){
findTask.execute(findParms).then(showQueryResult);
}else if(sr==='removeResults'){
findTask.execute(findParms).then(removeQueryResult);
}
}
2.3 Query
//属性查询(Query)
function AttriQuery(layerUrl, where, sr) {
let queryTask = new QueryTask({
url: layerUrl
});
let query = new Query();
query.returnGeometry = true;
query.outFields = ["*"];
query.where = where;
queryTask.execute(query).then(function (results) {
//创建面符号
let fill = simpleSymbolConstructor('fill');
if (results.features.length > 0) {
let graphics=[];
$.each(results.features, function (i, feature) {
//获得图形graphic
let graphic = feature;
//设置图形的符号
graphic.symbol = fill;
graphics.push(graphic);
});
view.graphics.addMany(graphics)
}
});
}
//空间查询(Query)
function SpatialQuery(layerUrl, queryGeom, spatialRelationship) {
let queryTask = new QueryTask({
url: layerUrl
});
let query = new Query();
query.geometry = queryGeom;
query.spatialRelationship = spatialRelationship;//default "intersects"
query.returnGeometry = true;
query.outFields = ["*"];
queryTask.execute(query).then(function (response) {
console.log(response.features);
});
}
文章版权声明:除非注明,否则均为
譬如朝露_策温技术开发工作室博客原创文章,转载或复制请以超链接形式并注明出处。
发表评论
侧栏公告
寄语
譬如朝露博客是一个分享前端知识的网站,联系方式11523518。
热评文章
标签列表
热门文章
友情链接