如何在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) { ...
随机推荐
- 用angularjs开发下一代web应用(二):angularjs应用骨架(二)
1.浅谈非入侵式JavaScript <div ng-click="doSomething()">...</div>这些指令和原来的事件处理器有下面不同之处 ...
- 一种根据URL参数条件动态生成URL的方法
最近做了一个产品列表页类似于搜索列表页, 功能比较简单,比搜索页复杂的逻辑在于,生成各个查询条件的URL.我们的链接如下: http://xxx.xxx.xxx/product/list.html?s ...
- 研究一下TForm.WMPaint过程(也得研究WM_ERASEBKGND)——TForm虽然继承自TWinControl,但是自行模仿了TCustomControl的全部行为,一共三种自绘的覆盖方法,比TCustomControl还多一种
先擦除背景: procedure TCustomForm.WMEraseBkgnd(var Message: TWMEraseBkgnd); begin if not IsIconic(Handle) ...
- 关于如何解决谷歌Chrome浏览器空白页的问题
谷歌Chrome浏览器突然不打开任何网页,无论是任何站点(如http://www.baidu.com), 还是Chrome浏览器的设置页面(chrome://settings/), 扩展页面 ( ch ...
- 禁用viewstate
<asp:Dropdownlist/>禁用viewstate以后 public partial class _Default : System.Web.UI.Page { ...
- SQL视图和多表连接
本篇博客关注的焦点是视图的使用以及视图和多表连接的配合.以便可以了解视图,以及更好的使用视图. 首先,还是要说明一下视图的定义:视图是基于SQL语句的结果集的可视化虚拟表,换句话说视图就是SQL查询结 ...
- json转换成list map集合
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Set; i ...
- JS-JavaScript学习笔记(一)
javaScript 1.文档的输出:document.write() 可输出字符,表达式,html标签.函数 2.不论什么类型和字符串相加,都会被转换成字符串类型. 比如:var i=5; var ...
- Swift - 自定义单元格实现微信聊天界面
1,下面是一个放微信聊天界面的消息展示列表,实现的功能有: (1)消息可以是文本消息也可以是图片消息 (2)消息背景为气泡状图片,同时消息气泡可根据内容自适应大小 (3)每条消息旁边有头像,在左边表示 ...
- 利用PHP SOAP扩展实现简单Web Services
原文:利用PHP SOAP扩展实现简单Web Services WebServices能干什么? WebServices 可以将应用程序转换为网络应用程序. 通过使用 WebServices,您的应用 ...