Bing 地图行程优化器示例概述

本文档介绍 Bing 地图行程优化器项目的基本特征,例如,其创建、构造和生成方式。

备注

对应于本文档的代码示例可在 Bing 地图行程优化器示例中找到。

本文内容

  • 创建 Visual Studio 项目

  • 生成、部署和运行示例

  • 应用程序工作流

  • 后续步骤

在 Visual Studio 中创建 Visual Studio 项目

如果你已下载并解压缩示例,则可在 Visual Studio 中打开 TripOptimizer.sln 解决方案文件,然后就可以看到代码。 还可以在 Bing 地图行程优化器示例 MSDN 样本库页上通过选择**“浏览代码”**选项卡来查看源。

为 Bing 地图行程优化器创建 Visual Studio 项目时,我们使用了 JavaScript 的**“空白应用程序”模板创建主应用程序项目,使用 Visual C++ 的“Windows 运行时组件”**模板创建 C++ 类库。 JavaScript 项目引用 C++ 项目。 文档用 C++ 创建 Windows 运行时组件说明如何设置项目引用。

对于 JavaScript 项目,**“空白应用程序”模板提供作为 Windows 应用商店应用程序运行所需的基本功能。 使用此模板创建一个空应用程序。 Visual Studio 包含提供增强版初始功能的其他模板。 Bing 地图行程优化器使用“空白应用程序”**模板随附的默认文件并添加了其他图像和代码文件。

**“WinRT 类库”**模板中的一个重要项目设置是 /ZW 选项,它使程序能够使用 Windows 运行时语言扩展。

警告

/ZW 选项与 /clr 之类的选项不兼容。这意味着不能在同一 Visual C++ 项目中同时面向 .NET Framework 和 Windows 运行时。

Windows 应用商店中的每个 Windows 应用商店应用程序都以应用程序包的形式提供。 应用程序包包含包清单,其中包含有关应用程序的信息。 例如,可以指定应用程序的功能,功能用于定义应用程序对受保护系统资源或用户数据的访问权限。 如果确定你的应用程序需要某些功能,请使用包清单来声明这些功能。 Bing 地图行程优化器指定**“Internet (客户端)”**,以允许应用程序访问 Bing 地图 Web 服务。 有关应用程序包和功能的详细信息,请参见App packages and deployment

有关在 Visual Studio 集成开发环境 (IDE) 中可供 JavaScript、C++ 和 .NET 项目使用的功能和组件的详细信息,请参见Develop Windows Store apps using Visual Studio

[顶部]

生成、部署和运行示例

生成 Windows 应用商店应用程序项目,就像生成标准项目一样。(在菜单栏上,选择**“生成”“生成解决方案”**)。 生成步骤编译代码,还将其打包以用作 Windows 应用商店应用程序。

在生成项目后,必须部署它。(在菜单栏上,选择**“生成”“部署解决方案”**)。 Visual Studio 还在你从调试器运行应用程序时部署项目。

在部署项目后,选取 Bing 地图行程优化器磁贴来运行应用程序。 或者,从 Visual Studio 中的菜单栏上选择**“调试”“启动调试”**。 确保 TripOptimizerWebApp 是启动项目。

备注

运行此示例需要 Bing 地图密钥。有关如何获取 Bing 地图密钥的信息,请参见Getting a Bing Maps Key

[顶部]

应用程序工作流

该应用程序的工作流如下。

  1. 为行程最多输入 25 个位置。 第一项指定开始和结束位置。

    提示

    可以选择“停止演示”“交付演示”,以便用预定义值填充位置区域。

  2. 选择旅行方法(驾车或步行)、距离单位(英里或公里)和优化方法(距离最小化、时间最小化或避免塞车)。

  3. 如果愿意,请指定优化算法的输入以及是否使用并行计算。 默认情况下会启用并行计算。

    备注

    “高级选项”部分用作面向开发人员的一个学习工具。这些选项不用在应用程序中。

  4. 选择**“获取路线”**以启动该过程。 该应用程序的 JavaScript 部分会将位置和选项传递给 C++ Windows 运行时组件。 C++ 组件会执行以下步骤:

    1. 使用 Bing 地图具象状态传输 (REST) 服务检索每个位置的经纬度。 在响应中,Bing 地图会包括与位置字符串匹配的所有可能性。

    2. 对于具有多个可能性的所有位置,在 UI 中显示所有可能性并返回步骤 1。

    3. 使用 Bing 地图 REST 服务检索从每个位置到其他每个位置的距离(驾车或步行)。 此步骤使用在步骤 a 中获取的纬度和经度值。

    4. 计算所有位置中的优化路线,并将该路线传递给应用程序的 JavaScript 部分。

  5. HTML/JavaScript 部分会一步步显示旅行路线,并使用 Bing 地图 AJAX 控件显示优化路线。

  6. 你可以与地图进行交互。 在从旅行路线中选择步骤或位置时,AJAX 控件会移至该步骤或位置,并向地图中添加图钉。

下图显示工作流的更基本视图。

应用程序工作流

C++ 组件在两个阶段中使用 Bing 地图 REST 服务。 第一个阶段帮助用户验证 Bing 地图中的位置是否正确。 例如,如果指定“Pittsburgh”,Bing 地图可能返回“Pittsburgh, PA”、“Pittsburgh, ON”和“Pittsburgh, GA”作为可能的匹配项。 如果此过程能够尽早地解决歧义问题,在运行第二阶段(检索每两个不同点之间的距离)时就不会遇到歧义位置。

备注

我们本可使用应用程序 JavaScript 部分的 Bing 地图 REST 服务进行通信。由于我们要演示如何与 REST 界面通信并分析来自 C++ 的 XML 响应,因此我们将其添加到了 C++ 组件中。

[顶部]

后续步骤

阅读在 Bing 地图行程优化器示例中使用 JavaScript以获取相关信息,了解如何在 Bing 地图行程优化器应用程序中使用 JavaScript。

[顶部]