WMS服务,WMS是OGC标准中比较简单也是比较重要的标准之一。它全称是“Web Map Service”(网络地图服务);利用具备地理空间位置信息的数据制做地图。其中将地图定义为地理数据可视的表现。这个规范定义了三个操做:GetCapabilities返回服务级元数据,它是对服务信息内容和要求参数的一种描述; GetMap返回一个地图影像,其地理空间参考和大小参数是明肯定义了的;GetFeatureInfo(可选)返回显示在地图上的某些特殊要素的信息;web
可能你们会混淆和WMTS服务的区别; WMTS提供了一种采用预约义图块方法发布数字地图服务的标准化解决方案。WMTS弥补了WMS不能提供分块地图的不足。WMS针对提供可定制地图的服务,是一个动态数据或用户定制地图(需结合SLD标准)的理想解决办法。WMTS牺牲了提供定制地图的灵活性,代之以经过提供静态数据(基础地图)来加强伸缩性,这些静态数据的范围框和比例尺被限定在各个图块内。这些固定的图块集使得对WMTS服务的实现可使用一个仅简单返回已有文件的Web服务器便可,同时使得能够利用一些标准的诸如分布式缓存的网络机制实现伸缩性。缓存
WMTS相比WMS,牺牲掉灵活性来换取性能,返回的都是基础地图,全部静态数据的范围框和比例尺通通被限定在各个图块(瓦片)中。而后这些图块集使得对WMTS的实现只须要一个仅仅返回简单已有文件的web服务器便可。WFS与二者都不一样,返回的是矢量数据,用于增删改操做。服务器
咱们今天来说一下用PIESDK如何加载一份WMS服务数据网络
第一步分布式 |
设置WMS服务路径URLide |
第二步性能 |
根据URL获得WMS图层WMSLayerurl |
第三步spa |
获得服务包含的图层的并选择须要要显示的图层的名称layerNamecode |
第四步 |
利用IWMSLayer接口的SerLayer方法将图层位layerName添加到地图控件中并设置显示范围 |
接口/类 |
方法 |
说明 |
PIE.Carto.IWMSLayer |
GetWMSCapabilities |
获得图层的信息(获取服务元数据信息) |
SetLayers |
设置图层的集合 |
视频路径 |
百度云盘地址下/PIE视频教程/03.数据加载/15.打开WMS服务数据.avi |
示例代码 |
|
1 /// <summary> 2 /// WMS服务加载 3 /// </summary> 4 public override void OnClick() 5 { 6 string url = "http://172.16.10.114:8080/geoserver/World/wms"; 7 IWMSLayer wmsLayer = new WMSLayer(url); 8 if (wmsLayer == null) return; 9 10 IList<WMSCapabilities> list = wmsLayer.GetWMSCapabilities(); 11 List<string> layerList = new List<string>(); 12 //获得服务的图层列表 13 foreach (WMSCapabilities item in list) 14 { 15 layerList.Add(item.Layer); 16 } 17 string layerName = ""; 18 for (int i = 0; i < layerList.Count; i++) 19 { 20 layerName = layerList[i]; 21 if (string.IsNullOrEmpty(layerName)) continue; 22 break; 23 } 24 25 wmsLayer.SetLayers(layerName);//加载服务的第一个图层 26 ILayer layer = wmsLayer as ILayer; 27 layer.Name = "WMS服务"; 28 m_HookHelper.ActiveView.FocusMap.AddLayer(layer); 29 m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll); 30 } |