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

DeepEarth内部提供的任何TileSource都是继承于DeepEarth.Layers.TileSource类,该类实现了 MultiScaleTileSource类和ITileSource接口,共同完成了实现地图图层的加载和相关算法策略。我们要实现加载在线 Google地图的原理很简单,找到Google在线地图的Tile System映射地址,编写地图图层加载算法策略就OK了。

在DeepEarth.Provider中提供了很多种地图加载的TileSource,我们可直接通过修改其中的一个来实现加载Google 在线卫星地图,下面以BlueMarble/BmTileSource为例,该类的构造方法提供了多个重载版本,其中一个是接受一个地图Tile System映射地址,既然这样我们可以通过外部调用的时候将Tile System的映射地址传递进来,在这个类中我们只需要修改加载地图底层的算法就可以了,让这个算法方法适应于根据Google在线卫星地图的映射Url 加载地图数据,通过重写TileSource的GetTile方法为如下代码即可:

1 public override Uri GetTile(int tileLevel, int tilePositionX, int tilePositionY)
2 {
3     if (IsInitialized)
4     {
5         int zoom = TileToZoom(tileLevel);
6         _IsTileDownloadStarted = true;
7
8         string url = string.Empty;
9
10         switch (MapMode)
11         {
12             case BmMapModes.BlueMarbleWeb:
13                 url = TilePathBlueMarbleWeb;
14                 url = string.Format(url, tilePositionX % 4, tilePositionX, tilePositionY, zoom);
15                 break;
16
17             case BmMapModes.BlueMarbleLocal:
18                 url = TilePathBlueMarbleLocal;
19                 int port = Application.Current.Host.Source.Port;
20                 url = string.Format(url, zoom, tilePositionX, tilePositionY, port);
21                 
22                 break;
23         }
24         return new Uri(url);
25     }
26     return null;
27 }

由于枚举类型默认为第一个枚举项,所以上面直接修改BlueMarbleWeb模式就可以了。在新建一个Silverlight应用和宿主程序,在Silverlight应用程序页面引入DeepEarth控件并调用DeepEarth的Map控件。

xmlns:DeepEarth="clr-namespace:DeepEarth;assembly=DeepEarth"

下面为使用DeepEarth的Map控件示例代码:

<Grid x:Name="LayoutRoot" Width="640" Height="480">
<StackPanel>
<DeepEarth:Map x:Name="map"  Canvas.ZIndex="1003">
</DeepEarth:Map>
</StackPanel>
</Grid>

时间: 2024-11-01 12:03:17

使用DeepEarth加载在线Google地图(卫星、街道)的相关文章

请问大家:如何用deepearth加载百度瓦片地图?

问题描述 请问大家:如何用deepearth加载百度瓦片地图? 大家好:我想在deepearth中加载百度瓦片地图,但那个x,y和z的转换一直没弄出来.特向您请教.谢谢了. google地图加载没问题,这是加载google地图的算法片段: //Tile System映射地址 map.BaseLayer.Source = new BmTileSource("http://khm{0}.google.com/kh/v=47&x={1}&y={2}&z={3}");

android studio map-Android studio Google map加载

问题描述 Android studio Google map加载 通过Google playe service 用map activity模板加载地图,程序可以运行,但是不能加载地图,logcat提示连接服务器 解决方案 http://blog.csdn.net/qduningning/article/details/44778751 解决方案二: Google现在还用不成,所以相关的服务应该都被墙了吧

MapObjects2.2 在C#中的应用(动态加载地图)

object|动态|加载 MapObjects2.2 在C#中的应用(动态加载地图) 关键字:MapObjects 2.2 C# 本篇文章实现了动态加载地图的功能,废话少说,功能实现见代码. 加载过程代码: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; namespac

字体加载策略全面指南

本文讲的是字体加载策略全面指南, 2016 年 7 月 12 日, 本文需要 20 分钟的阅读时间. 这份指南并不是教你怎么使用显示图标字体,它有不同的加载优先顺序和使用场景.事实上,此时使用 SVG 或许才是一个长久之计. 跳转到: 随意使用 @font-face font-display 预加载 preload 不要使用在线字体 内嵌数据 URI 异步数据 URI 样式表 有分类的 FOUT 两个阶段渲染的 FOFT,或 FOUT 严格的 FOFT 有数据 URI 的严格 FOFT 有预加载

解决2014年最近WordPress访问打开速度很慢,并一直加载页面的问题

最近WordPress网站访问特别的慢,有时间要加载一分钟才能完全打开,最初怀疑是服务器的问题,经过多方测试,还是没找到原因.后来,通过工具测出浏览器一直在加载fonts.googleapis.com,才发现了是原来是GOOGLE的外链资源影响了网站的速度! Wordpress很多主题用了谷歌的服务,现在谷歌被大规模屏蔽,速度受到了影响. WordPress 自3.9+版本后加入了Google Fonts,而最近GOOGLE在中国国内是无法访问的,所以,如果是在登陆状态下打开你的WordPres

openlayers2 wfs方式加载矢量图层

在地图中为了增强交互效果,需要加载一层矢量地图.如何通过请求wfs的方式加载矢量地图呢? function getParkingLayerFunc(mapUrl,parkingLayerName,onComplete){ //获取地图对象 var map = ****.getMap(); //矢量图层默认状态下的style var defaultStyle = new OpenLayers.Style({ 'fontColor' : '#000000', 'rotation': 90, 'str

使用Redirector插件解决googleapis公共库加载的问题【转】

转自:http://www.cnblogs.com/kari/p/5860371.html 最近访问一些面向国外的网站总是会出现ajax.googleaips.com无法加载的情况.以下为加载stackoverflow时的情境: 图1 -无法加载的google公共库 问题的原因是谷歌没有在国内开放ajax公共库服务 使用Redirector解决公共库加载问题 Redirector这个插件的功能正如它的名字, 可以对网页中的内容进行重定向 外部样式表,外部脚本, 图片等均可以添加至作用范围 安装

ArcGIS API for Silverlight加载google地图(后续篇)

原文:ArcGIS API for Silverlight加载google地图(后续篇) 之前在博客中(http://blog.csdn.net/taomanman/article/details/8019687)提到的加载google地图方案,因为google地址问题,看不到图了,发现是url地址变换造成的. 现将如下三个类公布出来,源码如下:   using System; using System.Net; using System.Windows; using System.Window

百度地图-省市县联动加载地图

在平常项目中,我们会遇到这样的业务场景:         客户希望把自己的门店绘制在百度地图上,通过省.市.区的选择,然后加载不同区域下的店铺位置. 先看看效果图吧: 实现思路: 第一步:整理行政区域表:       要实现通过地区筛选来动态加载地图,首先要有一套中国行政区域表.哪里来呢?如果你做过淘宝API接入,应该会想到淘宝物流接口提供了一个官方的行政区域代码,这个比较靠谱. 第二步:收集行政区域的经纬度:       这个就有点麻烦了,虽然可以在百度坐标拾取系统一个一个的收集整理,但是30