0

私の目標は、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からのより良いサポートがあるかもしれない何かを使用することは問題外です。

4

0 に答える 0