私の目標は、WMSサービスに接続し、ESRIのArcObject APIfor.NETを使用してアプリケーションのマップにレイヤーを表示することです。
これが私が苦労している私のコードの一部です:
...
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インデックス)のコマンドプールに存在しません
グーグル検索は、ArcObject APIのいくつかの同様のメソッドがC#でサポートされていないため、同じ例外をスローすることを明らかにしました。誰かがこれに遭遇したことがありますか?誰かがそれを回避する方法を見ますか?残念ながら、私はC#を使用して立ち往生しているので、JavaまたはESRIからのより良いサポートがあるかもしれない何かを使用することは問題外です。