在上一篇文章《DeepEarth中的几何图形基础框架模型》中将整个DeepEarth的几何图形基础框架模型 进行了介绍,之后还通过了绘制一个三角形的应用示例演示了DeepEarth中的几何图形应用。本篇将续着 这篇文章介绍DeepEarth中的几何图形应用,包括基本图形绘制(点、线、多边形)和自定义图层的应用 。
一、绘制点图层
首先看看如何使用DeepEarth中的几何图形基础框架所提供的点基类(PointBase)来实现在地图上绘 制一个坐标点。其使用非常简单,如下代码块(效果图见本文末尾的截图):
//创建几何图层对象
var transformLayer = new GeometryLayer(map)
{
UpdateMode = GeometryLayer.UpdateModes.TransformUpdate,
ID = Guid.NewGuid().ToString()
};
map.Layers.Add(transformLayer);
//创建点对象
var dot = new PointBase();
dot.X = 106.5726;
dot.Y = 29.5627;
dot.Width = 100;
dot.Opacity = 0.88;
transformLayer.Add(dot);
二、绘制线条图层
绘制线条同绘制点一样的简单,如果只是绘制一条普通的线条可直接使用DeepEarth几何图形框架所提 供的LineString对象就可以完成线条的绘制,如下示例代码:
var transformLayer = new GeometryLayer(map)
{
UpdateMode = GeometryLayer.UpdateModes.TransformUpdate,
ID = Guid.NewGuid().ToString()
};
map.Layers.Add(transformLayer);
//创建线条对象,并初始其前景颜色为黄色,线条宽度为2像素
var line = new LineString(Colors.Yellow, 2);
//设置线条的起始和结束地理坐标
line.Points = new ObservableCollection<Point>()
{
new Point(104.062021177233,30.6666587469201),
new Point(106.489384971208,29.5076372217973)
};
//处理鼠标事件
line.MouseEnter += (oo, ee) =>
{
var l = oo as LineString;
l.LineColor = Colors.Green;
};
line.MouseLeave += (mo, me) =>
{
var l = mo as LineString;
l.LineColor = Colors.Yellow;
};
transformLayer.Add(line);