`
holoblog
  • 浏览: 1259426 次
博客专栏
E0fcf0b7-6756-3051-9a54-90b4324c9940
SQL Server 20...
浏览量:19460
文章分类
社区版块
存档分类
最新评论

DeepEarth中的几何图形基础框架模型

 
阅读更多

  众所周知,DeepEarth是一套基于Silverlight的DeepZoom技术实现的开源地图开发组件,其内部提供了常用的地图开发工具控件和通用的基础模型,如线条、多边形、不规则图形、图片等一系列图形图像的基础架构模型,这为使用DeepEarth进行地图二次开发提供了非常方便的基础架构接口。本篇将介绍在DeepEarth中的几何图形架构设计和所提供的基础架构模型框架。

  

  在DeepEarth的几何图形架构中提供了最基础的几何图形应用开发模型,包括几何图层、点、线、多边形、不规则图形等,在实际的开发过程中可以通过这些基础模型扩展出自己想要的任何图形图像效果,如下类图结构:

        

  GeometryBase类提供了最基本的Silverlight控件所具备的相关特性以及几何图形所需的必备特性。

  PathBase和PointBase继承于GeometryBase,分别实现了在地图上呈现不同的不规则点和规则的点的特性。

  Polygon和LineString继承于PathBase,分别实现了在地图上呈现不同的多边形图形和线条图像的特性。

  以上几个类共同组成了DeepEarth的几何图形基础框架模型,实现了不同类型图形图形的绘制等功能特性。如果能够绘制出图形图像还是不够的,我们最终的目标是需要将绘制的不同的图形图像呈现在地图的界面上,达到能够通过肉眼看到所呈现的效果图,那具体该如何实现能够呈现到地图界面上呢?

  为解决上面这种呈现问题,在DeepEarth的几何图形基础框架模型中提供了一个几何图层类(GeometryLayer)专门来实现这个功能。因为DeepEarth的Map控件要求了其Layers必须是ILayer接口类型的扩展图层对象,因此GeometryLayer是一个实现了ILayer接口的图层,可以直接用来作为子元素添加到DeepEarth的Map控件中呈现在界面的。

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->publicObservableCollection<ILayer>Layers
{
get{return_Layers;}
}

  GeometryLayer实现了ILayer接口和一个GeometryBase的泛型集合接口,其内部实现了对地图的一些控制和添加到该图层上的一些图形图像的控制得功能特性。

  DeepEarth中的几何图形基础框架模型大致就如上介绍,在后续文章里我将对这些几何图像基础框架模型的应用和扩展进行详细介绍。本篇以Polygon为例,通过一个简单的实例介绍如何使用Polygon实现多边形的绘制并呈现在地图上。

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->//创建一个地图图层对象,将当前地图对象传递给构造方法
GeometryLayertransformLayer=newGeometryLayer(map){UpdateMode=GeometryLayer.UpdateModes.TransformUpdate};
//将地图图层添加到地图上
map.Layers.Add(transformLayer);

//绘制一个多边形
DeepEarth.Geometry.Polygonpolygon=newDeepEarth.Geometry.Polygon();
//设置了三个顶点坐标,也就是绘制一个三角形
polygon.Points=newObservableCollection<Point>{newPoint(106.5848,29.5773),newPoint(106.5848,29.5779),newPoint(106.5858,29.5773)};
polygon.FillColor
=Colors.Red;
//将多边形添加到地图图成上
transformLayer.Add(polygon);

  代码中注释写得非常详细,这里就不作详细说明了,其运行效果如下图:

        

  DeepEarth相关文章推荐:

  初探DeepEarth控件

  使用DeepEarth加载在线Google地图(卫星、街道)

探索DeepEarth的内置控件

  DeepEarth中的拖放行为(DragBehavior)

分享到:
评论

相关推荐

    DeepEarth源代码和DEMO

    首先,源代码是软件开发的基础,它揭示了DeepEarth内部的工作机制。通过阅读和分析源代码,我们可以了解到数据预处理、模型构建、训练过程以及预测阶段的具体实现。源代码通常由各种编程语言编写,如Python,可能...

    deepearth.rar

    而“deepearth.rar”这个压缩包,就为我们揭示了Bing Maps平台中的“DeepEarth”项目,它是一系列用于展示Bing Maps高级特性的示例和教程。 首先,我们要理解什么是DeepEarth。DeepEarth并非是Bing Maps官方的一个...

    [内部培训]DeepEarth架构原理与应用

    在DeepEarth中,采用的是墨卡托投影,这是一种常见的地图投影方式,特别适合于制作全球范围的电子地图。墨卡托投影将球面地球转换为平面,保持了角度的保真度,但会导致面积变形,特别是在靠近两极的地方。 **地理...

    deepearth源代码

    DeepEarth是一个地图控件,它将微软的Virtual Earth与Silverlight 2.0联合起来 该开源项目由其创建者(一群.NET的狂热爱好者)发布。 DeepEarth的最新版本是1.1,功能上可以说是很强大和完善了,提供了对多种地图...

    DeepEarth-vs2010-清理后

    深入研究这个文件,可以了解到DeepEarth项目如何处理地理空间数据,以及如何利用深度学习模型进行分析。 总结来说,"DeepEarth-vs2010-清理后"代表了一个经过优化的深度学习框架,它在Visual Studio 2010环境下为...

    DeepEarth源码

    《DeepEarth源码解析与C#编程探讨》 在当今的数字地球时代,地理信息系统(GIS)技术在各个领域发挥着越来越重要的作用。DeepEarth,作为一个开源项目,为GIS开发提供了一个强大的工具,其源码的公开使得开发者有...

    deepearth-vs2010

    在Visual Studio 2010上正确运行的deepearth源代码

    配置好的DeepEarth

    在DeepEarth官网下载的源代码本机配置会存在一些问题,要自己修正,比如“MouseWheelEventArgs”是“System.Windows.Input.MouseWheelEventArgs”和“DeepEarth.Events.MouseWheelEventArgs”之间的不明确的引用,...

    deepearth地图瓦片切图工具

    deepearth地图瓦片切图工具,可从google上直接获取地图,分级切图。生成地图时的url为:url = string.Format(TilePath, zoom.ToString("D2"), tilePositionX, tilePositionY)

    Bing Maps开发手册中文电子版(B3)

    6. **图形绘制技术**:在DeepEarth中进行图形绘制,包括点、线、多边形以及自定义图片图层的绘制,这些都是实现地图应用个性化的重要手段。 通过以上知识点的学习,开发者可以全面掌握如何使用Bing Maps开发地图...

    基于Servilight的WebGIS开源代码

    本开源项目提供了一套完整的解决方案,帮助开发者深入理解Servlight的用法及其在GIS开发中的核心功能。 【描述】:“使用Servilight开发的WebGIS,是一个开源代码,学习Serviligth的基础在GIS开发的作用” ...

Global site tag (gtag.js) - Google Analytics