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

如何为 Windows Phone 8 请求行车或步行路线

2014/6/18

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

本主题介绍了如何编写一个应用,用于从安装在手机上的另一应用请求到指定目的地的行车或步行路线。您通过使用 ms-drive-toms-walk-to URI 方案来请求路线。

提示提示:

本主题介绍了如何编写用于从安装在手机上的另一应用请求路线的代码。用户可能安装了多个可以处理路线请求的应用。当您使用本主题介绍的方法时,用户可以选择要使用哪个应用显示路线。如果只想显示路线,您也可以使用地图路线任务,它将启动内置地图应用。有关详细信息,请参阅如何使用 Windows Phone 8 的地图路线任务

Icon to indicate an SDK sample

要获取演示本主题中介绍的某些任务的示例,请下载导航 URI 方案示例

有关使用 URI 来启动另一应用的详细信息,请参见使用 Windows Phone 8 的文件和 URI 关联自动启动应用。有关如何编写响应路线请求的应用的信息,请参见如何响应 Windows Phone 8 的路线请求

下面的屏幕截图演示允许用户请求到所选目的地的行车路线的内置应用。

An app that uses the ms-drive-to protocol

本主题包括以下部分。

Format

用于启动路线请求的 URI 具有以下格式:

ms-drive-to:?destination.latitude=<latitude>&destination.longitude=<longitude>&destination.name=<name>

ms-walk-to:?destination.latitude=<latitude>&destination.longitude=<longitude>&destination.name=<name>

您不在请求中指定起点。将假定起点为当前位置。

您无需对 URI 或 name 值进行编码。

示例

以下示例显示了到美国华盛顿州雷德蒙德市的请求路线的 URI:

ms-drive-to:?destination.latitude=47.6451413797194&destination.longitude=-122.141964733601&destination.name=Redmond, WA

ms-walk-to:?destination.latitude=47.6451413797194&destination.longitude=-122.141964733601&destination.name=Redmond, WA

下面的代码示例演示如何从安装在手机上的另一应用请求到指定目的地的行车路线。此示例获取所需的参数值后,会将其汇编到 URI 中。然后将使用 LaunchUriAsync 方法来调用 URI。

请求路线的步骤

  1. 在 Visual Studio 中,创建一个空的新 Windows Phone 项目。

  2. 在主页的代码隐藏文件中,粘贴以下方法。

            async void RequestDirections()
            {
                // Get the values required to specify the destination.
                string latitude = "47.6451413797194";
                string longitude = "-122.141964733601";
                string name = "Redmond, WA";
    
                // Assemble the Uri to launch.
                Uri uri = new Uri("ms-drive-to:?destination.latitude=" + latitude + 
                    "&destination.longitude=" + longitude + "&destination.name=" + name);
                // The resulting Uri is: "ms-drive-to:?destination.latitude=47.6451413797194
                //  &destination.longitude=-122.141964733601&destination.name=Redmond, WA")
    
                // Launch the Uri.
                var success = await Windows.System.Launcher.LaunchUriAsync(uri);
    
                if (success)
                {
                    // Uri launched.
                }
                else
                {
                    // Uri failed to launch.
                }
            }
    
    
  3. 在类的构造函数中,添加对 RequestDirections 方法的调用。

  4. 运行应用。

    • 如果模拟器或手机没有任何可提供路线的应用,则会提示您在 Windows Phone 应用商店 中查找应用。

    • 如果模拟器或手机仅有一个可提供路线的应用,则会自动启动该应用。

    • 如果模拟器或手机有多个可提供路线的应用,则会提示您从列表中选择一个应用。

有关如何编写响应路线请求的应用的信息,请参见如何响应 Windows Phone 8 的路线请求

显示:
© 2015 Microsoft