WebMapServiceImageryProvider是用来加载Web Map Service (WMS) 服务的,那我们就先来熟悉下WMS服务,WMS定义了 GetCapabilities,GetMap,GetFeatureInfo 三个操作,
1.GetCapabitities,返回服务级元数据的xml文档,里面记录有图层Layer,Bounds范围等信息;
2.GetMap,返回地理空间参数和大小已明确定义的地图图像;
3.GetFeatureInfo,返回显示在地图上的某些特殊要素(feature)的信息
每个操作的参数说明可在http://www.opengeospatial.org/standards/wms下载文档,或者查看SuperMap iServer帮助文档 http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iServer/index.htm中的“API 参考 > OGC 服务 > WMS API”
接下来看看WebMapServiceImageryProvider的主要参数里面分别对应wms服务里面的什么参数吧
图1 wms能力文档部分截图 图2 WebMapServiceImageryProvider参数说明1.layers:需要加载的图层,多个图层以逗号隔开即可,可以对应的能力文档的Layer的Name或Title,例如 layers: '0.0.1,0.5.10'或layers:'BaseMap_R@Jingjin#1';
2.parameters:在GetMap URL中传递给WMS服务器的其他参数,常见参数比如‘transparent’(地图背景透明),'format'(返回的图片格式),默认为‘image/jpeg’,该格式下设置transparent无效;
3.getFeatureInfoParameters:在GetFeatureInfo URL中传递给WMS服务器的其他参数,这里可设置‘query_layers’( 查询图层列表)和‘info_format’(要素信息的返回格式)等,填写规则和layers一样,若不设置query_layers,则默认和layers的设置一样,同时,能力文档中queryable为1的图层可查询,为0不能查询;
4.enablePickFeatures:是否点击地图获取查询图层的要素,默认为true,设置为fales,不会进行GetFeatureInfo操作,即getFeatureInfoParameters参数不生效;
5.getFeatureInfoFormat:GetFeatureInfoFormat数组,简单说,就是根据GetFeatureInfo要素信息的返回格式触发相应的回调,不设置则触发默认的事件
图3 GetFeatureInfoFormat参数说明6.rectangle:图像覆盖的范围。默认为全球范围,可根据添加的图层的BoundingBox进行设置
注意:若同时设置了getFeatureInfoParameters中的‘info_format’和getFeatureInfoFormat,则以info_format为准,若只设置getFeatureInfoFormat,则以该数组中的第一个GetFeatureInfoFormat为准,两者都不设置的话,默认为'application/json'
说了这么多,我们就来看看具体代码和效果吧
图4 主要代码 图5 效果
网友评论