ハンズオン準備の第6回です。
インポートプログラムの機能定義とソースコード分割
インポートプログラムは、データソースから地物単位に読み込みを行い、地物ごとにレイヤ名とズームレベルを割り当てるプログラムとします。
ソースコードは次の通り分割します。
- download.js: ハンズオンの対象となるデータをダウンロードして保存します。
- import.js: ダウンロードしたデータを読み出して、レイヤ名とズームレベルを割り当て、GeoJSON Text Sequence にします。このうち、レイヤ名とズームレベルを割り当てる部分については、データ依存ですので、下記 modify.js に掃き出します。
- modify.js: 地物を受け取って、レイヤ名とズームレベルを割り当てて変換する関数を記述します。このコードが実質的にベクトルタイルスキーマを定義するものとなります。modify.js の仕様については、modify-spec に書き出してあります。
実装
https://github.com/un-vector-tile-toolkit/spinel-produce に実装を置いています。
import.js の結果を Tippecanoe で処理して得られた mbtiles を、さしあたり tileserver-gl-light にかけることで、ダウンロードしたデータが確かにベクトルタイルとして表示できることは確かめました。
これから、それぞれのデータによりしっかりとしたベクトルタイルスキーマを与えることで、最低限の性能を持つベクトルタイルにしていく必要があります。
次回
modify.ms を使ってOSM データに割り当てるベクトルタイルスキーマについて検討を進めます。