了解SharpMap开发
SharpMap 是一个基于.net 2.0 使用 C#开发的 Map 渲染类库,可以渲染各类 GIS 数据,可应用于桌面和 Web 程序。目前支持 B/S 及 C/S 两种方式的 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 对象,最后返回这 个对象。