贡献一个sharpmap,自定义专题地图源码

本文介绍了一种使用SharpMap进行专题图绘制的方法,通过加载阀门数据并应用不同的样式来表示其开关状态,展示了如何通过定制化的样式和主题实现数据的可视化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 专题图代码主体部分

 SharpMap.Layers.VectorLayer layerValve;
            layerValve = new SharpMap.Layers.VectorLayer("valve", new SharpMap.Data.Providers.ShapeFile("../data/valve.shp"));
            layerValve.Style.SymbolOffset = new PointF(20, -35);
            map.Layers.Add(layerValve);

  SharpMap.Rendering.Thematics.CustomTheme myThemeValve = new SharpMap.Rendering.Thematics.CustomTheme(GetThemeStyleValve);
            layerValve.Theme = myThemeValve;
////////////////////////////////////////////////////////
专题图函数为
  private static SharpMap.Styles.VectorStyle GetThemeStyleValve(SharpMap.Data.FeatureDataRow row)
        {
            string strThemeField = row["onoroff"].ToString();
            SharpMap.Styles.VectorStyle style = new SharpMap.Styles.VectorStyle();
            if (strThemeField != null)
            {
                if (strThemeField != "" && int.Parse(strThemeField) == 1)
                {
                    style.SymbolScale = 0.4f;
                    style.Symbol = new Bitmap("../resourcefiles/pipeOn.PNG");
                }
                else
                {
                    style.SymbolScale = 0.42f;
                    style.Symbol = new Bitmap("../resourcefiles/pipeOff.PNG");
                }
                style.SymbolOffset = new PointF(0, -15);
            }
            style.EnableOutline = true;
            return style;
        }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值