ArcGIS API for JavaScript 解决identify Task 和QueryTask查询结果限制(1000)问题

需求

利用ArcGIS API for JavaScript进行identify Task或者是QueryTask进行大量查询的时候,发现返回的查询结果最大为1000个,不符合实际的生产需求。

官方说明文档

To prevent queries that request unlimited numbers of features (e.g., empty WHERE statements and statements that are always true), use MaxRecordCount to set the maximum number of features. 
By default, the maximum for ArcGIS Server 10.0 is 1000 features (and 500 features for for ArcGIS Server 9.3).
You can modify this for a specific MapService in its configuration file. For a default windows installation, the file is C:\Program Files\ArcGIS\server\user\cfg\[YourMapService].cfg

解决方法

方法一:
找到arcgis安装目录下你发布的地图文件的 config配置文件(本机:E:\Program Files\ArcGIS\Server10.0\server\user\cfg目录下)
在此文件中修改 节点数值后,重新启动ArcGIS Server Object Manager服务后,即可

方法二:
这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现使用 QueryTask 绘制多边形查询并将查询结果以表格形式返回,需要进行以下步骤: 1. 引入 ArcGIS API For JavaScript 3.X 版本和 Vue 框架。 2. 在 Vue 实例中创建地图,并添加绘图工具和表格。 ```javascript // 创建地图 var map = new esri.Map("map", { basemap: "streets" }); // 添加绘图工具 var tb = new esri.toolbars.Draw(map); tb.on("draw-end", doQuery); // 添加表格 new Vue({ el: '#table', data: { features: [] } }); ``` 3. 在绘制完成后触发 doQuery 函数进行查询。 ```javascript function doQuery(evt) { tb.deactivate(); var query = new esri.tasks.Query(); query.geometry = evt.geometry; query.outFields = ["*"]; // 查询所有字段 var queryTask = new esri.tasks.QueryTask("your service url"); queryTask.execute(query, showResults); // 执行查询 } ``` 4. 在 showResults 函数中处理查询结果,并将结果渲染到表格中。 ```javascript function showResults(featureSet) { var features = featureSet.features; var data = []; for (var i = 0; i < features.length; i++) { var feature = features[i]; var attributes = feature.attributes; var row = []; for (var j in attributes) { row.push(attributes[j]); } data.push(row); } // 渲染表格 var app = new Vue({ el: '#table', data: { features: data } }); } ``` 完整代码示例: ```html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no" /> <title>QueryTask Demo</title> <link rel="stylesheet" href="https://js.arcgis.com/3.38/esri/css/esri.css"> <style> #map { width: 100%; height: 500px; } #table { margin-top: 20px; } </style> </head> <body> <div id="map"></div> <div id="table"> <table> <thead> <tr> <th>Field 1</th> <th>Field 2</th> <th>Field 3</th> </tr> </thead> <tbody> <tr v-for="feature in features"> <td>{{feature[0]}}</td> <td>{{feature[1]}}</td> <td>{{feature[2]}}</td> </tr> </tbody> </table> </div> <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.min.js"></script> <script src="https://js.arcgis.com/3.38/"></script> <script> var map = new esri.Map("map", { basemap: "streets" }); // 添加绘图工具 var tb = new esri.toolbars.Draw(map); tb.on("draw-end", doQuery); // 添加表格 new Vue({ el: '#table', data: { features: [] } }); function doQuery(evt) { tb.deactivate(); var query = new esri.tasks.Query(); query.geometry = evt.geometry; query.outFields = ["*"]; // 查询所有字段 var queryTask = new esri.tasks.QueryTask("your service url"); queryTask.execute(query, showResults); } function showResults(featureSet) { var features = featureSet.features; var data = []; for (var i = 0; i < features.length; i++) { var feature = features[i]; var attributes = feature.attributes; var row = []; for (var j in attributes) { row.push(attributes[j]); } data.push(row); } // 渲染表格 var app = new Vue({ el: '#table', data: { features: data } }); } </script> </body> </html> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值