作者:yx
前言
前面我们介绍了SuperMap iServer发布的ArcGIS REST 地图服务如何通过ArcGIS API加载,这里呢我们再来看看如何进行要素查询呢?
一、服务发布
SuperMap iServer发布的ArcGIS REST 地图服务如何通过ArcGIS API加载已经介绍如何发布服务,这里不再赘述。
二、代码加载
利用ArcGIS API for JavaScript对该服务进行查询:
<!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>Query State Info without Map</title>
<script src="https://js.arcgis.com/3.34/"></script>
<script>
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);
}
});
</script>
</head>
<body>
</body>
</html>
三、结果验证
浏览器控制台
四、补充
针对有的客户需要实现分页查询的效果,目前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,默认值为最大查询结果记录数(maxRecordCount)。supportsPagination为true,此参数适用
示例:resultRecordCount=10
2、Postman请求调用
通过Postman请求调用结果返回正常