欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ArcGIS API for Javascript (六)

程序员文章站 2023-12-26 16:02:03
...

地图查询

1、任务查询 IdentifyTask

IdentifyTask :针对加载在地图上的 属性和空间查询,url不能指定单个图层,必须指定整个服务

引用:

  • 查询任务:IdentifyTask
  • 查询参数:IdentifyParameters
require(["esri/tasks/IdentifyTask","esri/tasks/support/IdentifyParameters"], function(IdentifyTask,IdentifyParameters) {
          var soilURL="查询的服务地址";
          // 为指定的地图服务创建 查询任务
          identifyTask = new IdentifyTask(soilURL);

          //设置查询参数
          params = new IdentifyParameters();
          //查询时点击的容差范围
          params.tolerance = 3;
          //指定查询的图层
          params.layerIds = [0, 1, 2];
          //设置查询的图层 top:最上层 visible:服务可见图层(发布服务时设置的可见图层) all 所有图层(包含不可见图层)
          params.layerOption = "top";
          params.width = view.width;
          params.height = view.height;


          //查询任务执行
		  identifyTask.execute(params)
            .then(function(response) {
              var results = response.results;
              //查询结果
              return results.map(function(result) {
                var feature = result.feature;
                var layerName = result.layerName;
                feature.attributes.layerName = layerName;
                return feature;
              });
            })
            .then(showPopup); 
  
           //查询结果显示
           function showPopup(response) {
            if (response.length > 0) {
              view.popup.open({
                features: response,
                location: event.mapPoint
              });
            }
            document.getElementById("viewDiv").style.cursor = "auto";
          }



});

2、属性查询 FindTask

FindTask:属性查询,不需要加载到地图上进行显示查询

require(["esri/tasks/FindTask","esri/tasks/support/FindParameters"], function(FindTask,FindParameters) { 
       //开启任务
       var find = new FindTask({
          url: "查询的地图服务地址"
        });

        // 设置参数  仅按图层名称和图层字段查询
        var params = new FindParameters({
          //查询图层
          layerIds: [0],
          //查询的字段
          searchFields: ["areaname"]
        });
        
        //执行任务
        find
            .execute(params)
            .then(showResults)
 });

3、 空间属性查询 QueryTask

QueryTask :可进行空间和属性的查询(返回:几何图形Geometry和字段) ,不需要加载到地图上即可进行查询,url 可指定单个图层和多个图层

require([
        "esri/tasks/QueryTask",
        "esri/tasks/support/Query"
      ], function(QueryTask, Query) {
      //设置查询图层
      var qTask = new QueryTask({
          url: peaksUrl
        });
        //设置参数
        var params = new Query({
          //方法几何图形Geometry
          returnGeometry: true,
          //指定返回字段
          outFields: ["*"]
        });
        params.where = "设置查询条件 sql语句";

        //执行任务
        qTask
            .execute(params)
            .then(getResults);

})

声明

1)文章来源项目实践,存在问题或疑问请留言,谢谢!
2)转载请标注来源!

上一篇:

下一篇: