统计
  • 文章总数:855 篇
  • 评论总数:0 条
  • 分类总数:14 个
  • 最后更新:8月3日

使用DevExpress展示地图加载SHP

本文阅读 1 分钟
首页 地理信息 正文

做简单的地图展示,不需要专业的GIS组件,使用DevExpress即可完成,以加载Shp地图文件为例:

private void LoadShp(string path){    //创建SHP数据源    ShapefileDataAdapter dataAdapter = new ShapefileDataAdapter    {        FileUri = new Uri(path),        SourceCoordinateSystem = new CartesianSourceCoordinateSystem(), //坐标系        DefaultEncoding = Encoding.UTF8, //编码    };     //创建矢量图层    VectorItemsLayer vectorItemsLayer = new VectorItemsLayer    {        Data = dataAdapter,        Colorizer = CreateChoroplethColorizer("SCP") //分级符号化    };    vectorItemsLayer.Name = "任务区";     //标注    vectorItemsLayer.ShapeTitlesVisibility = VisibilityMode.Visible;    vectorItemsLayer.ShapeTitlesPattern = "{Name}:{ SCP }%";     //设置地图控件属性    this.mapControl1.CoordinateSystem = new CartesianMapCoordinateSystem();    this.mapControl1.NavigationPanelOptions.Visible = false;     //加载图层    mapControl1.Layers.Add(vectorItemsLayer);     //加载图例    MapLegendBase mapLegendBase = CreateLegend(vectorItemsLayer);    mapLegendBase.Alignment = LegendAlignment.TopLeft;    this.mapControl1.Legends.Add(mapLegendBase);}

需要注意的问题:

(1)正确设置ShapefileDataAdapter和mapControl的坐标系统CoordinateSystem,否则无法显示;

(2)当标注用到包含中文的属性时会乱码,需设置DataAdapter的默认编码属性DefaultEncoding;

(3)标注使用图层的ShapeTitlesPattern属性,它是一个字符串,对于引用的字段,需加上中括号,例如"{Name}"表示用属性表中Name来标注 ;

(4)也支持图例、符号化等基本地图概念。


本文来自投稿,不代表本站立场,如若转载,请注明出处:
CAD的8个冷知识,都非常实用
« 上一篇 03-13
ArcGIS里做雨量计算与流量统计分析
下一篇 » 03-13

作者信息

作者有点忙,还没写简介
TA的最新作品
    请设置要调用的作者ID

动态快讯

    请配置好页面缩略名选项

热门文章

标签TAG