TypeScriptを使用してHERE Mapsを構築する
このチュートリアルでは、HERE Maps API for JavaScriptをTypeScriptおよびWebpackと統合するプロセスについて説明します。これらの手順を実行することで、TypeScriptとWebpackを使用したHERE Maps API for JavaScriptをプロジェクトで最大限に活用するための包括的な環境が設定されます。
開始する前に
システムに次のソフトウェアがインストールされていることを確認します。
- Node.js - Web ブラウザーの外部で JavaScript コードを実行できる JavaScript ランタイム環境
- NPM (Node Package Manager ) - Node.js プロジェクトの依存関係 (ライブラリとツール) のインストール、共有、管理を円滑にする Node.js のパッケージ マネージャー
TypeScriptプロジェクトを構成する
HERE Maps API for Javascriptを含む基本的なTypeScriptプロジェクトを作成するには、次の手順を実行します。
-
TypeScriptプロジェクトのフォルダーを作成します。
-
コマンドプロンプトを開き、ディレクトリをプロジェクトフォルダーに変更します。
-
次のコマンドを使用して、公開されているHERE Maps API for JavaScriptリポジトリをNPM設定に追加し、NPMでHERE Maps API for JavaScriptを使用できるようにします。
npm config set @here:registry https://repo.platform.here.com/artifactory/api/npm/maps-api-for-javascript/ -
次のコマンドを実行して、プロジェクトの
package.jsonファイルを初期化します。npm init注
Node.js環境では、コマンドラインに一連の質問を表示して、プロジェクトの基本設定を行うように求められます。この初期化プロセス中に
package.jsonファイルをカスタマイズするための入力を提供することも、デフォルト設定を受け入れることもできます。 -
最終確認プロンプトで
yesと入力し、package.jsonの生成を完了します。 -
次のコマンドを入力して、HERE Maps API for Javascriptライブラリを依存関係として含めます。
npm install @here/maps-api-for-javascript -
次のコマンドを使用して、Webpackの開発依存関係をインストールします。
npm install --save-dev webpack webpack-cli -
次のコマンドを入力して、TypeScriptのコンパイラとローダーをインストールします。
npm install --save-dev typescript ts-loader -
プロジェクトフォルダーに、次の構造で
tsconfig.jsonという名前のファイルを作成します。{ "compilerOptions": { "outDir": "./dist/", "noImplicitAny": true, "module": "es6", "target": "es5", "jsx": "react", "allowJs": true, "moduleResolution": "node" } }このファイルは、次の設定でTypeScriptコンパイラを構成するために使用されます。
"outDir": "./dist/":コンパイルされたJavaScriptファイルの出力ディレクトリを設定します。このケースでは、tsconfig.jsonファイルと同じディレクトリにあるdist/というフォルダーにコンパイルされたファイルが配置されます。"noImplicitAny": true:TypeScriptが明示的な型を指定せずに宣言されている場合に、TypeScriptがany型を変数に自動的に追加するのを防ぎます。"module": "es6":コンパイルされたJavaScriptファイルのモジュールシステムをES6に設定します。"target": "es5":コンパイルされたJavaScriptコードのターゲット言語バージョンを設定します。このケースでは、ターゲット言語がES5に設定されています。"jsx": "react":JSXファイルのコンパイル時にReact構文を使用するようにTypeScriptを構成します。"allowJs": true:TypeScriptファイル (.tsおよび.tsxファイル) と一緒にJavaScriptファイル (.jsファイル) をコンパイルすることを許可します。"moduleResolution": "node":コンパイラのモジュール解決方法を設定します。このケースではNode.jsです。
-
プロジェクトフォルダーで、次の
webpack.config.jsファイルを作成します。const path = require('path'); module.exports = { entry: './index.ts', module: { rules: [{ test: /\.tsx?$/, use: 'ts-loader', exclude: /node_modules/, }], }, resolve: { extensions: ['.tsx', '.ts', '.js'], }, output: { filename: 'index.js', path: path.resolve(__dirname, 'dist'), }, mode: 'production', node: { global: false, }, performance: { maxEntrypointSize: 2048000, maxAssetSize: 2048000 } };このファイルは、Webpackを使用して小規模から中規模のTypeScriptアプリケーションを構築するための開始点として使用できる基本的な構成を提供します。設定は次のとおりです。
index.tsにあるエントリーポイントでTypeScriptアプリケーションをコンパイルします。- コンパイルされたコードを
distというディレクトリに出力します。 - 最適化にプロダクションモードを使用します。
- 大きなファイルが生成されないように、パフォーマンス制限を設定します。
詳細については、Webpackのドキュメントを参照してください。
-
プロジェクトフォルダーで、次の
index.tsファイルを作成します。これはTypeScriptコードのエントリーポイントです。
注
apikey属性の値は、独自のHERE APIキーに置き換えてください。
// Import the HERE Maps API for JavaScript library
import "@here/maps-api-for-javascript";
// Create default map layers using the HERE Maps platform
const platform = new H.service.Platform({
apikey: 'YOUR_HERE_APIKEY',
});
// Create a new map instance with specified options
const maptypes = platform.createDefaultLayers({ppi:250});
const map = new H.Map(
document.getElementById("mapContainer"), // Target HTML element for the map
maptypes.vector.normal.map, // Use the vector map type
{
pixelRatio: 2,
zoom: 11,
center: { lng: 14.3279, lat: 40.8352 },
}
);
// Enable basic map events for user interaction
new H.mapevents.Behavior(new H.mapevents.MapEvents(map));-
プロジェクトフォルダーで、次の
index.htmlファイルを作成します。<html> <head> <meta name="viewport" content="initial-scale=1.0, width=device-width" /> <meta charset="utf-8"> <style> #map { position: absolute; left: 0; top: 0; width: 100%; height: 100%; } </style> </head> <body> <div id="mapContainer"></div> <script src="./dist/index.js"></script> </body> </html>このファイルは、Web アプリが Web ブラウザーに読み込まれるときの主要エントリー ポイントです。
結果:最終的なプロジェクト フォルダー構造は、次のファイルとフォルダーで構成されます。
project folder (root)-
node_modules/ -
index.html -
index.ts -
package.json -
package-lock.json -
tsconfig.json -
webpack.config.jsonヒント
HTML定義を使用すると、次の例に示すように、faviconなどの追加の参照を参照できます。
<link rel="icon" href="./assets/favicon.ico" type="image/x-icon" />
-
-
プロジェクトフォルダーで、
package.jsonファイルを開き、次のコマンドをscriptsセクションに追加します。"build": "webpack"buildスクリプト実行コマンドを追加した後、端末でnpm run buildコマンドを実行すると、プロジェクトの設定で定義されているWebpackバンドルプロセスがbuildスクリプトによって自動的にトリガーされます。 -
次のコマンドを実行して、バンドルされた出力を構築して生成します。
npm run build構築が完了すると、コマンド プロンプトに成功メッセージが表示され、マップの管理を行った JavaScript コードを含む
distフォルダーが作成されます。 -
プロジェクト フォルダーから Web ブラウザー ページで
index.htmlファイルを開きます。
結果:次の例に示すように、Web ページに双方向的 HERE マップが表示されます。

次のステップ
HERE Maps API for Javascriptの設計とフィーチャーの詳細については、「APIリファレンス」を参照してください。
14 日前の更新