首页 / 浏览问题 / 云GIS / 问题详情
地图服务如何通过rest api进行数据查询
16EXP 2023年12月12日
怎样通过rest api接口查询到iserver中的地图服务的数据

1个回答

您好,示例代码如下:

var map, resultLayer,
    // 调用 REST 地图服务
    url = "https://iserver.supermap.io/iserver/services/map-world/rest/maps/World";
    
// 创建 Leaflet 地图实例
map = L.map('map', {
    preferCanvas: true,  
    crs: L.CRS.EPSG4326,  
    center: {lon: -120, lat: 0}, 
    maxZoom: 18,  
    zoom: 2  
});

// 添加 REST 地图服务作为底图
new L.supermap.TiledMapLayer(url).addTo(map);

// 发起数据查询
query();

// 查询函数
function query() {
    // 构造查询参数
    var param = new L.supermap.QueryBySQLParameters({
        queryParams: {
            name: "Capitals@World.1",  // 要查询的图层名称
            attributeFilter: "SMID < 10"  // 属性过滤条件
        }
    });

    // 发起查询请求,并处理返回结果
    new L.supermap
        .QueryService(url)  // 创建查询服务对象
        .queryBySQL(param)  // 调用 queryBySQL 方法发起查询请求
        .then((serviceResult) => {  // 处理查询结果
            var result = serviceResult.result;
            // 将查询结果以 GeoJSON 格式添加到地图上显示
            resultLayer = L.geoJSON(result.recordsets[0].features).addTo(map);
        });
}

具体实例可见:https://iclient.supermap.io/examples/leaflet/editor.html#01_mapQueryBySQL

希望能够帮助到您!

1,035EXP 2023年12月12日
好的,感谢回答
...