思路很简单,使用这两个方法打开之后加载进图层即可。
GdalRasterLayer layGdal = new SharpMap.Layers.GdalRasterLayer("test", @"G:\testTif.Tif");
var l = new SharpMap.Layers.GdiImageLayer(ofd.FileName);
mainMapBox.Map.Layers.Add(layGdal);
完整代码和效果如下:
private void 打开tifToolStripMenuItem_Click(object sender, EventArgs e)
{
GdalRasterLayer layGdal = new SharpMap.Layers.GdalRasterLayer("test", @"G:\testTif.Tif");
Console.WriteLine(layGdal.SRID);
layGdal.SRID = 7;
Console.WriteLine(layGdal.SRID);
mainMapBox.Map.Layers.Add(layGdal);
mainMapBox.Map.ZoomToExtents();
mainMapBox.Refresh();
mainMapBox.ActiveTool = SharpMap.Forms.MapBox.Tools.Pan;
}
private void 打开jpgToolStripMenuItem_Click(object sender, EventArgs e)
{
//打开png
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "All files|*.*";
if (ofd.ShowDialog()==System.Windows.Forms.DialogResult.OK)
{
mainMapBox.Map.Layers.Clear();
var l = new SharpMap.Layers.GdiImageLayer(ofd.FileName);
mainMapBox.Map.Layers.Add(l);
//float angle = 0;
mainMapBox.Map.ZoomToExtents();
//var mat = new System.Drawing.Drawing2D.Matrix();
//mat.RotateAt(angle,mainMapBox.Map.WorldToImage(mainMapBox.Map.Center));
//mainMapBox.Map.MapTransform = mat;
//mainMapBox.Map.MaximumExtents = mainMapBox.Map.GetExtents();
//mainMapBox.Map.EnforceMaximumExtents = true;
mainMapBox.Map.ZoomToExtents();
mainMapBox.Refresh();
mainMapBox.ActiveTool = SharpMap.Forms.MapBox.Tools.Pan;
}
}