//空间查询
var tb = new Draw(map);
tb.on("draw-end", doQuery);
registry.forEach(function (d) {
if (d.declaredClass === "dijit.form.Button") {
d.on("click", activateTool);
}
});
var kongjian = document.getElementById("kongjianBTN");
// 实例化查询任务类
xiaobanTask = new esri.tasks.QueryTask(URL + "/4");
linbanTask = new esri.tasks.QueryTask(URL + "/3");
// 实例化查询参数类
query = new esri.tasks.Query();
query.returnGeometry = true;
// 实例化信息模板类
xiaobanInfoTemplate = new esri.InfoTemplate("${林场名}", "林班号: ${林班号}<br/> <br />面积:${面积}<br/> <br />小班号: ${小班号} <br/> <br />公顷蓄积: ${公顷蓄积}m³<br/> <br />年龄: ${年龄}年<br/><br/>平均高: ${平均高}m <br/><br/>平均径: ${平均径}cm<br/><br/>优势树种 :${优势树种}:");
linbanInfoTemplate = new esri.InfoTemplate( "林班号: ${林班号} ");
// 实例化符号类
var redColor = new Color([255, 0, 0]);
var halfFillYellow = new Color([255, 255, 0, 0.5]);
pointSym = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_DIAMOND, 10,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, redColor, 1),
halfFillYellow);
lineSym = new SimpleLineSymbol(SimpleLineSymbol.STYLE_DASHDOT, redColor, 2);
polygonSym = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, redColor, 2),
halfFillYellow);
function activateTool() {
var tool = null;
if (this.label == "取消查询") {
tb.deactivate();
} else {
switch (this.label) {
case "空间查询":
tool = "POLYGON";
break;
}
tb.activate(Draw[tool]);
map.hideZoomSlider();
}
}
function doQuery(evt) {
query.geometry = evt.geometry;
var taskName = document.getElementById("task").value;
var queryTask;
if (taskName === "xiaobanTask") {
queryTask = xiaobanTask;
query.outFields = ["林场名", "林班号", "小班号", "面积", "公顷蓄积", "年龄", "平均高", "郁闭度", "平均径", "优势树种"];
}
else if (taskName === "linbanTask") {
queryTask = linbanTask;
query.outFields = ["林班号"];
}
queryTask.execute(query, showResults);
}
function showResults(featureSet) {
// 清除上一次的高亮显示
map.graphics.clear();
var symbol, infoTemplate;
var taskName = document.getElementById("task").value;
switch (taskName) {
case "linbanTask":
symbol = polygonSym;
infoTemplate = linbanInfoTemplate;
break;
case "xiaobanTask":
symbol = polygonSym;
infoTemplate = xiaobanInfoTemplate;
break;
}
var resultFeatures = featureSet.features;
for (var i = 0, il = resultFeatures.length; i < il; i++) {
// 从featureSet中得到当前地理特征
// 地理特征就是一图形对象
var graphic = resultFeatures[i];
graphic.setSymbol(symbol);
// 设置信息模板
graphic.setInfoTemplate(infoTemplate);
// 在地图的图形图层中增加图形
map.graphics.add(graphic);
}
}