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