共用方式為


以 JavaScript 和 C++ 開發使用 Bing 地圖服務路線最佳化程式這個 Windows 市集應用程式

這部分文件中的文章說明如何使用 JavaScript 和 Visual C++ 建立名為 Bing 地圖服務路線最佳化程式的 Windows 市集應用程式。 與網站不同的是,使用 JavaScript 的 Windows 市集應用程式不會從 Web 伺服器逐頁部署。 相反地,它會由使用者安裝在電腦上。 就像其他 Windows 應用程式一樣,JavaScript Windows 市集應用程式可以直接存取基礎平台,而且可與其他應用程式共用資訊。

在 JavaScript Windows 市集應用程式中使用 C++,完全操控電腦的功能。 Bing Maps Trip Optimizer 使用 JavaScript,在 Windows 執行階段 C++ 元件中定義 UI 和平行模式程式庫 (PPL),以在所有可用的 CPU 上平行執行密集運算的演算法,進而改善整體效能。 您也可以使用程式庫 (例如 C++ Accelerated Massive Parallelism (C++ AMP),在圖形處理單元 (GPU) 上執行密集運算的工作。

注意事項注意事項

若要下載 Windows 市集版本的 Bing 地圖服務路線最佳化程式原始程式碼,請參閱 Bing 地圖服務路線最佳化程式範例 (英文)。

Bing Maps Trip Optimizer 應用程式是以現有的程式碼為基礎,而現有程式碼乃使用 HTML 和 JavaScript 來定義 UI 和 C++ ActiveX 控制項,以執行背景處理。 這一部分的文件還描述我們如何將 ActiveX 版本的應用程式移轉到 Windows 市集應用程式,以及將現有 JavaScript 和 ActiveX 程式碼移轉為 Windows 市集應用程式碼時的一些考量。 若要下載 ActiveX 版本的 Bing 地圖服務路線最佳化程式原始程式碼,請參閱 Bing 地圖服務路線最佳化程式範例 (英文)。

提示

當我們將 ActiveX 版本的 Bing 地圖服務路線最佳化程式轉換為 Windows 市集應用程式時,我們也會維護 JavaScript 和 C++ 的使用。不過,如果您要從頭開始建立這個應用程式,您可以使用其他語言。例如,您可以使用 XAML 定義 UI 和 .NET Framework,以執行路由運算。如需如何為您的應用程式選擇正確語言和技術的資訊,請參閱 Windows 市集應用程式入門

您也可以建立採用 JavaScript 和 .NET Framework 的混合語言應用程式。如需這類應用程式的詳細資訊,請參閱在 C++ 和 Visual Basic 中建立 Windows 執行階段元件

雖然 Bing 地圖服務路線最佳化程式說明的設計樣式是我們認為使用 JavaScript 和 C++ 來建立 Windows 市集應用程式的最佳作法,但是您可以調整許多實作細節,以符合您自己的作法和您所開發的應用程式的獨特需求。 例如,應用程式的 C++ 部分會使用 IXMLHTTPRequest2 介面來處理 HTTP 要求。 您可以在您的應用程式中依循相同的模式。 當我們認為 Bing Maps Trip Optimizer 實作是成功開發應用程式的關鍵時,我們會在此文件中強調。

本文內容

  • 介紹 Bing Maps Trip Optimizer

  • 必要條件

  • 本文件的對象

  • 本文件涵蓋的範圍

  • 本文件未涵蓋的範圍

  • 後續步驟

  • 相關文章

介紹 Bing Maps Trip Optimizer

Bing Maps Trip Optimizer 可計算一組位置中的最短路由 (這個傳統計算問題也稱為「旅行業務員問題」(Traveling Salesman Problem))。 旅行業務員問題通常是以強行攻擊技巧來破解:計算出所有位置中的每一條可能路由並選擇最短的路由。 隨著您增加位置的個數,這個問題的困難度會以等比級數增加。 因為強行攻擊方式可能無法在合理的時間內解決較大型的問題,所以 Bing Maps Trip Optimizer 使用「蟻群最佳化」(Ant Colony Optimization) 演算法,更迅速、有效地接近最短的路由。

Bing Maps Trip Optimizer UI 是以 HTML 和 JavaScript 撰寫。 UI 會向使用者收集位置資料,並在 Bing Maps AJAX 控制項上顯示所有位置之間的最短路由。 最短路由計算和與 Bing Maps 具像狀態傳輸 (REST) API 的互動則是以 C++ 撰寫。 語言之間的平順互通性是 Windows 執行階段的關鍵,因為它可讓您將每種語言的最佳功能合併成一個應用程式。 在 Bing Maps Trip Optimizer 的案例中,HTML 和 JavaScript 用於定義 UI,而 C++ 則用於執行更密集運算作業。

使用 Bing 地圖服務路線最佳化程式

雖然許多 Windows 市集應用程式都使用黯淡展示主題,協助延長行動裝置的電池壽命,但我們仍採用明亮展示更貼近 Bing 地圖服務網站。 採用明亮主題也可協助您比較應用程式的 Windows 市集與 ActiveX 版本之間的差異。

注意事項注意事項

Bing Maps Trip Optimizer 的主要目的在於示範如何在 JavaScript 與 C++ 之間相互操作。我們也想顯示如何調整現有的程式碼以供在 Windows 市集應用程式中使用。因此,UI 不符合造就優越 Windows 市集應用程式的所有使用者經驗 (UX) 方針。請參閱設計個案研究:Windows 市集應用程式的網站,了解如何將網站轉型以建立真正豐富的使用者經驗。

[頂端]

必要條件

如果您不清楚如何在 Windows 市集應用程式中使用 JavaScript,請考慮是否要閱讀開發 Windows 市集應用程式 (JavaScript)。 這篇文章會逐步引導您建立完整但基本的 JavaScript Windows 市集應用程式。

如需 JavaScript Web 應用程式與為 Windows 執行階段撰寫的 JavaScript Windows 市集應用程式有何差異的詳細資訊,請參閱使用 JavaScript 與傳統 Web 應用程式的 Windows 市集應用程式

[頂端]

本文件的對象

如果您想用 JavaScript 撰寫 Windows 市集應用程式,而且也想使用 C++ 來執行下列作業,就可能會對這個範例和文件有興趣:

  • 改善效能或執行密集運算作業。

  • 存取在目前版本中無法透過 Windows 執行階段存取的 Windows 作業系統服務。

  • 重複使用已撰寫並測試的現有程式碼。

我們希望您使用本文件中的原則和作法,建立同時採用 C++ 的 JavaScript Windows 市集應用程式。 具有 C++ 的經驗或懷有濃厚興趣有助於讓您充分利用本文件。 即使您沒有 C++ 設計的經驗,只要使用過類似的程式設計語言或 .NET Framework,仍然可以受益。

如需如何用 C++ 建立可從使用 JavaScript 建置的 Windows 市集應用程式呼叫之 Windows 執行階段元件的基本簡介,請參閱在 C++ 中建立 Windows 執行階段元件

[頂端]

本文件涵蓋的範圍

這部分文件中的文章說明如何:

  • 使用 Visual Studio 建立參考 C ++ Windows 執行階段元件的 JavaScript Windows 市集應用程式。

  • 將 JavaScript 程式碼分為參考 Web 和 Windows 執行階段元件的模組。

  • 建立 C ++ Windows 執行階段元件,以執行密集運算作業。

  • 在 JavaScript 和 C++ 之間相互操作。

  • 移轉程式碼 (例如,現有的 COM 程式碼),以便在 Windows 市集應用程式中使用。

[頂端]

本文件未涵蓋的範圍

本文件不探討下列 Windows 市集應用程式開發層面:

  • 應用程式設計原則。

  • C++ 或 JavaScript 程式設計基礎。

  • 有關蟻群最佳化演算法的詳細資料。

  • 如何對應用程式的行為或效能問題進行疑難排解。

  • 如何準備您的應用程式以便用於其他地區設定。

  • 如何將應用程式認證和發行到 Windows 市集。

此應用程式的焦點在於 JavaScript 和 C++ 之間的互通性。 因此,我們不會實作可造就優越 Windows 市集應用程式的每項功能。 我們未實作的其中一項重要功能,就是當使用者在應用程式關閉後執行時 (例如,在重新開機之後),還原應用程式狀態的功能。 如需示範此功能的範例,請參閱應用程式啟用、繼續和暫止範例 (英文)。

下列資源可協助您了解 Windows 市集應用程式開發。

[頂端]

後續步驟

如需如何載入及執行專案和整個應用程式流程的資訊,建議您閱讀 使用 Bing 地圖服務路線最佳化程式範例概觀。 下表說明這部份文件中的文章,方便您參考。

[頂端]

相關文章

標題

描述

使用 Bing 地圖服務路線最佳化程式範例概觀

說明 Bing Maps Trip Optimizer 專案的基本特性,例如,如何建立和建構該專案,以及其建置方式。

在使用 Bing 地圖服務路線最佳化程式範例中使用 JavaScript

說明如何組織應用程式的 JavaScript 部分,以及本機和 Web 內容如何彼此通訊。

在使用 Bing 地圖服務路線最佳化程式範例中使用 C++

說明 Bing Maps Trip Optimizer 的 C++ 元件。

在使用 Bing 地圖服務路線最佳化程式範例中 JavaScript 和 C++ 的互通性

說明 Bing Maps Trip Optimizer 範例的 JavaScript 和 C++ 組件如何相互操作。

移轉使用 Bing 地圖服務之路線最佳化程式範例中的程式碼

特別說明當我們從 ActiveX 版本的 Bing 地圖服務路線最佳化程式移轉至 Windows 市集應用程式時所遵循的一些主要方針。

[頂端]

請參閱

概念

建立 Windows 執行階段元件

其他資源

Roadmap for Windows Store apps using C++