您好,如果您发布的地图服务是rest服务,可以使用map 的资源请求bounds获取整幅地图的数据范围,
http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iServer/mergedProjects/SuperMapiServerRESTAPI/root/maps/map/map.htm
具体图层中对象的过滤,您可以对layer资源进行 displayFilter 的设置来实现
http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iServer/mergedProjects/SuperMapiServerRESTAPI/root/maps/map/layers/layer/layer.htm
单对象您可以使用 queryResults 资源进行查询,将您需要的对象查询出来后获取单对象的bounds
http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iServer/mergedProjects/SuperMapiServerRESTAPI/root/maps/map/queryResults/queryResults.htm
希望可以帮助到您。
您好,使用 queryResults 查询的方式,查询结果中包括几何对象信息Geometry,那eometry的属性中时有Bounds,边界信息的。
即普通数据想要获得范围查询模式是需要返回几何信息的,如果您业务实现上不想要返回几何信息,就能查询到属性,那建议您在iDesktop端,直接把数据的范围信息bounds写到属性表里,在SQL查询的时候使用纯属性查询模式即可。
sql查询不是直接对地图资源进行查询,而是需要发布地图中所使用得数据作为数据服务来使用。
http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iServer/mergedProjects/SuperMapiServerRESTAPI/root/data/featureResults/featureResults.htm
使用该资源时控制 hasGeometry 是否返回几何信息即可。
使用iServer REST地图服务,可以通过对地图服务地址进行get请求,获取各种格式的地图服务信息表述。
浏览器访问地图服务web页面可以获得信息,如下图所示。
单击右边json格式表述,得到json格式信息中可以获取bounds,具体使用何种表述请根据方便程度自行选择。
根据以上信息可以获取地图服务范围。
或者直接使用iClient for Openlayers封装好的服务能力,查看以下Demo。
https://iclient.supermap.io/examples/openlayers/editor.html#01_mapService
针对问题2:是否支持条件过滤?(如图层本身为中国各省份地图,是否可以查询单个省份的extent)
考虑对地图服务做SQL查询,根据返回的数据来获取bounds,地图服务本身未提供该能力。
https://iclient.supermap.io/examples/openlayers/editor.html#01_mapQueryBySQL
https://iserver.supermap.io/iserver/services/map-china400/rest/maps/China/layers/GangAo_ln@China@@China.rjson
通过rjson表述获取图层的bounds