如何在WindowsPhone Bing Map控件中显示必应中国中文地图、谷歌中国中文地图。
原文:如何在WindowsPhone Bing Map控件中显示必应中国中文地图、谷歌中国中文地图。
最近正好有点业余时间,所以在做做各种地图。Bing Map控件本身就能显示必应地图,但是很遗憾微软在Bing Map控件中只提供两种地图模式:全球道路地图RoadMode、全球卫星地图AerialMode,卫星地图对咱们这些个凡人是没啥用的,全球道路地图又不显示天朝地图,因为咱们伟大的天朝政府要求在天朝内发布的地图都要加上随机偏移量才能发布。所以每个国际电子地图提供商(谷歌、微软、高德等等)都会有两类地图:全球地图和中国地图。微软BingMap控件内置没有提供中国地图,所以如果在BingMap控件里移动地图到天朝区域,除了能显示城市名之外,一片空白。。。怎么办呢?
解决方法前提:微软的BingMap控件显示地图的原理是类似网页div标签的层,我们在上面看到的地图其实就是一个层,你要在上面叠上几个层都可以。咱们只要把原先显示全球地图的那个层替换成显示中国地图的层就可以了。
显示必应中国地图代码如下:
//必应中文道路地图
public class BingChinaRoadMode : MercatorMode
{
//这个类见名知意:就是层嘛。
MapTileLayer layer = new MapTileLayer(); public override UIElement Content
{
get
{
return layer;
}
} public BingChinaRoadMode()
{
layer.TileSources.Add(new BingChinaRoadTileSource());
} //类中类
//必应中文地图的TitleSource
private class BingChinaRoadTileSource : TileSource
{
public BingChinaRoadTileSource()
: base("http://r2.tiles.ditu.live.com/tiles/r{quadkey}.png?g=4") //指定BingMap控件从网络上获取的中国地图图片来源url地址,注:此url可以从网页版必应中国地图的Http请求得到。
{ }
}
}
//指定BingMap控件的地图模式为咱们自定义的 BingChinaRoadMode
BingMap.Mode = new BingChinaRoadMode();
然后BingMap控件就显示必应中国地图啦。
二:
好吧,送佛送到西,显示谷歌地图的代码如下:
//谷歌中文道路地图
public class GoogleChinaRoadMode : MercatorMode
{
MapTileLayer layer = new MapTileLayer(); public override UIElement Content
{
get
{
return layer;
}
} public GoogleChinaRoadMode()
{
layer.TileSources.Add(new GoogleChinaRoadTileSource());
} //谷歌道路地图TitleSource
private class GoogleChinaRoadTileSource : TileSource
{
public GoogleChinaRoadTileSource()
: base("http://mt{0}.google.com/vt/lyrs=m@128&hl=zh&x={1}&y={2}&z={3}&s=")
{ } public override System.Uri GetUri(int x, int y, int zoomLevel)
{
return new System.Uri(string.Format(UriFormat, new System.Random().Next() % , x, y, zoomLevel));
}
}
}
完了,那是不是也可以在BingMap控件中显示:百度地图,说对了,前途是光明的、道路是曲折的。下一篇讲如何显示百度地图,这个就不像显示必应中国地图和谷歌地图那么简单了。
如何在WindowsPhone Bing Map控件中显示必应中国中文地图、谷歌中国中文地图。的更多相关文章
- C#在splitContainer1控件和panel控件中显示窗体
现在有两个窗体 Form1 和Form2 Form1中有控件splitContainer1 和panel .控件.我们希望Form2在splitContainer1或者panel控件中显示 1:首先看 ...
- CheckedListBoxControl 或CheckedListBox 控件中显示水平滚动条 z
public partial class Form1 : Form { public Form1() { InitializeComponent(); DisplayHScroll(); } /// ...
- 在RichTextBox控件中显示RTF格式文件
实现效果: 知识运用: RichTextBox控件的LoadFile方法 //将文件内容加载到RichTextBox控件中 public void LoadFile(string path,Ri ...
- C#在listview控件中显示数据库数据
一.了解listview控件的属性 view:设置为details columns:设置列 items:设置行 1.将listview的view设置为details 2.设置列属性 点击添加,添加一列 ...
- arcgis api for flex 除去 esri map控件中的logo标志
在程序的applicationComplete方法中添加下列代码 private function reallyHideESRILogo(map : Map) : void { for(var i : ...
- [c#]如何在form的webbrowser控件中获得鼠标坐标
如图这样,其实是要插入一个time的控件,这样才能使得坐标值会根据鼠标的移动而不停变化.time插件中写private void timer1_Tick(object sender, EventArg ...
- CListCtrl控件中显示进度条
CListCtrl控件的subitem中显示进度条 http://www.codeproject.com/Articles/6813/List-Control-Extended-for-Progres ...
- 在ProgressBar控件中显示进度百分比
实现效果: 知识运用: ProgressBar控件的Value属性 //控件的当前值 Maximum属性 //ProgressBar正在使用的范围的上限 PerformStep方法 //按照Step属 ...
- 在DataGridView控件中显示图片
实现效果: 知识运用: DataGridView控件的DataSource属性 实现代码: private void Form1_Load(object sender, EventArgs e) { ...
随机推荐
- Ace of Aces
Description There is a mysterious organization called Time-Space Administrative Bureau (TSAB) in the ...
- 基础知识(9)- Swing用户界面组件
9.1 Swing和模型-视图-控制器设计模式 9.1.1 设计模式 9.1.2 模型-视图-控制器模式 9.1.3 Swing按钮的模型-视图-控制器分析 9.2 布局管理概述 9.2.1 ...
- CListCtrl插入数据避免闪烁
1.锁定窗口,不进行刷新 m_list.LockWindowUpdate(); 2.设定列表不进行重画 m_list.SetRedraw(FALSE); 3.清空列表,删除历史数据 m_list.De ...
- 5.中文问题(自身,操作系统级别,应用软件的本身),mysql数据库备份
第一层因素: mysql的自身的设置 mysql有六处使用了字符集.分别为:client .connection.database.results.server .system. mysql&g ...
- oracle 表连接 - hash join 哈希连接
一. hash 连接(哈希连接)原理 指的是两个表连接时, 先利用两表中记录较少的表在内存中建立 hash 表, 然后扫描记录较多的表并探測 hash 表, 找出与 hash 表相匹配的行来得到结果集 ...
- Craig可能是个冲浪爱好者
最近有个叫Dweeb的Mac管理员,在他的blog中声称发现,主管OS X和iOS等软件产品的苹果资深副总裁Craig是一个冲浪爱好者.他通过对6月10日的苹果WWDC发布会视频的研究,指出Craig ...
- 积累的VC编程小技巧之视图
1.如何得到视图指针 [问题提出] 现在你有一个多线程的Demo,你想在多线程里处理视图指针里的函数,我们给这个函数起个名字:Put();该如何实现呢? //有两种方法可以实现你的要求: ...
- CocoaPods的install和update卡在“Anylyzing dependencies”的问题解决方式[效率]
问题 最新CocoaPod更新慢得问题,不管是运行pod install还是podupdate都卡在Anylyzing dependencies. 解决方式 事实上原因是运行两个命令时都会升级Coco ...
- 与众不同 windows phone (26) - Contacts and Calendar(联系人和日历)
原文:与众不同 windows phone (26) - Contacts and Calendar(联系人和日历) [索引页][源码下载] 与众不同 windows phone (26) - Con ...
- NET单元测试的艺术
NET单元测试的艺术 开篇:上一篇我们学习基本的单元测试基础知识和入门实例.但是,如果我们要测试的方法依赖于一个外部资源,如文件系统.数据库.Web服务或者其他难以控制的东西,那又该如何编写测试呢?为 ...