# new QueryFeaturesInLayersOptions(options)
多图层要素查询参数。支持的服务类型:IGS要素服务、IGS地图服务、IGS地图文档mrfs 、IGS矢量图层gdbp 、 IGS场景服务、ArcGIS要素服务
参数:
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
options |
Object | 构造参数 |
|
method |
String | FetchMethod.get | 请求类型 |
headers |
Object | undefined | 请求头参数 |
|
responseType |
String | 返回数据的类型,目前可设置'blob' |
|
layerDefs |
Array.<LayerDef> | Array.<Object> | undefined | 多图层的属性条件,包括layerId、where、outFields。对于IGS地图文档mrfs 、IGS矢量图层gdbp服务,此参数为必传参数,由于接口限制,可以传入多个layerDef,但是where、outFields属性只能支持第一个def内的参数,对于IGS矢量图层gdbp来说,需要传入gdbp代替layerId。 当值为空时,查询所有图层,并当为拉框查询时,自动过滤不需要不需要查询的图层,示例:"[{ "layerId":"0-0","where": "name='中国'", "outfields": "field1,field2"}]"。ArcGIS服务对于where条件需要输入尽量不要为空,部分版本不传入where条件查询会报错 |
|
distance |
Number | undefined | 几何缓冲的距离,需要保证和几何坐标系一致。geometry为Point、LineString时有效(若数据源为大数据PG数据,且geometryType为Point或LineString时为必填数据), ArcGIS服务不支持此参数 |
|
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, ArcGIS服务不支持此参数 |
returnStyle |
Boolean | false | 是否返回图形参数信息,默认为false, ArcGIS服务不支持此参数 |
returnZ |
Number | false | 是否返回Z轴,默认为false |
resultRecordCount |
Number | 20 | 结果返回条数,默认20,ArcGIS服务不支持此参数 |
outSrs |
SpatialReference | undefined | 输出几何空间参照系,优先推荐使用wkid,不同服务兼容性更高 |
|
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 |
objectIds |
String | 仅当服务为IGS地图文档mrfs 、IGS矢量图层gdbp 时,此值生效。过滤id,多个用英文逗号分隔(参数优先级很高,可能导致其它筛选条件失效) |
|
supportArc3 |
Boolean | false | 仅当为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 sceneServer = new SceneServer({
url: "http://{ip}:{port}/igs/rest/services/{serverName}/SceneServer",
});
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 arcgisFeatureServer = new ArcGISFeatureServer({
url: "http://{ip}:{port}/arcgis/rest/services/{serverName}/FeatureServer",
});
2.调用方法,以要素服务举例,其他服务跟要素服务调用方法一致
2.1 几何过滤
const queryFeaturesInLayersOptions = {
layerDefs: [
{
layerId: "0",
where: `1=1`,
// 对于部分服务需要传入gdbp
// gdbp: "gdbp://MapGISLocalPlus/湖北省/ds/行政区/sfcls/湖北省市级区划",
},
{
layerId: "1-0",
where: `1=1`,
// 对于部分服务需要传入gdbp
// gdbp: "gdbp://MapGISLocalPlus/湖北省/ds/行政区/sfcls/湖北省市级区划",
},
],
geometry: new Extent({
xmin: 12579102.459639914,
ymin: 3375646.034919311,
xmax: 12690421.950433187,
ymax: 3503549.8435043753,
spatialReference: new SpatialReference("EPSG:3857"),
}),
geometryPrecision: 3,
f: "json",
}
featureServer.queryFeaturesInLayers(queryFeaturesInLayersOptions)
2.2 返回信息
const queryFeaturesInLayersOptions = {
layerDefs: [
{
layerId: "0",
where: `1=1`,
// 对于部分服务需要传入gdbp
// gdbp: "gdbp://MapGISLocalPlus/湖北省/ds/行政区/sfcls/湖北省市级区划",
},
{
layerId: "1-0",
where: `1=1`,
// 对于部分服务需要传入gdbp
// gdbp: "gdbp://MapGISLocalPlus/湖北省/ds/行政区/sfcls/湖北省市级区划",
},
]
}
featureServer.queryFeaturesInLayers(queryFeaturesInLayersOptions).then((res)=>{
const data = res.data
const layers = data.layers || []
layers.forEach((layer) => {
const featureSet = layer.featureSet
})
})
成员变量
# distance
几何缓冲的距离,需要保证和几何坐标系一致。geometry为Point、LineString时有效(若数据源为大数据PG数据,且geometryType为Point或LineString时为必填数据), ArcGIS服务不支持此参数
# f
查询返回的数据格式。支持"json" "geojson" "csv"(csv仅IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务支持)、"pbf"(pbf仅ArcGIS服务支持)返回格式
# geometry
要素查询几何条件。目前IGS支持Point|LineString|Circle|Extent|Polygon|MultiPolygon几种类型,ArcGIS支持Point|MultiPoint|LineString|MultiLineString|Extent|Polygon几种类型
# inSrs
输入几何空间参考系,仅当为IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务、ArcGIS地图服务、ArcGIS要素服务时,此参数生效, 默认会以geometry的spatialReference作为输入几何的空间参考系。IGS1.0接口需要保证输入的数据空间参考系和数据源空间参考系信息一致,此参数设置无效,仅能通过outSrs设置输出数据的空间参考系
# layerDefs
多图层的属性条件,包括layerId、where、outFields。对于IGS地图文档mrfs 、IGS矢量图层gdbp服务,此参数为必传参数,由于接口限制,可以传入多个layerDef,但是where、outFields属性只能支持第一个def内的参数,对于IGS矢量图层gdbp来说,需要传入gdbp代替layerId。 当值为空时,查询所有图层,并当为拉框查询时,自动过滤不需要不需要查询的图层,示例:"[{ "layerId":"0-0","where": "name='中国'", "outfields": "field1,field2"}]"。ArcGIS服务对于where条件需要输入尽量不要为空,部分版本不传入where条件查询会报错
# orderByFields
排序字段,格式: fieldName [ASC|DESC]。例如Name ASC,Age DESC,当为IGS服务时,由于服务接口限制,仅输入的第一个字段生效,即Name ASC
# returnCountOnly
仅当为IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务、ArcGIS地图服务、ArcGIS要素服务时,此参数生效,是否只返回条数,默认为false
# returnIdsOnly
仅当为IGS要素服务、IGS地图服务、IGS场景服务、IGS资源服务、ArcGIS地图服务、ArcGIS要素服务时,此参数生效。是否只返回id,默认为false
# spatialRel
几何条件的空间判定规则,Intersects(相交)、EnvelopeIntersects(外包矩形相交)、Contains(包含)、Disjoint(相离,ArcGIS服务不支持)
