-
查询:等同于下搜寻条件,可以输入地图上选择的元素,列表里选择的值或输入值。
-
任务:将建立好的查询执行,搜寻结果会用的FeatureSet回传。
-
的FeatureSet:为搜寻的结果,包含多边形,信息窗口或该区块的表格栏位内容。
FindTask
============
FindTask是在某个地图服务中进行属性查询的功能类,FindTask以FindParameters对象为参数,能查询同一个地图服务的一个或多个图层,并且可以在多个字段中进行查询.DindTask
只能用于属性资讯的查询,在FindTask执行结束后,可以从其回传结果中获取查询的对象来自哪个图层和哪个字段。
###代码上
基本页面
< input type = “ button ” value = “属性查询” id = “ Btn ” / >
< div id = “ divShowResult ” > < / div >
创建属性查询对象并给按钮绑定点击事件
//地图服务的URL
var MapServer = “http://localhost:6080/arcgis/rest/services/Test/MyService/MapServer”;
//创建属性查询对象
var findTask = new FindTask(MapServer);
//创建属性查询参数
var findParams = new FindParameters();
on(dom.byId(“Btn”),“click”,function(){
//是否返回给我们几何信息
findParams.returnGeometry = true;
//对哪一个图层进行属性查询
findParams.layerIds = [1];
//查询的字段
findParams.searchFields = [“name”];
//searchText和searchFields结合使用,即查询name=J4
findParams.searchText = “J4”;
//执行查询对象
findTask.execute(findParams, ShowFindResult);
})
处理属性查询返回给我们的数据
function ShowFindResult(queryResult) {
//创建线符号
var lineSymbol=new SimpleLineSymbol(SimpleLineSymbol.STYLE_DASH, new dojo.Color([255, 0, 0]), 3);
//创建面符号
var fill=new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, lineSymbol);
if (queryResult.length == 0) {
dom.byId(“divShowResult”).innerHTML = “”;
return;
}
var htmls = “”;
if (queryResult.length >= 1) {
htmls = htmls + “<table style=“width: 100%”>”;
htmls = htmls + “名称”;
for (var i = 0; i < queryResult.length; i++) {
//获得图形graphic
var graphic = queryResult[i].feature;
//赋予相应的符号
graphic.setSymbol(fill);
//将graphic添加到地图中,从而实现高亮效果
map.graphics.add(graphic);
//获得教学楼名称(此处是和shp属性表对应的)
var ptName = graphic.attributes[“alias”];
if (i % 2 == 0)
htmls = htmls + “”;
else
htmls = htmls + “<tr bgcolor=”#F0F0F0">";
htmls = htmls + “<a href=”#" “>” + ptName + “”;
htmls = htmls + “”;
}
htmls = htmls + “”;
//将属性绑定在divShowResult上面
dom.byId(“divShowResult”).innerHTML = htmls;
}
}
QueryTask
=============
QueryTask是进行空间和属性查询的功能类,可以在某个地图服务的某个子图层进行查询。
###先决条件
-
有需要查询的图层网址
-
进行查询的过滤条件
###上代码
// 新建QueryTask
var queryTask = new esri.tasks.QueryTask(“http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/0”);
// 新建Query物件
var query = new esri.tasks.Query();
// 是否返回 查詢結果的空間幾何資訊
query.returnGeometry = true;
// 設定要回傳的欄位
// 若要全部欄位皆回傳可輸入[“*”]
query.outFields = [“CITY_NAME”, “STATE_NAME”, “POP1990”];
// 欄位查詢
query.where=“OBJECTID=”+schoolObjecid;
//查询全部
//query.where=“1=1”;
/********
有多重查詢方式:
//字符串查詢:
query.where = “NAME = '” + stateName + “'”;
//數字查詢:
query.where = "POP04 > " + population;
//使用"like"的where子句的縮寫:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后
前端校招精编面试解析大全点击这里获取完整版pdf查看
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后
前端校招精编面试解析大全点击这里获取完整版pdf查看