0

我的目标是使用 ESRI 的 ArcObject API for .NET 连接到 WMS 服务并在我的应用程序地图上显示一个图层。

这是我正在努力解决的代码部分:

...

String url = "some value";
String layerTitle = "another value";

...

PropertySet props = new PropertySet();
props.SetProperty("URL", url);

WMSConnectionName connectionName = new WMSConnectionName();
connectionName.ConnectionProperties = props;

WMSMapLayer mapLayer = new WMSMapLayer();
(mapLayer as IDataLayer).Connect(connectionName as IName);

IWMSGroupLayer groupLayer = (IWMSGroupLayer)mapLayer;
IWMSServiceDescription serviceDescription = groupLayer.WMSServiceDescription;
IWMSLayerDescription layerDescription = serviceDescription.get_LayerDescription(0);

groupLayer.CreateWMSLayer(layerDescription);
groupLayer.get_Layer(0).Visible = true;

ILayer layer = (ILayer)groupLayer;
layer.Name = "WxOverlays " + layerTitle;
layer.Visible = true;

在运行时我遇到:

System.Runtime.InteropServices.COMException (0x8000FFFF):提供的命令在 ESRI.ArcGIS.GISClient.IWMSServiceDescription.get_LayerDescription(Int32 索引)的命令池中不存在

google 搜索显示 ArcObject API 中的一些类似方法会引发相同的异常,因为它们在 C# 中不受支持。有没有人遇到过这个?有人看到解决方法吗?不幸的是,我被困在使用 C# 中,所以使用 Java 或可能从 ESRI 获得更好支持的东西是不可能的。

4

0 回答 0