Welcome

首页 / 软件开发 / .NET编程技术 / SharpMap学习(3)

SharpMap学习(3)2011-11-06 博客园 GodSpeed我写的东西内容浅显,希望能给初学者一些帮助。至于深入研究sharpmap和GIS技术的大牛,请不吝赐 教,给我们这些菜鸟多一些指导。

今天我们接着来聊sharpmap的基本使用技巧,根据attribute来填充地图对象的颜色,让用户更清晰的 看到重点的业务对象对应在地图上的表示,以及如何自定义label层的显示内容,字体的大小等。所以,今 天的主题主要是自定义:自定义theme,自定义label以及label字体。

首先,我们要为地图填充上不同的色彩,让他们看起来五颜六色,容易分辨。比如河流和湖泊要填成 蓝色,草地要填充上绿色,房子要填充上白色,道路要填充上青色等等。怎么做呢?很简单,先看下代码 :

 SharpMap.Rendering.Thematics.CustomTheme iTheme = new SharpMap.Rendering.Thematics.CustomTheme(GetMyStyle);
在初始化Map的时候,加上上面的一行代码。它定义了一个自定义的Theme对象,这个对象的构造函数 需要传入一个我们自己写的方法(委托),这个方法里面具体说明了这个 theme是如何定义的,方法代码 如下:

 private static SharpMap.Styles.VectorStyle GetMyStyle(SharpMap.Data.FeatureDataRow row)        {            SharpMap.Styles.VectorStyle style = new SharpMap.Styles.VectorStyle();            switch (row["Status"].ToString().ToLower())            {                case "available": //If status is interred, fill it with yellow                    style.Fill = Brushes.Yellow;                    return style;                default:                    style.Fill = Brushes.Green;                    return style;            }        }