地物查询

这里查询的结果有默认上限,没记错应该是1000,超出默认上限就有问题了,所以要配置maxFeatures,值根据项目具体需要设置。
  • 指定 ID 查询

在数据集中查询符合指定 ID 的地理空间要素,并在客户端中展示出来。

// 数据集ID查询服务参数
let idsParam = new mapboxgl.supermap.GetFeaturesByIDsParameters({
    IDs: [234],
    datasetNames: ["World:Countries"]
});
// 创建指定ID查询实例
let url = "https://iserver.supermap.io/iserver/services/data-world/rest/data";
new mapboxgl.supermap.FeatureService(url).getFeaturesByIDs(idsParam).then(function (serviceResult) {
    // 获取服务器返回的结果
    let features = serviceResult.result.features;
});
  • 指定 SQL 查询

在指定数据集集合中查找符合 SQL 条件的矢量要素,并在客户端中展示出来。

// 指定SQL查询服务参数
let sqlParam = new mapboxgl.supermap.GetFeaturesBySQLParameters({
    queryParameter: {
        name: "Countries@World",
        attributeFilter: "SMID = 234"
    },
    datasetNames: ["World:Countries"]
});
// 创建SQL查询实例
let url = "https://iserver.supermap.io/iserver/services/data-world/rest/data";
new mapboxgl.supermap.FeatureService(url).getFeaturesBySQL(sqlParam).then(function (serviceResult) {
    // 获取服务器返回的结果
    let features = serviceResult.result.features;
});
  • 矩形范围查询

在指定数据集集合中查找符合矩形范围的矢量要素,并在客户端中展示出来。

let url = "https://iserver.supermap.io/iserver/services/data-world/rest/data";
// 指定矩形范围查询处理
let sw = new mapboxgl.LngLat(-20, -20);
let ne = new mapboxgl.LngLat(20, 20);
let lngLatBounds = new mapboxgl.LngLatBounds(sw, ne);

// 设置矩形范围查询参数
let boundsParam = new mapboxgl.supermap.GetFeaturesByBoundsParameters({
    datasetNames: ["World:Capitals"],
    bounds: lngLatBounds
});
// 创建矩形范围查询实例
new mapboxgl.supermap.FeatureService(url).getFeaturesByBounds(boundsParam).then(function (serviceResult) {
    // 获取服务器返回的结果
    let features = serviceResult.result.features;
});
  • 任意几何范围查询

在指定数据集集合中查找符合几何范围的矢量要素,并在客户端中展示出来。

let url = "https://iserver.supermap.io/iserver/services/data-world/rest/data";
// 设置几何查询范围
let  queryPolygonGeometry = {
    "type": "Polygon",
    "coordinates": [[[0, 0], [-10, 30], [-30, 0], [0, 0]]]
};
// 设置任意几何范围查询参数
let geometryParam = new mapboxgl.supermap.GetFeaturesByGeometryParameters({
    datasetNames: ["World:Countries"],
    geometry: queryPolygonGeometry,
    spatialQueryMode: "INTERSECT" // 相交空间查询模式
});
// 创建任意几何范围查询实例
new mapboxgl.supermap.FeatureService(url).getFeaturesByGeometry(geometryParam).then(function (serviceResult) {
    // 获取服务器返回的结果
    let features = serviceResult.result.features;
});
  • 距离查询

在地图服务中的指定图层中查找符合一定距离的矢量要素,并在客户端中展示出来。

let url = "https://iserver.supermap.io/iserver/services/map-world/rest/maps/World";
// 添加查询中心点
let point = new mapboxgl.LngLat(104, 30);
// 设置距离查询参数
let param = new mapboxgl.supermap.QueryByDistanceParameters({
    queryParams: {name: "Capitals@World.1"},
    distance: 10, // distance的单位跟地物的坐标系单位一致,此处为度
    geometry: point
});
// 创建距离查询实例
new mapboxgl.supermap.QueryService(url).queryByDistance(param).then(function (serviceResult) {
    // 获取服务器返回的结果
    let features = serviceResult.result.features;
});
  • 缓冲区查询

在数据服务中的指定数据集集合中查找符合缓冲区的矢量要素,并在客户端中展示出来。

let url = "https://iserver.supermap.io/iserver/services/data-world/rest/data";
// 设置缓冲区查询范围
let queryBufferGeometry = {
    "type": "Polygon",
    "coordinates": [[[-20, 20], [-20, -20], [20, -20], [20, 20], [-20, 20]]]
};
// 设置缓冲区查询参数
let bufferParam = new mapboxgl.supermap.GetFeaturesByBufferParameters({
    datasetNames: ["World:Capitals"],
    bufferDistance: 30, // bufferDistance的单位跟地物的坐标系单位一致,此处为度
    geometry:queryBufferGeometry
});
// 创建缓冲区查询实例,向服务器发送请求,并获取返回的结果
new mapboxgl.supermap .FeatureService(url).getFeaturesByBuffer(bufferParam).then(function (serviceResult) {
    // 获取服务器返回的结果
    let features = serviceResult.result.features;
});
  • 查询栅格信息

在指定数据集集合中查找某一地理位置所对应的像素值信息,并在客户端中展示出来。

let url = "https://iserver.supermap.io/iserver/services/data-world/rest/data";
map.on("click",function (evt) {
    // 获取当前点击的(x,y)
    let x = evt.latlng.lng;
    let y = evt.latlng.lat;
    // 设置栅格查询的参数信息
    let getGridCellInfosParam = new mapboxgl.supermap.GetGridCellInfosParameters({
        dataSourceName: "World",
        datasetName:"WorldEarth",
        X: x,
        Y: y
    });
    // 创建栅格查询实例
    new mapboxgl.supermap.GridCellInfosService(url).getGridCellInfos(getGridCellInfosParam).then(function (serviceResult) {
        if (!serviceResult.result) {
            return;
        }
        // 获取服务端返回数据
        let result = serviceResult.result;
    });
});
  • 查询字段信息

在指定数据集集合中查询字段的信息,包括:字段名称、字段类型、字段别名、字段默认值等,并在客户端中展示出来。

let dataURL = "https://iserver.supermap.io/iserver/services/data-world/rest/data"
// 设置字段查询参数
let param = new mapboxgl.supermap.FieldParameters({
    datasource: "World",
    dataset: "continent_T"
});
let fieldName = 'SmID';
// 创建字段查询实例
new mapboxgl.supermap.FieldService(dataURL).getFields(param).then(function (serviceResult) {
    fieldStatistic(fieldName);
});
// 查询指定字段
function fieldStatistic(fieldName) {
    // 设置查询指定字段参数
    let param = new mapboxgl.supermap.FieldStatisticsParameters({
        datasource: currentData.dataSourceName,
        dataset: currentData.dataSetName,
        fieldName: fieldName,
        statisticMode: [
            mapboxgl.supermap.StatisticMode.MAX,
            mapboxgl.supermap.StatisticMode.MIN,
            mapboxgl.supermap.StatisticMode.SUM,
            mapboxgl.supermap.StatisticMode.AVERAGE,
            mapboxgl.supermap.StatisticMode.STDDEVIATION,
            mapboxgl.supermap.StatisticMode.letIANCE
        ]
    });
    // 向服务端发送请求并获取数据
    new mapboxgl.supermap.FieldService(dataURL).getFieldStatisticsInfo(param, function (serviceResult) {
        // 获取返回数据
        let result = serviceResult.result;
    });
}
Copyright © lujiannb@qq.com 2021 all right reserved,powered by Gitbook该文章修订时间: 2024-06-06 11:32:07

results matching ""

    No results matching ""