RasterLayer 加载栅格数据

1、界面设计

在“文件”主菜单中,添加“加载栅格数据”子菜单,添加 Click 事件。

<MenuItem Header="加载Raster" Height="30" Click="AddRaster_Click"  BorderBrush="GreenYellow" BorderThickness="1"/>

2、c#代码实现

// 加载栅格数据
private async void InitializeAsync()
{
    var aMap = new Map(Basemap.CreateImagery());
    await aMap.LoadAsync();
    //注意:要求修改代码,将以下一行代码替换为用打开对话框选择tif文件,获取tif文件路径的方式
    //string filePath = @"D:\桌面\GIS软件开发\测试数据\Raster_file\chunhua.tif";
    System.Windows.Forms.OpenFileDialog ras = new System.Windows.Forms.OpenFileDialog();
    ras.Filter = "文件(*.tif)|*.tif";
    ras.Title = "打开Raster文件";
    if (ras.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        string filePath = ras.FileName;  // 获去路径名 ,要不要.ToString()好像都可以
        //Console.WriteLine(filePath);
        //Console.ReadKey();
        Raster raster = new Raster(filePath);  // 将路径文件转为内存对象
        RasterLayer rasterLayer = new RasterLayer(raster);  // 将给对象转为raster图层
        aMap.OperationalLayers.Add(rasterLayer);  // 添加图层,这是一个操作,准备要做,但还没开始
        await rasterLayer.LoadAsync();  //启动栅格的加载。
        aMap.InitialViewpoint = new Viewpoint(rasterLayer.FullExtent);  // 将加载的图层居中显示
        MyMapView.Map = aMap;
    }
    else
    {
        MessageBox.Show("未选择图层文件");
    }
}

private void AddRaster_Click(object sender, RoutedEventArgs e)
{
    InitializeAsync();
}

3、结果

鹰眼图的底图不会改变,这就很奇怪o(╥﹏╥)o

posted @   槑孒  阅读(262)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示