SharpMap学习4-模拟数据流-内存数据组织

XML文件保存的是图层的信息,包括图层类型,图层包含的几何对象(Geometry)。所以数据的读取和保存最终应该是XML和内存中的数据组织进行打交道。

而地图到图层到几何对象的绘制,也就是地图的显示,是交互界面和内存组织模型打交道。

所以决定先把内存模型的架子搭起来吧。

内存组织逻辑视图:

clip_image002

几何要素组织:

image

IGeometryRender接口,从名称来看,包含两部分,一个是Geometry,一个是Render,所以包含了一个Element(List<>对象,保存点的集合),一个Draw方法,也就是绘制几何要素本身。

点要素就用PointF,而线、面都会从IGeometryRender接口继承Element对象,用List<PointF>存储系列点。

图层要素组织:

image

图层包括点图层、线图层、面图层,图层本身能够自绘制(DrawLayer方法),点、线、面的绘制方法是不一样的,点用一个位图表示,线用GraphicsPath.AddLInes,而面用GraphicsPath.AddPolygon。

地图的组织:

image

地图由许多图层组成(Layers),绘制的样式(DrawingStyle)可以自定义,最终通过GetMap对象返回一个Image对象。

你可能感兴趣的:(map)