ArcGIS Engine加载WMTS影像服务

代码

/// <summary>
/// 加载WMTS服务
/// </summary>
/// <param name="sUrl"></param>
/// <returns></returns>
public List<ILayer> GetWMTSLayer(string sUrl)
{
	var lstLayer = new List<ILayer>();
	try
	{
		IPropertySet pPropertySet = new PropertySetClass();
		pPropertySet.SetProperty("URL", sUrl);
		IWMTSConnectionFactory pWmtsConnectionFactory = new WMTSConnectionFactoryClass();
		IWMTSConnection pWmtsConnection = pWmtsConnectionFactory.Open(pPropertySet, 0, null);
		IWMTSServiceDescription pWmtsServiceDescription = pWmtsConnection as IWMTSServiceDescription;
		for (int i = 0; i < pWmtsServiceDescription.LayerDescriptionCount; i++)
		{
			IWMTSLayerDescription pWmtsLayerDescription = pWmtsServiceDescription.LayerDescription[i];
			IWMTSLayer pWmtsLayer = new WMTSLayerClass();

			IPropertySet pPropSet = new PropertySetClass();
			pPropSet.SetProperty("URL", sUrl);
			pPropSet.SetProperty("LayerName", pWmtsLayerDescription.Identifier);

			WMTSConnectionName connectionName = new WMTSConnectionNameClass
			{
				ConnectionProperties = pPropSet
			};
			if (pWmtsLayer.Connect((IName)connectionName))
			{
				lstLayer.Add(pWmtsLayer as ILayer);
			}
		}
	}
	catch (Exception ex)
	{
		Console.WriteLine(ex.Message);
	}
	return lstLayer;
}

说明

  • 不要在子线程中调用,否则会在pWmtsLayer.Connect((IName)connectionName)处报错。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值