一直做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 点大小
线样式