arcgis JS 空间查询

本文详细介绍了如何使用ArcGIS JavaScript API进行空间查询,涵盖了基础的几何操作、图层查询、缓冲区分析等内容,助你实现地图上的精准数据筛选与分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//空间查询
          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);
              }
          }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值