[Windows Phone] 在Windows Phone应用中使用Google Map替代Bing Map

最近做一个应用,其中用到地图及相关功能,默认情况下没有找第三方的地图API,直接用了自带的Bing Map控件,但是用了一段时间发现Bing Map对于中国用户来说还是不行,很多地理位置没有标明,而且不够细致,所以立刻想到的就是Google Map,于是找了一下相关资源,在Windows Phone应用中使用Google Map其实非常简单,下面详述一下步骤:

1. 有一个封装好的DLL类库:googlemaps.dll(点击下载),这个是核心内容,在项目里首先添加该DLL的引用:

2. 添加到XAML文件中几个引用并命名:

 

xmlns:my="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps"  
xmlns:GoogleTileSource="clr-namespace:googlemaps;assembly=googlemaps" 
xmlns:MSPCMCore="clr-namespace:Microsoft.Phone.Controls.Maps.Core;assembly=Microsoft.Phone.Controls.Maps"

 

3. 调用Google Map,这里要先简单说一下,比起iOS开发来说WP开发实在太方便了,也多亏了这个DLL写的好,只要将原有的Bing Map控件中嵌套一点内容即可,添加标签及获取地理位置完全不影响,XAML内容如下:

 

<my:Map x:Name="mMain" Margin="0,0,0,0" CopyrightVisibility="Collapsed" LogoVisibility="Collapsed" ScaleVisibility="Visible" CredentialsProvider="ApBXPZf5IR94SLXE8nh5FYsb5WHKrH1XPY7428-EqQudseivcWhCROIJvGmtnkAV"> 
    <my:MapTileLayer Name="street" Margin="0,0,0,32"> 
        <my:MapTileLayer.TileSources> 
            <GoogleTileSource:GoogleTile TileTypes="Street"> 
            </GoogleTileSource:GoogleTile> 
        </my:MapTileLayer.TileSources> 
    </my:MapTileLayer> 
</my:Map>

 

就这么简单,具体内部实现我也没研究,有兴趣的大家可以找找这个DLL的源码。

效果如下:

希望这个例子对大家有用!

时间: 2024-10-25 14:45:39

[Windows Phone] 在Windows Phone应用中使用Google Map替代Bing Map的相关文章

如何在Windows NT、Windows 2000和Windows XP中使用VDMDBG函数

摘要 即使是在 32位环境中编写程序,也经常碰到处理 16位应用程序的情况.在 Windows NT 中,16位程序是运行在虚拟 DOS 机(VDM)中的.VDMDBG.dll 包含许多处理16位程序的有用函数,这个库是 Platform SDK 的一部分. VDMDBG 中的函数提供了很好的方式在 VDM 中枚举.创建和终止 16位进程(任务).本文将描述如何在Windows NT.Windows 2000 和 Windows XP 中使用这些函数. 如果需要使用 VDMDBG 函数,你的工程

怎么把Boot Camp中Windows系统至Parallels Desktop虚拟机中

  要通过Parallels Desktop从Boot Camp使用Windows,首先要将Parallels Desktop设置为从Boot Camp分区运行Windows.运行Parallels Desktop,在菜单栏中选择"文件"-"新建";在虚拟机安装向导中选择"从Boot Camp使用Windows". 在下一步中,需要重新激活Windows,勾选"我要继续",然后点击"继续";接下来会自动进入

[原创]一个简单的windows HOOK - 隐藏进程管理器中特定的进程

一个简单的windows HOOK - 隐藏进程管理器中特定的进程  (适用平台:windows 2000 sp4,windows XP sp2)           屏蔽任务管理器中的进程名称有很多种方法,可以在ring0级做文章: 修改内核进程链表,拦截内核API等.我这里只给出win32下的实现,原 理是最普通的 windows 钩子机制.实现语言 win32 汇编 (masm32):   0 在DllEntry中处理资源取得和产生"工作"线程: mov eax,_hinstan

windows历史记录功能在java程序中如何实现

问题描述 windows历史记录功能在java程序中如何实现顺便问问在程序窗口外怎么捕捉鼠标事件 解决方案 解决方案二:+2++2+2+2解决方案三:这个没接触过,学学看吧

windows-如何用C++ 向Windows 无盘符的分区中写入数据

问题描述 如何用C++ 向Windows 无盘符的分区中写入数据 我现在想要向Windows 8.1的UEFI保留分区(ESP分区)中写入数据,但是ESP分区默认是没有挂在的,那么要怎样的才能向该分区中写入数据呢?还望各位赐教,谢谢 解决方案 貌似你是想写自己的bootloader 你需要EFI Development Kit (EDK) 和 EFI Toolkithttp://sourceforge.net/projects/efidevkit/http://tianocore.sourcef

Windows 10如何在命令行中执行Windows Defender

大家都知道 Windows Defender 是 Windows 10 中内置的反病毒.反恶意软件工具,通常情况下,它只在后台默默保护用户环境的安全.当然在用户需要的时候,也可通过其简洁明了的 GUI 图形界面进行更新定义和手动查杀等操作. 不过,你是否知道 Windows Defender 其实是支持在命令行下工作的呢?想必有人已经想到了,只要支持命令行,我们就可以利用其特性执行无限的自定义或计划任务了. MSASCui.exe MSASCui.exe 是 Windows Defender 带

Windows CE系统开发,BSP包中的几个常见文件详解

Windows CE系统开发,BSP包中的几个常见文件详解 BSP介绍(Board Support Package)是介于底层硬件和上层软件之间的底层软件开发包,它主要功能为屏蔽硬件,提供操作系统及硬件驱动,具体功能包括: (1)      单板硬件初始化,主要是CPU的初始化,为整个软件系统提供底层硬件支持: (2)      为操作系统提供设备驱动程序和系统中断服务程序: (3)      定制操作系统的功能,为软件系统提供一个实时多任务的运行环境: (4)      初始化操作系统,为操作

#Windows Phone:在HTML5专案中,如何从Javascript传送字串到C#的APP端

原文:#Windows Phone:在HTML5专案中,如何从Javascript传送字串到C#的APP端 #Windows Phone:在HTML5专案中,如何从Javascript传送字串到C#的APP端 2013/11/29 02:50 | 閱讀數 : 505 | 我要推薦 | Add Comment | 文章分類 : APP HTML5 Windows Phone | 訂閱 在開發Windows Phone APP的HTML5專案中,究竟該如何從Javascript傳給APP的C#程式碼

Windows Phone:如何检查WMAppManifest中的Capability属性

原文:Windows Phone:如何检查WMAppManifest中的Capability属性 在Windows Phone应用中有一个应用程序清单(WMAppManifest.xml),其中对于不同的应用可以设定Capability来告知需要哪些特性或功能,详细内容可以参考官方文档: http://msdn.microsoft.com/zh-CN/library/windowsphone/develop/jj206936(v=vs.105).aspx 比如说,开发一个不需要麦克风的应用,就不