QueryTask
QueryTask:用于属性查询和空间查询,可以进行简单统计,只能查询一个图层。思路:
创建需要的对象QueryTask、Query、渲染符号SimpleLineSymbol等。设置查询参数Query执行查询渲染查询结果 示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>QueryTask之属性查询
</title>
<style type="text/css">
.MapClass{
width:100%;
height:600px;
border:1px solid #000;
position: relative;
}
#divShowResult {
display: none;
width: 200px;
height: 100%;
background-color: pink;
position: absolute;
bottom: 1px;
right: 1px;
z-index: 999;
}
</style>
<link rel="stylesheet" type="text/css" href="http://localhost/arcgis_js_api/library/3.17/3.17/dijit/themes/tundra/tundra.css"/>
<link rel="stylesheet" type="text/css" href="http://localhost/arcgis_js_api/library/3.17/3.17/esri/css/esri.css" />
<script type="text/Javascript" src="http://localhost/arcgis_js_api/library/3.17/3.17/init.js"></script>
<script>
require(["esri/map",
"esri/layers/ArcGISDynamicMapServiceLayer",
"dojo/dom",
"dojo/on",
"esri/tasks/QueryTask",
"esri/tasks/query",
"esri/symbols/SimpleLineSymbol",
"esri/symbols/SimpleFillSymbol",
"esri/graphic",
"dojo/domReady!WebGIS/arcgisdemo/blog/查询功能-QueryTask属性查询"],
function (Map, ArcGISDynamicMapServiceLayer,dom, on,
QueryTask, Query,
SimpleLineSymbol,SimpleFillSymbol,Graphic) {
var map = new Map('mapDiv');
var layer = new ArcGISDynamicMapServiceLayer("http://localhost:6080/arcgis/rest/services/TestServer/MyMapService/MapServer");
map.addLayer(layer);
on(dom.byId('btn'), 'click', function (e) {
document.getElementById("divShowResult").style.display = "block";
var queryTask = new QueryTask("http://localhost:6080/arcgis/rest/services/TestServer/MyMapService/MapServer/3");
var query = new Query();
query.where = "name = \'J4\'";
query.outFields = ["*"];
query.returnGeometry = true;
queryTask.execute(query, showQueryResult);
});
function showQueryResult(queryResult) {
var fill = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, new SimpleLineSymbol(SimpleLineSymbol.STYLE_DASH, new dojo.Color([255, 0, 0]), 3));
if (queryResult.features.length === 0) {
dom.byId('divShowResult').innerHTML = "";
return;
}
var htmls = '';
if (queryResult.features.length >= 1) {
htmls += "<table style='width: 100%'>";
htmls += "<tr><td>名称</td></tr>";
for (var i = 0; i < queryResult.features.length; i++) {
var graphic = queryResult.features[i];
graphic.setSymbol(fill);
map.graphics.add(graphic);
var ptName = graphic.attributes['alias'];
htmls += "<tr>";
htmls += "<td>" + ptName + "</td></tr>";
htmls += "</table>";
}
closeAttr = function () {
map.graphics.clear();
document.getElementById("divShowResult").style.display = "none";
}
dom.byId('divShowResult').innerHTML = htmls + "<button id='closeAttr' οnclick='closeAttr()'>关闭</button>";
}
}
});
</script>
</head>
<body>
<div id="mapDiv" class="MapClass">
<div id="divShowResult"></div>
</div>
<input type="button" value="属性查询" id="btn"/>
</body>
</html>
转载请注明原文地址: https://lol.8miu.com/read-30514.html