本文档介绍 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。
[顶部]
应用程序工作流
该应用程序的工作流如下。
为行程最多输入 25 个位置。 第一项指定开始和结束位置。
提示
可以选择“停止演示”或“交付演示”,以便用预定义值填充位置区域。
选择旅行方法(驾车或步行)、距离单位(英里或公里)和优化方法(距离最小化、时间最小化或避免塞车)。
如果愿意,请指定优化算法的输入以及是否使用并行计算。 默认情况下会启用并行计算。
备注
“高级选项”部分用作面向开发人员的一个学习工具。这些选项不用在应用程序中。
选择**“获取路线”**以启动该过程。 该应用程序的 JavaScript 部分会将位置和选项传递给 C++ Windows 运行时组件。 C++ 组件会执行以下步骤:
使用 Bing 地图具象状态传输 (REST) 服务检索每个位置的经纬度。 在响应中,Bing 地图会包括与位置字符串匹配的所有可能性。
对于具有多个可能性的所有位置,在 UI 中显示所有可能性并返回步骤 1。
使用 Bing 地图 REST 服务检索从每个位置到其他每个位置的距离(驾车或步行)。 此步骤使用在步骤 a 中获取的纬度和经度值。
计算所有位置中的优化路线,并将该路线传递给应用程序的 JavaScript 部分。
HTML/JavaScript 部分会一步步显示旅行路线,并使用 Bing 地图 AJAX 控件显示优化路线。
你可以与地图进行交互。 在从旅行路线中选择步骤或位置时,AJAX 控件会移至该步骤或位置,并向地图中添加图钉。
下图显示工作流的更基本视图。
.png)
C++ 组件在两个阶段中使用 Bing 地图 REST 服务。 第一个阶段帮助用户验证 Bing 地图中的位置是否正确。 例如,如果指定“Pittsburgh”,Bing 地图可能返回“Pittsburgh, PA”、“Pittsburgh, ON”和“Pittsburgh, GA”作为可能的匹配项。 如果此过程能够尽早地解决歧义问题,在运行第二阶段(检索每两个不同点之间的距离)时就不会遇到歧义位置。
备注
我们本可使用应用程序 JavaScript 部分的 Bing 地图 REST 服务进行通信。由于我们要演示如何与 REST 界面通信并分析来自 C++ 的 XML 响应,因此我们将其添加到了 C++ 组件中。
[顶部]
后续步骤
阅读在 Bing 地图行程优化器示例中使用 JavaScript以获取相关信息,了解如何在 Bing 地图行程优化器应用程序中使用 JavaScript。
[顶部]