# new QueryFeauresOptions(options)
单图层要素查询参数。支持的服务类型:IGS要素服务、IGS地图服务、IGS地图文档mrfs 、IGS矢量图层gdbp 、IGS场景服务、IGS资源服务、ArcGIS地图服务、ArcGIS要素服务
参数:
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
options |
Object | 构造参数 |
|
method |
String | FetchMethod.get | 请求类型 |
headers |
Object | undefined | 请求头参数 |
|
responseType |
String | 返回数据的类型,目前可设置'blob' |
|
layerId |
String | 图层id,当为IGS要素服务、IGS地图服务、IGS场景服务、ArcGIS地图服务、ArcGIS要素服务时,此参数必传 |
|
gdbp |
String | gdbp地址,仅当服务为IGS矢量图层gdbp时,此参数必传。当服务为IGS资源服务时,必须传入gdbp、mapSource、filePath参数之一,保证能拿到图层信息。 |
|
mapSource |
Object | 地图文档的资源,例如{"url":"/root/wuhan.mapx", "mapIndex": 0, "layerId": "1"} 。仅当服务为IGS资源服务时,必须传入gdbp、mapSource、filePath参数之一,保证能拿到图层信息。 |
|
filePath |
String | 图层资源的路径。仅当服务为IGS资源服务时,必须传入gdbp、mapSource、filePath参数之一,保证能拿到图层信息。 |
|
where |
String | undefined | where查询语句,例如 |
|
outFields |
String | undefined | 输出属性字段,可为*表示所有,多个用英文逗号分隔 |
|
objectIds |
String | undefined | 过滤id,多个用英文逗号分隔(参数优先级很高,可能导致其它筛选条件失效) |
|
geometry |
Geometry | undefined | 要素查询几何条件。目前IGS支持Point|LineString|Circle|Extent|Polygon|MultiPolygon几种类型,ArcGIS支持Point|MultiPoint|LineString|MultiLineString|Extent|Polygon几种类型 |
|
geometryPrecision |
Number | undefined | 返回要素几何信息中坐标xy的精度,仅支持整数,输入1表示查询出的要素坐标只保留一位小数 |
|
spatialRel |
SpatialRelation | String | SpatialReleation.intersects | 几何条件的空间判定规则,Intersects(相交)、EnvelopeIntersects(外包矩形相交)、Contains(包含)、Disjoint(相离,ArcGIS服务不支持) |
orderByFields |
String | 排序字段,格式: fieldName [ASC|DESC]。例如 |
|
returnGeometry |
Boolean | true | 是否返回几何,默认为true |
returnAttribute |
Boolean | true | 是否返回属性,默认为true |
returnStyle |
Boolean | false | 是否返回图形参数信息,默认为false |
outStatistics |
Array.<OutStatistic> | Array.<Object> | undefined | 计算一个或多个基于字段的统计信息结构,统计类型包括:FUNCTION_MAX/FUNCTION_MIN/FUNCTION_SUM/FUNCTION_AVG/FUNCTION_COUNT/FUNCTION_MAX_OID,示例:"[{"statisticType": "FUNCTION_SUM","onStatisticField": "field1","outStatisticFieldName":"fieldName1"}]" |
|
groupByFieldsForStatistics |
Array.<Object> | String | 分组统计的信息,必须配合outStatistics参数传入,单独传入不生效。常用传入字符串,例如'field1,field2'。IGS地图文档mrfs 、IGS矢量图层gdbp服务仅支持字符串分组参数,但是仅支持输入的第一个字段。ArcGIS服务仅支持传入字符串分组参数。IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务支持字符串,也支持数组对象,详情请参考igs要素查询接口。分组类型包括:SINGLE_VALUED(一值一类)、SEGMENT(分段分类),分组类型默认为 SINGLE_VALUED,如果分组类型为SEGMENT,则需要指定分段数 segmentCount 或者具体的分段信息。当数据源是 DataStore PG 数据时,SINGLE_VALUED 与 SEGMENT 不能混合使用,分组类型为 SEGMENT 时仅支持一个分组,分组类型为 SINGLE_VALUED时支持多个分组 |
|
resultRecordCount |
Number | 20 | 结果返回条数,默认20 |
resultOffset |
Number | 0 | 跳过条数 |
returnZ |
Number | false | 是否返回Z轴,默认为false |
distance |
Number | undefined | 几何缓冲的距离,需要保证和几何坐标系一致。geometry为Point、LineString时有效(若数据源为大数据PG数据,且geometryType为Point或LineString时为必填数据) |
|
outSrs |
SpatialReference | undefined | 输出几何空间参照系,优先推荐使用wkid,不同服务兼容性更高,不支持IGS地图文档mrfs服务 |
|
inSrs |
SpatialReference | undefined | 输入几何空间参考系,仅当为IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务、ArcGIS地图服务、ArcGIS要素服务时,此参数生效, 默认会以geometry的spatialReference作为输入几何的空间参考系。IGS1.0接口需要保证输入的数据空间参考系和数据源空间参考系信息一致,此参数设置无效,仅能通过outSrs设置输出数据的空间参考系 |
|
returnIdsOnly |
Boolean | false | 仅当为IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务、ArcGIS地图服务、ArcGIS要素服务时,此参数生效。是否只返回id,默认为false |
returnCountOnly |
Boolean | false | 仅当为IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务、ArcGIS地图服务、ArcGIS要素服务时,此参数生效,是否只返回条数,默认为false |
returnExtentOnly |
Boolean | false | 仅当为IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务、ArcGIS地图服务、ArcGIS要素服务时,此参数生效。是否只返回范围,默认为false |
supportArc3 |
Boolean | false | 仅当为IGS要素服务、IGS地图服务、IGS资源服务时此参数生效。是否返回弧段数据,默认为false |
f |
String | 'json' | 查询返回的数据格式。支持"json" "geojson" "csv"(csv仅IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务支持)、"pbf"(pbf仅ArcGIS服务支持)返回格式 |
示例
指定图层要素查询使用示例
1.支持的服务类型
const mapServer = new MapServer({
url: "http://{ip}:{port}/igs/rest/services/{serverName}/MapServer",
});
const featureServer = new FeatureServer({
url: "http://{ip}:{port}/igs/rest/services/{serverName}/FeatureServer",
});
const featureServerV1 = new FeatureServer({
url: "http://{ip}:{port}/igs/rest/mrfs/docs/{serverName}",
});
const featureServerGDBP = new FeatureServer({
url: "http://{ip}:{port}/igs/rest/mrfs/layer",
});
const sceneServer = new SceneServer({
url: "http://{ip}:{port}/igs/rest/services/{serverName}/SceneServer",
});
const resoureServer = new ResourceServer({
url: "http://{ip}:{port}/igs/rest/services/system/ResourceServer",
});
const arcgisMapServer = new ArcGISMapServer({
url: "http://{ip}:{port}/arcgis/rest/services/{serverName}/MapServer",
});
const arcgisFeatureServer = new ArcGISFeatureServer({
url: "http://{ip}:{port}/arcgis/rest/services/{serverName}/FeatureServer",
});
2.调用方法,以要素服务举例(除资源服务外查询但图层要素接口为queryTempDataFeatures,其他服务查询均为queryFeatures)
2.1 根据要素NAME字段分组统计2011年gdbp总和
const queryFeauresOptions = {
layerId: "0",
// 对于部分服务需要传入gdbp
// gdbp:"gdbp://MapGISLocalPlus/湖北省/ds/行政区/sfcls/湖北省市级区划",
outStatistics: [
{
statisticType: "FUNCTION_SUM",
onStatisticField: "GDP2011",
outStatisticFieldName: "GDP2011_total",
},
],
groupByFieldsForStatistics: "NAME",
f: "json",
}
featureServer.queryFeatures(queryFeauresOptions)
2.2 几何过滤
const queryFeauresOptions = {
layerId: "0",
// 对于部分服务需要传入gdbp
// gdbp:"gdbp://MapGISLocalPlus/湖北省/ds/行政区/sfcls/湖北省市级区划",
geometry: new Polygon({
coordinates: [
[
[12579102.459639914, 3375646.034919311],
[12690421.950433187, 3375646.034919311],
[12690421.950433187, 3492635.98026307],
[12579102.459639914, 3492635.98026307],
[12579102.459639914, 3375646.034919311],
],
],
spatialReference: "EPSG:3857",
}),
geometryPrecision: 3,
outSrs: new SpatialReference("EPSG:4547"),
}
featureServer.queryFeatures(queryFeauresOptions)
2.3 查询图层要素总数
const queryFeauresOptions = {
layerId: "0",
// 对于部分服务需要传入gdbp
// gdbp:"gdbp://MapGISLocalPlus/湖北省/ds/行政区/sfcls/湖北省市级区划",
returnCountOnly:true,
}
featureServer.queryFeatures(queryFeauresOptions).then((res)=>{
// 图层要素总数
const count = res.data.count
})
2.4 返回信息
const queryFeauresOptions = {
layerId: "0",
// 对于部分服务需要传入gdbp
// gdbp:"gdbp://MapGISLocalPlus/湖北省/ds/行政区/sfcls/湖北省市级区划",
resultRecordCount: 10
}
featureServer.queryFeatures(queryFeauresOptions).then((res)=>{
const data = res.data
// 要素数据集
const featureSet = data.featureSet
// 字段名称
const fields = featureSet.fields
// 几何类型
const geometryType = featureSet.geometryType
// 要素信息
const features = featureSet.features
})
成员变量
# distance
几何缓冲的距离,需要保证和几何坐标系一致。geometry为Point、LineString时有效(若数据源为大数据PG数据,且geometryType为Point或LineString时为必填数据)
# f
查询返回的数据格式。支持"json" "geojson" "csv"(csv仅IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务支持)、"pbf"(pbf仅ArcGIS服务支持)返回格式
# gdbp
gdbp地址,仅当服务为IGS矢量图层gdbp时,此参数必传。当服务为IGS资源服务时,必须传入gdbp、mapSource、filePath参数之一,保证能拿到图层信息。
# geometry
要素查询几何条件。目前IGS支持Point|LineString|Circle|Extent|Polygon|MultiPolygon几种类型,ArcGIS支持Point|MultiPoint|LineString|MultiLineString|Extent|Polygon几种类型
# groupByFieldsForStatistics
分组统计的信息,必须配合outStatistics参数传入,单独传入不生效。常用传入字符串,例如'field1,field2'。IGS地图文档mrfs 、IGS矢量图层gdbp服务仅支持字符串分组参数,但是仅支持输入的第一个字段。ArcGIS服务仅支持传入字符串分组参数。IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务支持字符串,也支持数组对象,详情请参考igs要素查询接口。分组类型包括:SINGLE_VALUED(一值一类)、SEGMENT(分段分类),分组类型默认为 SINGLE_VALUED,如果分组类型为SEGMENT,则需要指定分段数 segmentCount 或者具体的分段信息。当数据源是 DataStore PG 数据时,SINGLE_VALUED 与 SEGMENT 不能混合使用,分组类型为 SEGMENT 时仅支持一个分组,分组类型为 SINGLE_VALUED时支持多个分组
# inSrs
输入几何空间参考系,仅当为IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务、ArcGIS地图服务、ArcGIS要素服务时,此参数生效, 默认会以geometry的spatialReference作为输入几何的空间参考系。IGS1.0接口需要保证输入的数据空间参考系和数据源空间参考系信息一致,此参数设置无效,仅能通过outSrs设置输出数据的空间参考系
# mapSource
地图文档的资源,例如{ "url":"/root/wuhan.mapx", "mapIndex": 0, "layerId": "1"} 。仅当服务为IGS资源服务时,必须传入gdbp、mapSource、filePath参数之一,保证能拿到图层信息。
# orderByFields
排序字段,格式: fieldName [ASC|DESC]。例如Name ASC,Age DESC,当为IGS服务时,由于服务接口限制,仅输入的第一个字段生效,即Name ASC
# outStatistics
计算一个或多个基于字段的统计信息结构,统计类型包括:FUNCTION_MAX/FUNCTION_MIN/FUNCTION_SUM/FUNCTION_AVG/FUNCTION_COUNT/FUNCTION_MAX_OID,示例:"[{"statisticType": "FUNCTION_SUM","onStatisticField": "field1","outStatisticFieldName":"fieldName1"}]"
# returnCountOnly
仅当为IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务、ArcGIS地图服务、ArcGIS要素服务时,此参数生效,是否只返回条数,默认为false
# returnExtentOnly
仅当为IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务、ArcGIS地图服务、ArcGIS要素服务时,此参数生效。是否只返回范围,默认为false
# returnIdsOnly
仅当为IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务、ArcGIS地图服务、ArcGIS要素服务时,此参数生效。是否只返回id,默认为false
# spatialRel
几何条件的空间判定规则,Intersects(相交)、EnvelopeIntersects(外包矩形相交)、Contains(包含)、Disjoint(相离,ArcGIS服务不支持)
