导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

如何将地图控件添加到 Windows Phone 8 中的页面

2014/6/18

仅适用于:Windows Phone 8 和 Windows Phone Silverlight 8.1

 

本主题介绍了向 Windows Phone 8 项目添加 Map 控件的各种方法。Map 控件属于 Windows Phone SDK 8.0 中库的一部分。由于 Map 控件不是内存中的核心控件,因此必须先正确引用它,然后才能使用它。在将控件添加到项目之前,您还必须添加 ID_Cap_Map 功能。

提示提示:

本主题介绍了如何编写用于在应用中显示地图的代码。如果只想显示地图,您也可以使用地图任务,它将启动内置“地图”应用。有关详细信息,请参见如何使用 Windows Phone 8 的地图任务

Icon to indicate an SDK sample

要获取演示本主题中描述的某些任务的示例,请下载简单地图控件示例

对于地图 API 的有用扩展(包括图钉),请下载 Windows Phone 工具包

本主题包括以下部分。

 

您必须在添加 Map 控件之前添加 ID_Cap_Map 功能。

添加 ID_Cap_Map 功能

  1. 在 Visual Studio 2012 中,创建一个名为 MapApplication 的新的 Windows Phone 8 项目。

  2. 在 MapApplication 项目中,单击“属性”文件夹,然后双击“WMAppManifest.xml”文件。

  3. “WMAppManifest.xml”文件中,单击“功能”选项卡。

  4. “功能”表中,选择“ID_Cap_Map”功能。

若要添加 Map 控件并正确引用它,最简单的方法是将它从“工具箱”拖放到 XAML 设计器或 XAML 视图中。

从工具箱添加地图控件

  1. 在 MapApplication 项目中,打开“工具箱”,然后打开“所有 Windows Phone 控件”

  2. Map 控件从“工具箱”拖到 XAML 或设计器视图中。

    Visual Studio 会自动执行以下任务。

    • 添加对 Microsoft.Phone.Maps 程序集的引用。

    • 在 XAML 页的 <phone:PhoneApplicationPage> 开始标记中,添加以下针对 SDK 命名空间的 XAML 命名空间声明。

      xmlns:Controls="clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps"
      
    • 如果您将控件拖到 XAML 视图中,则将以下 XAML 添加到您的页中。

      <Controls:Map />

      - 或 -

    • 如果您将控件拖到设计视图中,则添加以下 XAML。

      <Controls:Map HorizontalAlignment="Left" Margin="158,265,0,0" VerticalAlignment="Top"/>
      

若要使用 XAML 手动添加 Map 控件,您必须首先添加对 Microsoft.Phone.Maps 程序集的引用,然后必须将一个 XML 命名空间映射到程序集。

在 Visual Studio 中添加对 Microsoft.Phone.Maps 程序集的引用

  1. 在 MapApplication 项目中,单击“项目”菜单,然后选择“添加引用”

  2. “引用管理器”对话框中,单击“浏览”

  3. 浏览至 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0。

  4. 双击 Microsoft.Phone.Maps.dll 文件。

  5. 单击“确定”。

添加 XML 命名空间映射

  1. 打开 MainPage.xaml。

  2. 在 XAML 页的 <phone:PhoneApplicationPage> 开始标记中,添加以下针对 SDK 命名空间的 XAML 命名空间声明。

    xmlns:Controls="clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps"
    

使用 XAML 添加地图控件

  1. 打开 Mainpage.xaml。

  2. 将下列 XAML 添加到 ContentPanel 网格。

    <Controls:Map></Controls:Map>
    

一旦有了对 Microsoft.Phone.Maps 程序集的引用,就可以使用代码添加 Map 控件了。下列示例创建一个名为 MyMap 的 Map,并将其添加到 ContentPanel 网格。

使用代码添加地图控件

  1. 打开 MainPage.xaml.cs。

  2. 添加以下 using 语句。

    Using Microsoft.Phone.Maps.Controls;
    
  3. 添加以下代码。

    
    public MainPage()
    {
       InitializeComponent();
       Map MyMap = new Map();
       ContentPanel.Children.Add(MyMap);
    }
    

您必须先从 Windows Phone 开发人员中心 获取 ApplicationIdAuthenticationToken,并且将值添加进您的代码,然后才能发布使用地图控件的应用。您获取的值特定于您为之发出请求的单个应用。

从开发人员中心 获取 ApplicationID 和 AuthenticationToken 的步骤

  1. 当您完成您的应用之后,即可开始应用的提交过程。

  2. “提交应用”页面上,点击“地图服务”

    “地图服务”页面打开。

  3. 在 页面上,单击“获取标记”

    新的 ApplicationIDAuthenticationToken 显示在同一页面上。

  4. 将值复制并粘贴进您的代码中,如下所示。

  5. 用新代码重建您的应用,然后将更新后的副本上传至商店。

在第一个地图控件加载(不仅仅是实例化)之后,您必须设置 ApplicationIdAuthenticationToken 属性的值。如果您销毁应用中地图控件的所有实例,然后创建新的实例,那么您必须再次设置这些属性。

在您的代码中指定 ApplicationID 和 AuthenticationToken 的步骤

  1. 在 Visual Studio 中,使用您的代码创建地图控件的加载事件的事件处理程序。

  2. 复制您从开发人员中心 中获取的每一个值,将它们分配至各自的属性,如以下代码所示:

            private void myMapControl_Loaded(object sender, RoutedEventArgs e)
            {
                Microsoft.Phone.Maps.MapsSettings.ApplicationContext.ApplicationId = "ApplicationID";
                Microsoft.Phone.Maps.MapsSettings.ApplicationContext.AuthenticationToken = "AuthenticationToken";
            }
    
    

对地图服务的继续使用应遵守使用条款。Microsoft 可能与 Nokia 共享使用地图服务的开发人员 ID,因为 Nokia 可提供其中某些服务。

显示:
© 2014 Microsoft