DevExpess 控件-MapControl
WinForm下的地图开发
基本介绍
- Dev Express开发组件中的一部分
- 显示栅格图以及矢量图
- 支持必应地图和Open Street Map的地图服务
- 可以通过公司内网访问自己的地图服务。
属性介绍
- CenterPoint
设置地图中心点,常用 - ZoomLevel
设置当前缩放等级,常用 - MinZoomLevel
设置当前最小缩放等级 - MaxZoomLevel
设置当前最大缩放等级 - EnableAnimation
设置是否允许动画 - EnableScrolling
设置是否运行滚动或者拖动 - EnableZooming
设置是否能够进行缩放 - NavigationPanelOptions
- ShowCoordinates
用于设置坐标信息 - ShowKilometersScale
用于设置公里精度 - ShowMilesScale
用于设置英里精度 - ShowScrollButtons
用于设置显示滚动工具 - ShowZoomTrackbar
用于设置显示缩放工具 - Visible
用于设置是否启用快捷工具面板
- ShowCoordinates
- 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方法中实例化上述所说的元素,最终实现。