作者:yx
前言
前面我们介绍了SuperMap iServer发布的ArcGIS REST 地图服务如何通过ArcGIS API加载,这里呢我们再来看看如何进行要素查询呢?
一、服务发布
SuperMap iServer发布的ArcGIS REST 地图服务如何通过ArcGIS API加载已经介绍如何发布服务,这里不再赘述。
二、代码加载
利用ArcGIS API for JavaScript对该服务进行查询:
Query State Info without Map
require([
"dojo/dom", "dojo/on",
"esri/tasks/query", "esri/tasks/QueryTask", "dojo/domReady!"
], function (dom, on, Query, QueryTask) {
/**
* QueryTask可以用于属性查询,空间查询,但是只能用于单个图层的查询
* 思路:
* 1.创建QueryTask对象
* 2.创建Query对象(为QueryTask设置查询参数)
* 3.执行查询
* 4.显示结果
*/
//创建QueryTask,url为要查询的图层
var queryTask = new QueryTask("http://172.16.15.60:8090/iserver/services/map-Jingjin/arcgisrest/%E4%BA%AC%E6%B4%A5%E5%9C%B0%E5%8C%BA%E5%9C%B0%E5%9B%BE/MapServer/29");
var query = new Query();
query.returnGeometry = true;//不返回几何对象
query.outFields = [];
query.where = "1=1";
//点击按钮执行查询
execute();
function execute () {
queryTask.execute(query, showResults);//执行查询
}
function showResults (results) {//渲染查询结果
console.log(results);
}
});
三、结果验证
浏览器控制台
四、补充
针对有的服务器托管网客户需要实现分页查询的效果,目前11.1.1最新版本也实现了该功能,有需求的用户可以联系支持中心获取包。
1、参数说明
发ArcGIS REST地图服务,然后在请求的ArcGIS图层的url后面加上&resultOffset=1&resultRecordCount=5(如果不加的话,返回全部的内容)
参数1:
名称:resultOffset
类型:int
含义:跳过指定数量的记录并从下一条记录(即 resultOffset + 1)开始获取查询结果。默认值为 0。supportsPagination为true,此参数适用。
示例:resultOffset=50
参数2:
名称:resultRecordCount
类型:int
含义:查询结果中期望返回的结果记录数,该值大于0,默认值为最大查询结果记录数(max服务器托管网RecordCount)。supportsPagination为true,此参数适用
示例:resultRecordCount=10
2、Postman请求调用
通过Postman请求调用结果返回正常
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net