ArcGIS API for Javascript (六)

地图查询

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)
 });

4系列 FindTask局限性:

  • 1、3D图层不能进行查询
  • 2、动态图层不能查询(此处经验证:使用属性表连接的图层,查询不到需要的数据结果,动态服务是可以进行查询的)
    在这里插入图片描述

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)转载请标注来源!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值