Web地図のためのサーバーサイド技術の勘所をつかむ — 『位置情報デベロッパー養成講座』（#位置デベ本）書評

## TL;DR

*井口奏大『[位置情報デベロッパー養成講座](https://www.amazon.co.jp/dp/4798072249)』（[#位置デベ本]((https://x.com/hashtag/%E4%BD%8D%E7%BD%AE%E3%83%99%E3%83%AD%E6%9C%AC))） - 2024年8月24日発売*

- 「**位置情報データ配信**」のための「**サーバーサイド技術**」を体系的に示す一冊
  - （前著『[位置情報エンジニア養成講座](https://www.amazon.co.jp/dp/4798068926)』（[#位置エン本](https://x.com/hashtag/%E4%BD%8D%E7%BD%AE%E3%82%A8%E3%83%B3%E6%9C%AC)）は「フロントエンド技術」）

- 前半では、位置情報の基礎知識とこれまでの流れを踏まえ、何が問題とされているのか、どう解かれてきたかを紹介
- 後半では、それら知識を踏まえて、タイルサーバー、衛星データ配信サーバーなどを実際に実装


:::note warn
当書籍の著者（[@kanahiro_iguchi](https://twitter.com/kanahiro_iguchi))と私（[@sorami](https://twitter.com/sorami)）は現職の同僚です。本書の執筆自体は、会社とは独立した個人の活動として行われました。
:::

## 書籍情報

![81TSqnL5Y4L._SY522_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6438/54476fcb-f474-62d3-d0ab-870b9f8dd82d.jpeg)

Xハッシュタグ: [#位置ベロ本](https://x.com/hashtag/%E4%BD%8D%E7%BD%AE%E3%83%99%E3%83%AD%E6%9C%AC)

- 出版社: [現場のプロがわかりやすく教える 位置情報デベロッパー養成講座 - 秀和システム あなたの学びをサポート！](https://www.shuwasystem.co.jp/book/9784798072241.html)
- Amazon: [現場のプロがわかりやすく教える位置情報デベロッパー養成講座 | 井口奏大 |本 | 通販 | Amazon](https://www.amazon.co.jp/dp/4798072249)

## 所感

これは、「位置情報データ配信」のための「サーバーサイド技術」を体系的に解説する一冊です。

この本の前に出版された、 **前著『[位置情報エンジニア養成講座](https://www.amazon.co.jp/dp/4798068926)』（[#位置エン本](https://x.com/hashtag/%E4%BD%8D%E7%BD%AE%E3%82%A8%E3%83%B3%E6%9C%AC)）** では、**現代のWeb地図開発のトレンドを広く浅く紹介し、特にフロントエンド技術に焦点**を当て、自ら位置情報の可視化ができるようになるような一冊でした:

https://qiita.com/sorami/items/bfeebba21216609ad576

しかし、より本格的な地図サービスを作成するためには、サーバーサイド技術、データベース管理、WebAPIを通じたデータ配信など、応用的な知識も不可欠です。

これらの位置情報特有の概念や技術は、初めて学ぶ際に難しく感じるかもしれません。そこで本書では、まずそれぞれの概念や背景、そしてその重要性を理解することを目指し、読者が「勘所」を掴めるよう体系的に解説しています。

本書は以下の構成となっています:


- 第1章 **位置情報の基礎知識**
- 第2章 **位置情報データの配信方法**
- 第3章 **位置情報データとデータベース**
- 第4章 **タイルサーバーの実装**
- 第5章 **実践編: ベクトルデータのCRUD処理**
- 第6章 **実践編: 衛星画像配信サーバーの構築**
- 第7章 **応用編: ベクトル・ラスターを組み合わせたアプリケーション開発**

まず、Webと地図に関する基本的な知識を身につけるには、前著をお勧めします。その上で本書を手に取ることで、位置情報技術に対する理解が一層深まり、扱えるデータや開発できるアプリケーションの幅がさらに広がるでしょう。

### 位置情報の特徴と、データ配信の勘所

データの取り扱いや配信という点では、地図も他のWebサービスとさほど変わらないように見えるかもしれません。しかし、位置情報の特徴を踏まえて、この分野における課題や、なぜ特定の仕組みが必要なのか、その「勘所」を掴むことで、より大局的な理解が可能となるでしょう。

位置情報は、ファイルの数やサイズが非常に大きくなることが多いのが特徴で、それを効率的に処理するための工夫が必要です。そのため、「特定の地理的領域」に含まれるデータのみを抽出することが重要な課題としてあります。つまり、**いかにして「一部の領域」のデータを選択的に配信するか**が鍵となります。

例えば、「バウンディングボックス（bbox）」（minX, minY, maxX, maxYで定義される矩形の領域）という概念があります。APIはこのbboxを受け取り、その範囲に基づいてデータを返すのが一般的です。しかし、経緯度の実数値でリクエストが行われると、レスポンスはリクエストごとに異なってしまいます。これを解決するために、事前に「タイル」と呼ばれる単位で世界を区切り、データを管理する方法があります。これにより、全パターンを事前に準備でき、キャッシュの活用も容易になります。

### 知識を踏まえた実践例

本書では、前半の知識編を踏まえ、後半（第4章〜）では実際のサーバーサイド開発に取り組みます。

第4章では、**地図タイルを活用したサーバー実装**を通して、効率的なデータ配信方法を学びます。第5章では、**データベースによる永続化**を扱い、**WebAPIを使ったCRUD処理**を実装。第6章では、**衛星画像の配信サーバー**を構築し、**ラスターデータの取り扱い**に挑戦します。最後の第7章では、集大成として「**指定地点の衛星画像を表示するアプリ**」を作成します。

本書で使用したコードは、以下のGitHubレポジトリで公開されています:

https://github.com/Kanahiro/location-tech2-sample-v1

座学に加え、実際の手を動かす応用編を通じて、より深い理解が得ら、それぞれの作りたいものの実現への橋渡しとなるでしょう。

### 位置情報技術のこれまでとこれから

本書では、位置情報技術の勘所やこれまでの流れを踏まえ、現代の技術を解説し、さらにCloud OptimizedやPMTilesといった新たにスタンダードとなりつつあるものについても積極的に取り上げています。また、巻末には著者が注目する今後のトレンドに関する技術トピックも紹介されています。

PMTilesをこれだけ取り扱っているのは、英語の文献を含めてもかなりレアではないでしょうか。[国土地理院も2023年8月から、PMTiles形式のベクトルタイルを試験公開](https://github.com/gsi-cyberjapan/optimal_bvmap)していますし、この方向性は今後より重要視されるでしょう。その時に「なぜPMTilesというものが生まれたのか、これは何を解決しようとしているのか？」というのは、勘所や歴史を踏まえているからこそ、深く理解できることでしょう。

本書は、単に最新技術を紹介するだけでなく、根本的な問題が何であり、それに対してどのようなアプローチがあるかを掘り下げています。このため、表面的な知識ではなく、実践に活かせる応用力と本質的な理解を得られる内容となっていると言えるのではないでしょうか。

また、位置情報技術は完成されたものではなく、まだまだ発展途上にあります。本書を通じて、読者の皆さん自身が、どんな形であれ、この分野の未来に関わるきっかけになると嬉しいなと思います。

Enjoy mapping!


## 🥳 宣伝 - 9月26日に東京で出版イベントやります！

- 🗓️ 2024年9月26日（木）
- ⏰ 18:00開場 / 18:30開演
- 📍 渋谷（配信なし）

カジュアルな会です、初心者も大歓迎！😽

**→ 2024-10-1追記: 終了しました！イベントレポートも書きました👇**

https://note.com/mierune/n/n82acfbb18fff