当前位置: 首页 > 工具软件 > SharpMap > 使用案例 >

【C#】了解SharpMap开发

姬朗
2023-12-01

题目

了解SharpMap开发

描述

SharpMap 是一个基于.net 2.0 使用 C#开发的 Map 渲染类库,可以渲染各类 GIS 数据,可应用于桌面和 Web 程序。目前支持 B/S 及 C/S 两种方式的 DLL 调用, 支持地图渲染效果。它的优点有:

  1. 占用资源较少,响应比较快。在对于项目中如果只需要简单的地图功能 的话,是一个比 较好的选择。
  2. 它是基于.NET 2.0环境下开发的,对于.NET 环境支持较好。
  3. . 使用简单,只要在.NET 项目中引用响应的 dll 文件即可,没有复杂的安 装步骤。

支持的数据格式和功能:
1. PostGreSQL/PostGIS,ESRI Shapefile
2. 支持 WMS layers
3. 支持 ECW 和 JPEG2000 栅格数据格式
4. Windows Forms 控件,可以移动和缩放
5. 通过 HttpHandler 支持 ASP.net 程序
6. 点、线、多边形、多点、多线和多多边形等几何类型
7. 几 何 集 合 ( GeometryCollections ) 等 OpenGIS Simple Features Specification
8. 可通过 Data Providers(增加数据类型支持)、Layer Types(增加层类 型)和 Geometry Types 等扩展
9. 图形使用 GDI+渲染,支持 anti-aliased 等。

代码

SharpMap.Map myMap = new SharpMap.Map(picMap.Size);//创建了一个新的 Map 的对 象 
SharpMap.Layers.VectorLayer myLayer = new SharpMap.Layers.VectorLayer("My layer");StringConnStr="Server=127.0.0.1;Port=5432;Userid=postgres;Password=password ;Database=myGisDb;";//创建图层的数据源 
myLayer.DataSource = new SharpMap.Providers.PostGIS(ConnStr, "myTable", "the_geom", 32632); 
myMap.Layers.Add(myLayer);//增加图层到 Map 的 Layers 集合 

System.Drawing.Image img = new System.Drawing.Bitmap( ); 

System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(img); 

g.Clear(this.BackColor); 

foreach (SharpMap.ILayer layer in this.Layers) 
{
    if(layer.Enabled && layer.MaxVisible>=this.Zoom && layer.MinVisible<this.Zoom) layer.Render(g,this); 
} 

if (MapRendered != null) MapRendered(g); //Fire render event 

g.Dispose(); 

return img; 
// 首 先 创 建 一 个 System.Drawing.Image 对 象 , 然 后 为 其 创 建 一 个 System.Drawing.Graphics 对象,通过这个对象来渲染地图到这个 Image 对象,最后返回这 个对象。
 类似资料: