.net 获取WMS ImageLayer并将其分层到OpenStreetMap Layer上- WPF

dced5bon  于 2023-10-21  发布在  .NET
关注(0)|答案(1)|浏览(101)

我正试图从一个WMSMap层MapsUIMap。但是,WMS图层不会显示在Map上。我有一个简单的视图,只有一个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 GetCapabilities文档的链接是here
有什么想法吗?这是我第一次深入GIS和Map渲染,所以任何指点都将不胜感激。

lvmkulzt

lvmkulzt1#

如果你在经常使用的osm图块层上显示这个Map,你需要像这样设置CRS:provider.CRS = "EPSG:3857";
如果你想显示NOAA层而不显示其他层,你可以使用provider.CRS = "EPSG:4326";。而不是EPSG:84

相关问题