FindTask查询
 
Findtask:用于属性查询,可以查询多个图层,不能进行空间查询思路: 
  创建需要的对象FindTask、FindParameters、渲染符号SimpleLineSymbol等。设置查询参数FindParameters执行查询渲染查询结果 示例代码:注意findtask可以实现精确查找(完全匹配),:contains参数决定是否查找搜索文本的完全匹配。如果为true,则搜索包含提供的searchText的值。这是不区分大小写的搜索。如果为false,则搜索searchText字符串的完全匹配项。精确匹配是区分大小写的。 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>查询功能
</title>
    <style>
        #mapDiv {
            width: 100%;
            height: 600px;
            border: 1px solid #000;
        }
    </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/on",
                "dojo/dom",
                "esri/tasks/FindTask",
                "esri/tasks/FindParameters",
                "esri/symbols/SimpleLineSymbol",
                "esri/symbols/SimpleFillSymbol",
                "esri/graphic",
                "dojo/domReady!],
            function (Map, ArcGISDynamicMapServiceLayer,on,dom,
                      FindTask, FindParameters,
                      SimpleLineSymbol,SimpleFillSymbol,Graphic){
                var map = new Map('mapDiv');
                
                var MapServer = "http://localhost:6080/arcgis/rest/services/TestServer/MyMapService/MapServer";
                var layer = new ArcGISDynamicMapServiceLayer(MapServer);
                map.addLayer(layer);
                
                
                var findTask = new FindTask(MapServer);
                
                var findParams = new FindParameters();
                on(dom.byId('btn'), 'click', function () {
                    
                    findParams.returnGeometry =true;
                    
                    findParams.layerIds = [3];
                    
                    findParams.searchFields = ['name'];
                    
                    findParams.searchText = 'J4';
                    
                    findTask.execute(findParams, ShowFindResult);
                    
                });
                
                function ShowFindResult(queryResult) {
                    
                    var lineSymbol = new SimpleLineSymbol("solid", new dojo.Color([255, 0, 0]), 2);
                    
                    var fill = new SimpleFillSymbol("solid", lineSymbol, new dojo.Color("#87CEEB"));
                    console.log(queryResult);
                    if (queryResult.length === 0) {
                        dom.byId('divShowResult').innerHTML = "";
                        return;
                    }
                    var htmls = "";
                    if (queryResult.length >= 1) {
                        htmls = htmls + "<table style='width: 100%;'>";
                        htmls = htmls + "<tr><td>名称</td></tr>";
                        console.log(htmls);
                        for (var i = 0; i < queryResult.length; i++) {
                            
                            var graphic = queryResult[i].feature;
                            
                            console.log(graphic.geometry.type === "polygon");
                            
                            graphic.setSymbol(fill);
                            
                            map.graphics.add(graphic);
                            
                            var ptName = graphic.attributes["alias"];
                            if (i % 2 === 0) {
                                htmls = htmls + "<tr>";
                            }else {
                                htmls = htmls + "<tr bgcolor='#F0F0F0'>";
                            }
                            htmls = htmls + "<td><a href='#'>" + ptName + "</a></td>";
                            htmls = htmls + "</tr>";
                        }
                        htmls = htmls + "</table>";
                        dom.byId('divShowResult').innerHTML = htmls;
                    }
                }
            });
    </script>
</head>
<body>
<div id="mapDiv"></div>
<input type="button" value="属性查询" id="btn">
<div id="divShowResult"></div>
</body>
</html>