SharpMap针对ShapeFile进行基本样式的渲染

来源:互联网 发布:淘宝订单可以不清洗吗 编辑:程序博客网 时间:2024/04/29 11:26

一直做GIS的二次开发,都想通过一些示例来实现一些功能,现在学习开源的GIS平台SharpMap自己阅读源代码,修改一些接口实现了针对ShapeFile矢量数据的图层渲染功能,主要用到的接口包括:VectorLayer、VectorStyle、OgcGeometryType,VectorLayer是承载矢量数据的图层,矢量要素在界面上的绘制也是在这些图层对象上进行,可以在VectorLayer上查看VectorStyle对象是如何应用到要素的绘制的(RenderGeometry方法),OgcGeometryType对象是一个枚举,定义在GeoAPI.dll这个库里,它指示矢量数据的类型(点、线、面),上面说到了对接口进行了一些修改,SharpMap是开源的,对于学习开源的软件我也没什么经验,这些接口的修改只是我以面向对象的思维在上层的接口上增加了一些属性,方便功能的实现,用来确定两个事情:1.图层是不是矢量图层;2.矢量图层的类型是点、线、面,最终标识就是使用枚举OgcGeometryType进行区分的;下面列举一下功能的梳理:

点样式:

(_vectorStyle.PointColor as SolidBrush).Color 颜色

_vectorStyle.PointSize 点大小

线样式:

_vectorStyle.Line.Color 颜色

_vectorStyle.Line.Width 线宽

面样式:

(_vectorStyle.Fill as SolidBrush).Color 填充颜色

_vectorStyle.EnableOutline 是否显示边线

_vectorStyle.Outline.Color 边线颜色

_vectorStyle.Outline.Width 边线宽度

_vectorStyle是VectorStyle的实例,这些代码都是控制相应样式的

最后粘贴一张程序运行结果图:

0 0