DevExpess 控件-MapControl

DevExpess 控件-MapControl

WinForm下的地图开发


基本介绍


  • Dev Express开发组件中的一部分
  • 显示栅格图以及矢量图
  • 支持必应地图和Open Street Map的地图服务
  • 可以通过公司内网访问自己的地图服务。

属性介绍


  • CenterPoint
    设置地图中心点,常用
  • ZoomLevel
    设置当前缩放等级,常用
  • MinZoomLevel
    设置当前最小缩放等级
  • MaxZoomLevel
    设置当前最大缩放等级
  • EnableAnimation
    设置是否允许动画
  • EnableScrolling
    设置是否运行滚动或者拖动
  • EnableZooming
    设置是否能够进行缩放
  • NavigationPanelOptions
    • ShowCoordinates
      用于设置坐标信息
    • ShowKilometersScale
      用于设置公里精度
    • ShowMilesScale
      用于设置英里精度
    • ShowScrollButtons
      用于设置显示滚动工具
    • ShowZoomTrackbar
      用于设置显示缩放工具
    • Visible
      用于设置是否启用快捷工具面板
  • Overlays
    Overlays是MapOverlay的集合。MapOverlay可以理解为地图的浮动小部件,
    目前可以支持图片和文字。

地图初始化


初始化Bing地图

       //声明图层
      ImageLayer layer = new ImageLayer();

     //声明Bing地图服务对象,并配置key和地图展示类型
     BingMapDataProvider provider = new BingMapDataProvider();
     provider.BingKey = ""; //开发者密钥
     provider.Kind = BingMapKind.Hybrid;

     //建立图层与服务的绑定
     layer.DataProvider = provider;

     //将图层添加到地图控件
     control.Layers.Add(layer);

地图加载本地Shp文件

      //声明图层
      VectorItemsLayer layer = new VectorItemsLayer();

      //声明Shp文件地图适配
      ShapefileDataAdapter adapter = new ShapefileDataAdapter();
      adapter.FileUri = new Uri(AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\') + "\\Shp\\xx.shp");

      //建立图层与服务的绑定
      layer.Data = adapter;

      //将图层添加到地图控件
      control.Layers.Add(layer);

地图元素 MapItem

  • Attribute
    保存Shp文件的数据,常用
  • Fill
    地图元素,如省份,的背景颜色
  • Stroke
    地图元素,如省界,的颜色
  • StrokeWidth
    画笔的粗细

地图常用事件


DrawMapItem

该事件是用来绘制地图元素。通过判断MapItem,从Attribute中得到信息,来进行相关操作

MapItemClick

该事件是用来触发地图元素的点击事件。通过判断MapItem,从Attribute中得到信息,来进行相关操作

地图打点与上色


MapItem 分为MapPointer和MapShape。MapPointer分为MapCallout、MapCustomElement、MapPushpin;MapShape分为MapBubble、MapDot、MapEllipse等元素。
MapPointer可以打印图片,MapShape为一些图形。
地图打点或者上色核心代码

//声明图层
VectorItemsLayer layer = new VectorItemsLayer();
//声明地图元素集合
MapItemStorage storage = new MapItemStorage();
//建立图层与服务的绑定
layer.Data = storage;
storage.Items.AddRange(GetMapPushpin());
//将图层添加到地图控件
control.Layers.Add(layer);

核心操作是在GetMapPushpin方法中实例化上述所说的元素,最终实现。

你可能感兴趣的:(DevExpress)