DMap的学习
一 DMap内部图元系统
DMap内部图元系统比较简单,只包含了点、线、面三种图元,另外一种比较特殊的就是圆图元
类关系
//建立临时图层
DMap.Layers.TrackingLayer trackingLayer = new DMap.Layers.TrackingLayer();
//将临时图层加入到MapControl
map.Layers.Add(trackingLayer);
//初始化一个点图元
DMap.Geometries.Point point = new DMap.Geometries.Point(115, 20);
//将点图元加入临时图层
trackingLayer.AddGeometry(point);
以下代码展示了如何向临时图层中添加线图元...
以下代码展示了如何向临时图层中添加面图元...
二 DMap内部图层系统
可查询图层和不可查询涂层
可查询图层:临时图层(TrackingLayer)和矢量图层(VectorLayer)
不可查询图层:云图图层(CloundLayer)经纬网图层(GridLayer)遥感图层(RasterLayer)
等值线图层(IsolineLayer)特殊对象图层(SpecialObjectLayer)
(临时图层是继承特殊对象图层)
1.云图图层的使用
添加云图图层(CloundLayer) 如何加载一个卫星云图
//将地图投影更改为兰伯特投影
map.ChangeProjection(new DMap.CoordinateSystems.LambertProjections(140, 70, 80));
//初始化云图的范围
DMap.Geometries.BoundingBox box = map.Projection.LatLngToPixel(new DMap.Geometries.BoundingBox (108.9259949, -2.7175341, 192.659229, 46.492261), false);
string fileName = @"E:\资源相关\卫星云图\200901.jpg";
//初始化云图
DMap.Layers.CloudLayer cl = new DMap.Layers.CloudLayer("云图图层", fileName, box);
//将云图图层加入图层列表
map.Layers.Add(cl);
2.遥感图层(RasterLayer)的使用
string fileName = @"E:\资源相关\遥感数据\Map\MapImage";
DMap.Layers.RasterLayer rasterLayer = new DMap.Layers.RasterLayer("遥感图", fileName, true);
map.Layers.Add(rasterLayer);
3.等值线图层(IsolineLayer)
代码比较多 省略……
4.使用矢量图层(VectorLayer)
//实例化一个矢量图层
DMap.Layers.VectorLayer vectorLayer = new DMap.Layers.VectorLayer("中国地图");
string fileName = @"E:\资源相关\福建风暴潮\中国各省行政区界_region.shp";
//实例化一个矢量图层数据源
DMap.Data.Providers.ShapeFile dataSource = new DMap.Data.Providers.ShapeFile(map.Projection, fileName, true, vectorLayer, false);
vectorLayer.DataSource = dataSource;
//将矢量图层加入MapControl
map.Layers.Add(vectorLayer);
遥感图必须配备墨卡托投影才能正常显示,云图必须配备兰伯特投影才能正常显示。