【人類の叡智】地図アプリ作成に役立つAPI・ライブラリまとめ

どうもGoogle Mapを見るのが趣味のSakuです！
毎日地図を見てるおかげで行ったことない場所の土地勘も養われまくりました笑

さてみなさんは地図アプリを作りたいと思ったことはないですか？

地図アプリは、現代の生活やビジネスにおいて不可欠なツールとなっています。特に開発者にとって、適切なAPIやライブラリを選択することがプロジェクト成功の鍵となります。

本記事では、地図アプリ作成に役立つオープンAPIとライブラリを紹介し、その使用例を具体的なアプリを通して説明します。

## 役立つオープンAPIとライブラリ
:::note
内容は随時更新できればと思います。
:::

### オープンAPI一覧

1. **[Google Maps API](https://developers.google.com/maps?hl=ja)**

   - 主な特徴: 地図表示、経路検索、ストリートビューなど、多機能で高精度。
   - 主な用途: ナビゲーションアプリ、店舗検索。
   - 無料枠: 月額200ドル分まで無料。

2. **[Mapbox API](https://docs.mapbox.com/api/ja/overview/)**

   - 主な特徴: カスタマイズ可能な地図デザイン、高速レンダリング。
   - 主な用途: ゲームアプリ、独自デザインの地図表示。
   - 無料枠: 使用する機能による。（[価格シュミレーションページ](https://www.mapbox.com/pricing)）

3. **OpenStreetMap (OSM) API**

   - 主な特徴: 無料で利用可能なオープンソース地図。
   - 主な用途: 地図データ分析、非営利アプリ。
   - 無料枠: 完全無料（APIの使用量制限あり）。

4. **[Bing Maps API](https://learn.microsoft.com/en-us/bingmaps/rest-services/locations/)**

   - 主な特徴: 空撮ビューや3D地図の利用が可能。
   - 主な用途: 不動産アプリ、高精度な地図分析。
   - 無料枠: 月間125,000トランザクションまで無料。

5. **[Here API](https://www.here.com/jp/platform/developer?cid=Developer_Here-Map-API-Google-YT-0-Dev-APAC-JAP-matchtype=e&utm_source=Google&utm_medium=ppc&utm_campaign=Dev_PaidSearch_DevPortal_AlwaysOn&utm_term=&gad_source=1&gclid=CjwKCAiA65m7BhAwEiwAAgu4JBLqcpnyvQPa_nmGxDJnabVoOEZpCvilQqPCC3C6OBSptRToxEj9SRoCpaMQAvD_BwE&gclsrc=aw.ds)**

   - 主な特徴: ターンバイターンナビゲーションや交通情報が豊富。
   - 主な用途: 車載ナビゲーションシステム。
   - 無料枠: 月間250,000トランザクションまで無料。

### ライブラリ一覧

1. **[Leaflet.js](https://leafletjs.com/)**

   - 主な特徴: 軽量でシンプルな地図表示用JavaScriptライブラリ。
   - 主な用途: シンプルな地図アプリ、モバイル対応地図。

2. **[Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js/ja/guides/)**

   - 主な特徴: 高性能な地図描画エンジン、WebGL対応。
   - 主な用途: リッチなインタラクティブ地図アプリ。

3. **[OpenLayers](https://openlayers.org/)**

   - 主な特徴: 幅広い地図フォーマットとプロバイダをサポート。
   - 主な用途: カスタマイズ性が求められる地図アプリ。

---

### 比較表

| API/ライブラリ名        | 特徴            | 主な用途            | 無料枠            |
| ----------------- | ------------- | --------------- | -------------- |
| Google Maps API   | 多機能、高精度       | ナビゲーション、店舗検索    | 月額200ドル分まで無料   |
| Mapbox API        | 高度なカスタマイズ性    | ゲーム、独自地図デザイン    | 月間50,000マップロード |
| OpenStreetMap API | オープンソース、無料    | 地図データ分析、非営利     | 完全無料           |
| Leaflet.js        | 軽量、モバイル対応     | シンプルな地図アプリ      | 無料             |
| OpenLayers        | 幅広い地図フォーマット対応 | カスタマイズ性重視の地図アプリ | 無料             |


:::note
余談ですが、最近生成AIの流行に伴いデータの重要性が増している気がします。その中で個人的にユーザー等の「行動データ」は特に重要性を増していると思っていて、それらはGoogle Map APIでは提供されていないです。
保持してればしてるだけ、その企業の力に直結し得るデータだと思うので、やはりたくさんデータを保持している企業は強いなと思いますね。
:::

## 取り上げたAPIやライブラリの使用例
上記で取り上げたAPI・ライブラリの使用例としては、以下があります。現状有名で大規模なアプリではほぼGoogleのAPIを使用されています。正直提供するAPIの種類・正確性・使用感からして一強な気がします。

**Google Maps API**

- Uber（配車サービス）
- ドミノ・ピザ（デリバリーサービス）
- Pokemon GO（位置情報ゲーム）
- 食べログ（飲食店検索）

**Mapbox**
- Strava（フィットネスアプリ）
- Pinterest（位置情報付き投稿）
- Snapchat（位置情報機能）

他APIやライブラリもニッチなところでは使用されていますが、商用としては上記2つのツールが多用されている傾向にあると思います。

また、「Google Map API と Leaflet.js」など、Google Map APIと他の何かを組み合わせてアプリ作成を行われている例をよく目にします。

＜余談＞
また余談ですが、**OSM**と**leaflet.js**を使用すると以下のようなシンプルなUIは手軽に無料で作成できます。ぜひお試しあれ。

![FireShot Capture 153 - スタバマップ - starbacks-bukrpzrc2-sakus-projects-f0f85947.vercel.app.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3624902/15f1fede-d403-bdfe-dcd5-8eb66ca68383.png)
<sub>制作挫折中のスタバマップ</sub>

## まとめ
今回は地図アプリ作成に使えるAPIやライブラリについて取り上げました。

地図アプリ開発において、適切なAPIやライブラリを選ぶことは非常に重要です。
Google MapsやMapboxのような商用APIは多機能ですが、OpenStreetMapのようなオープンソースもコストパフォーマンスにおいては非常に魅力的です。また、Leaflet.jsやOpenLayersといったライブラリを使えば、独自の地図機能を簡単に実装できます！

アプリの用途や開発リソースに応じて、最適なツールを選択していきましょう〜

本記事を書いて思うことは、「結局Google Map強すぎる」「伊能忠敬すごすぎる」の2つでした:sweat_smile:

本記事を読んでいただきありがとうございます！