MapsUi:获取 WMS ImageLayer 并将其分层在 OpenStreetMap 图层上 - WPF

问题描述 投票:0回答:1

我正在尝试将地图从 WMS 获取到 MapsUI 地图上的图层。但是,WMS 图层不会出现在地图上。我有一个简单的视图,只有一个 MapControl (mapControl)

//create wms layer
public async Task CreateLayerAsync()
{
    var layer =  new ImageLayer("NOAA WMS")
    {
        DataSource = await CreateWmsProviderAsync(),
        Style = new RasterStyle()
    };
    mapControl.Map?.Layers.Add(layer);
}

private static async Task<WmsProvider> CreateWmsProviderAsync()
{
    const string wmsUrl = "https://mapservices.weather.noaa.gov/eventdriven/services/radar/radar_base_reflectivity_time/ImageServer/WMSServer";

    var provider = await WmsProvider.CreateAsync(wmsUrl);
    provider.ContinueOnError = true;
    provider.TimeOut = 20000;
    provider.CRS = "EPSG:84";
    provider.AddLayer("0");
    provider.SetImageFormat(provider.OutputFormats[1]);
    return provider;
}

WMS GetCapability 文档的链接位于:https://mapservices.weather.noaa.gov/eventdriven/services/radar/radar_base_reflectivity_time/ImageServer/WMSServer?request=GetCapativity&service=WMS

有什么想法吗?这是我第一次深入研究 GIS 和地图渲染,因此任何指点都将不胜感激。

c# .net wpf wms mapsui
1个回答
0
投票

如果您将此地图显示在经常使用的 osm 切片图层之上,您需要像这样设置 CRS:

provider.CRS = "EPSG:3857";

如果您想显示 NOAA 图层而不显示其他图层,您可以使用

provider.CRS = "EPSG:4326";
。而不是 EPSG:84

© www.soinside.com 2019 - 2024. All rights reserved.