はじめに
本記事では、
現場のプロがわかりやすく教える 位置情報デベロッパー養成講座
の感想記事になります。
私自身、位置情報データを日々扱っているので、現場のエンジニアとしての復習の意味も兼ねて読みました。
ちなみに、私の位置情報にかかる経験はこんな感じ
- フロントエンド(タイルデータの表示・処理)の実装
- サーバーサイド(タイルデータ作成、tippecanoeなどよく使う)の実装
- Mapboxを中心とした処理経験が主
- 本書籍で触れられているタイルサーバー自体の開発はなく、どちらかというとそのサーバーが社内のリソースとしてあるので、タイルデータの作成、タイルデータの表示が主な業務
技術スタック的には、
- Javascript, Vue.js
- Python, Go lang
- AWS(S3, Lambda, Athena), Tippecanoe
などを位置情報関連では使ったりしています。
Githubに本書のサンプルコードが上がっているので、確認してみてください。
GitHub - Kanahiro/location-tech2-sample-v1: 秀和システム「現場のプロがわかりやすく教える 位置情報デベロッパー養成講座」サンプルコード
本書の内容をから感じたこと
筆者自身は、日頃からAWSを用いてサーバーレス、タイルデータと仲良くやっていますが、そこに行き着くまでの経緯みたいなものを知れた気がしました。
また、本書ではPythonを使ってサーバーサイドを実装していますが、計算コスト・処理速度の観点から動的言語よりも現場レベルでは静的言語(特にGo Lang, Rust)が好まれる傾向があると感じました(位置情報系では、処理速度が命ですから)。
以下は、本書読んだ感想を箇条書きでまとめていきます。
動的タイル(ex. postgreslを使ってタイルの動的生成)は業務上高頻度なデータを扱うことがないので、実装経験はなかったので、その方法について学べたことは良かったです。ただし、本書にも記載がある通りスケーラビリティ・パフォーマンス等の観点でやはり難しいものがあるなと感じました。
タイルデータにおけるCloud Optimizedは非常に重要であることは強く感じました。ベクトルデータならPMTiles, ラスターデータならCOGでまずはいいように感じます。特にそのメリットとしては、
geojsonとPMTilesの比較表は以下のような感じ
PMTiles | Geojson | |
---|---|---|
データのFormat | バイナリ (=データサイズが小さい) |
テキスト (=ファイルサイズが大きくなりがち) |
キャッシュ | ○ (=配信速度が安定・向上できる) |
✗ |
クライアント | ○ (記述量を少なくできる) |
✗ (=相対的に記述量は多い) |
このことからもPMTilesを使っていくべきということがわかります。
- Registry of Open Data on AWSというAWSでオープンデータを保管する仕組みがあることを始めて知った。(毎日AWS使っているけど知らなかった。。。)