///---------------------------------------------------------- //前置條件:地圖全局變量的名稱為map //功能:對行政區划地圖中的縣城圖層 // 查詢當前操作的縣城 // 通過查詢,使當前地圖視圖為該縣城的范圍,達到縮放至圖層的效果 require(["dojo/parser", "dijit/registry", 'dojo/on', "dojo/dom", "esri/map", "esri/layers/ArcGISDynamicMapServiceLayer", "esri/tasks/FindTask", "esri/tasks/FindParameters", "esri/symbols/SimpleLineSymbol", "esri/symbols/SimpleFillSymbol", "esri/graphic", "dojo/domReady!"], function (parser, registry, on, dom, Map, ArcGISDynamicMapServiceLayer, FindTask, FindParameters, SimpleLineSymbol, SimpleFillSymbol) { //parser.parse(); var findTask = new FindTask("http://localhost:6080/arcgis/rest/services/henan/MapServer"); var FindParameters = new FindParameters(); var xzFieldName = ["xxx"];//字段名稱 var xzFieldValue = "xxxx";//縣名 on(dom.byId("BtnSetExtent"), "click", FindByField); //對字段進行查詢 function FindByField() { FindParameters.returnGeometry = true; FindParameters.layerIds = [0]; FindParameters.searchFields = xzFieldName; FindParameters.searchText = xzFieldValue; findTask.execute(FindParameters, ShowFindResult); //alert("3"); } //屬性查詢結果處理 function ShowFindResult(queryResult) { if (queryResult.length > 0) { var feature = queryResult[0].feature;//[0].feature; //創建線符號 var lineSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([54, 141, 58]), 2); //創建面符號 var fill = new SimpleFillSymbol(SimpleFillSymbol.STYLE_NULL, lineSymbol); //賦予相應的符號 feature.setSymbol(fill); pMap.graphics.clear(); pMap.graphics.add(feature); var sGeometry = feature.geometry; var ftGeoExt = sGeometry.getExtent(); pMap.setExtent(ftGeoExt); } } });