オープンソースのベクトル地図ライブラリ Mapbox GL JS のデバッグがしたいので調べました。
つまり、 Google Maps JavaScript API 以外の方法で、Google Maps のようなベクトル地図レンダリングをしたければ、Mapbox GL JS を使うのが現在の事実上唯一の方法である。
今回は、その足がかりとして、Mapbox GL JS のデバッグ環境を作ります。
大丈夫か・・・?
すでに「yarn って何?」というレベルです・・・。
https://github.com/mapbox/mapbox-gl-js/blob/master/CONTRIBUTING.md に丁寧に書いてあることの写しだけど。
brew install node
で node をインストール(以前 anyenv/ndenv で入れてあったので余裕)brew install yarn
で yarn というやつを入れるcd mapbox-gl-js
でクローンしたリポジトリに移動して、 yarn install
で何かをインストールする(何?)MAPBOX_ACCESS_TOKEN=pk.iEkc36fR… yarn run start-debug
を実行するんでブラウザで http://localhost:9966/debug にアクセスすると、地図が表示されるはずである。
この状態で、 Chrome のデベロッパーツールでデバッグできるけど、効率上げるために Visual Studio Code を使う。その手順が以下。
を参考に。
.vscode/launch.json
が生成されるので、下記の launch.json
のように記述するMAPBOX_ACCESS_TOKEN=pk.iEkc36fR… yarn run start-debug
をしたまま、VSCode のメニュー → デバッグ → デバッグの開始(F5 でもおk)すると、新しいタブに地図が表示される。// launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:9966/debug/",
"webRoot": "${workspaceRoot}"
}
]
}
src/render/draw_line.js
の 14行目あたりにブレークポイントを置いてみる(F9 で)。F5 でデバッグ開始する。
地図が表示される過程でブレークポイントで一時停止し、その箇所の「変数」「ウオッチ」「コールスタック」などが見られる。下図は、 drawLine
関数の coords
変数の中身を表示しているところ。描画するラインの頂点が確認できる。
ちなみに、この drawLine
関数をスキップ(すぐに return
)すると、次図のようにラインが描画されない地図になる。
「デバッグするまで」としてはこんな感じで。