DeepEarth是一个地图控件,它将微软的Virtual Earth与Silverlight 2.0联合起来。该开源项目由其创建者(一群.NET的狂热爱好者)在CodePlex上发布。
根据该项目创建者所述:
DeepEarth是一个地图控件,它将微软的Silverlight 2.0平台和DeepZoom(MuliScaleImage)控件联合起来。其核心构建在这些创新的技术上以提供这样一种架构:可以将服务层、数据提供者以及你自己的客户化地图元素集成到富于表现力的用户体验中。同时它还有一些深入的示例说明了如何使用Virtual Earth Web Services以充分利用高级GIS的服务功能。通过以上这些,你就可以将一个交互式、本地的Silverlight 2.0地图集成到你的应用中了。
一些主要特性列举如下:
- 通过属性和事件模型实现的完整的地图控件
- 地图导航控件的完整模板集
- 用来包含Points、LineStrings及Polygons(OGS)的层
- 用来实现地理到屏幕坐标系统的变换库
- Geocoding(发现地址)
- 相反的Geocoding(从地图上的点来获得地址)
- 路由(Directions)
- 变化选择(默认是按住Ctrl键并拖动或从菜单中选择)
- 地图旋转
要想赶上Google Earth,DeepEarth还有很长的路要走,因为Google Earth提供了某些区域的3D视图,这使得用户可以跨越建筑进行查看,同时还有很多其他特性,如通过灯光和阴影来模拟阳光下的真实视图。
该项目基于Microsoft Public License(Ms-PL)。
有用的链接:可用的示例、源代码、YouTub上的示例视频。
DeepEarth是一个结合了Silverlight2.0技术和DeepZoom技术的地图控件,可以实现平滑的无极缩放(当然不是真正意义的无极,呵呵)地图操作,DeepEarth目前是一个基于Microsoft Public License (Ms-PL) 微软的开放许可协议的开源项目,DeepEarth支持Virtual Earth Web Service,地图坐标查找(根据坐标查找街道),坐标反向查找(根据街道查找坐标)等等。
Demo网站 Demo视频 Wiki帮助
下面我们来简单的做个实验。
先到这里下载最新的Bin文件: http://deepearth.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=21654
然后打开VS2008创建一个Silverlight的工程DeepEarthDemo,工程会创建一个DeepEarthDemo项目和DeepEarthDemo.Web项目,如下所示:
然后右键点击References添加刚才下载的bin文件,DeepEarth.dll, DeepEarth.Provider.dll和DeepEarth.Provider.VirtualEarth(如果需要用到VE的地图的话)。
打开Page.xaml添加如下namespace定义
xmlns:DeepEarth="clr-namespace:DeepEarth;assembly=DeepEarth" xmlns:DeepOSM="clr-namespace:DeepEarth.Provider.OpenStreetMaps;assembly=DeepEarth.Provider" xmlns:DeepControls="clr-namespace:DeepEarth.Controls;assembly=DeepEarth"
然后添加DeepEarth控件到grid里,
打开Page.xaml.cs加入namespace定义
using DeepEarth; using DeepEarth.Provider.OpenStreetMaps; //因为我们要用到OpenStreetMaps
然后只要再往函数里加入一行定义基础地图层的源就一切搞定了,代码如下:
using DeepEarth; using DeepEarth.Provider.OpenStreetMaps; namespace DeepEarthDemo { public partial class Page : UserControl { public Page() { InitializeComponent(); map.BaseLayer.Source = new OsmTileSource(OsmMapModes.Osmarend); } } }
如果想要用Silverlight实现Virtual Earth更漂亮的地图你需要到这里申请一个Virtual Earth开发者帐号,具体可以看DeepEarth的源代码示例。
相关链接:
1. MSDN关于发布Virtual Earth的Silverlight应用
2. Virtual Earth SDK
转载请注明来自blog.etvalley.com,下面是我们完成的Demo页面。
http://blog.etvalley.com/wp-content/uploads/2009/04/DeepEarthDemoTestPage.html
鼠标滚轮进行地图的无极缩放是不是很酷?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?