ブログ一覧
OSS活用

地図APIの請求書が怖くなったら — Leaflet + OpenStreetMap という選択肢

本記事は公開時点(2026年08月05日)の情報です。AI関連のサービスや仕様は変化が速いため、最新の情報は各公式サイトをご確認ください。

先日、個人開発のラーメン店マップアプリが SNS でバズった開発者の方が、月末に届いた Google Cloud の請求書を公開して話題になりました。金額は10万円超。バズってから1週間ほどでこの額だったそうで、「今まで誰も便利なアプリを作らなかった理由はこれか」というコメントが印象的でした。

うれしい悲鳴、では済まされない金額です。個人開発なら赤字ですし、収益化の目処が立つ前にサービスを畳む判断すらあり得ます。この記事では、なぜ地図APIの請求は突然膨らむのか、そして無料で地図を表示できる Leaflet + OpenStreetMap の組み合わせについて、注意点も含めて整理します。

なぜ地図APIの請求は突然膨らむのか

Google マップをアプリに埋め込む Google Maps Platform は従量課金です。2025年3月の料金改定で体系が変わり、執筆時点では動的マップ(よく見るスクロールできる地図)の場合、月1万回の表示までは無料、超えると1,000回あたり $7 が基本単価です。

月1万回というのは、平常時の個人開発アプリなら十分な枠です。問題はバズったときで、仮に1日10万人が地図を1回ずつ開けば、その日だけで約10万回。無料枠は初日に消え、翌日からは1日あたり約10万円ずつ請求が積み上がる計算になります。冒頭の事例の「1週間で10万円超」は、決して極端なケースではありません。

従量課金は「使った分だけ」という意味では公平ですが、バズという最も喜ばしい瞬間に、最も大きな請求が発生する構造でもあります。ここが個人開発と相性が悪い。

Leaflet + OpenStreetMap とは

代替としてよく挙がるのがこの組み合わせです。

Leaflet は、地図表示のためのオープンソース JavaScript ライブラリです。2011年から続く定番で、軽量(約42KB)ながらスクロール・ズーム・マーカー・ポップアップなど、「地図アプリに欲しいもの」は一通り揃っています。ライブラリ自体は完全に無料です。

OpenStreetMap(OSM) は、「地図界の Wikipedia」と呼ばれるプロジェクトで、世界中のボランティアが作る自由な地図データです。データはオープンデータライセンス(ODbL)で提供され、商用利用もできます。

Leaflet が「地図を動かす仕組み」、OSM が「地図そのもの」を担当する、と考えるとわかりやすいと思います。

実装は驚くほど簡単

Google Maps からの置き換えで身構える必要はありません。地図を1枚出すだけならこれだけです。

<link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet/dist/leaflet.js"></script>

<div id="map" style="height: 400px"></div>

<script>
  const map = L.map("map").setView([35.4437, 139.638], 13); // 横浜駅あたり

  L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", {
    attribution: '&copy; OpenStreetMap contributors',
  }).addTo(map);

  L.marker([35.4437, 139.638]).addTo(map).bindPopup("家系ラーメン発祥の地・横浜");
</script>

API キーの発行もクレジットカードの登録も要りません。React で使う場合は react-leaflet というラッパーもあります。マーカーのクラスタリングや現在地表示など、実用アプリに必要な機能もプラグインでカバーできます。

「無料」の落とし穴 — タイルサーバーの利用ポリシー

ここからがこの記事で一番書きたかったことです。上のコードは OSM 公式のタイルサーバー(tile.openstreetmap.org)から地図画像を読み込んでいますが、このサーバーは寄付で運営されているボランティアのインフラであり、利用ポリシーで大量利用が制限されています。重いトラフィックを流すアプリはブロックされる可能性があり、実際にブロックされた事例もあります。

「Google が高いから OSM 公式サーバーにタダ乗りする」は、コストを地図コミュニティに付け替えているだけなので、バズる可能性のあるアプリでは最初から次のいずれかを選ぶべきです。

  • OpenFreeMap — OSM データの地図タイルを無料・無制限で配信しているホスティングサービス。スポンサーと寄付で運営されており、セルフホストも可能
  • タイルのセルフホスト — OSM データから自前でタイルを生成・配信する方法。最近は PMTiles 形式でタイル一式を静的ファイルとしてオブジェクトストレージに置くだけの構成が現実的になっていて、月数百円〜のインフラ代で全国分を配信できます
  • 商用タイルプロバイダの無料枠 — MapTiler や Stadia Maps などは OSM ベースのタイルを提供しており、無料枠と、超過しても Google より穏やかな料金設定があります

いずれの場合も、OSM の帰属表示(attribution)は必須です。地図の隅の「© OpenStreetMap contributors」がそれです。

それでも Google Maps を選ぶべきケース

公平のために書いておくと、Google Maps にしかないものもあります。

  • 店舗情報(Places)の鮮度 — 営業時間・口コミ・写真まで含めた店舗データベースは唯一無二です。OSM の店舗情報は地域やジャンルによって粗密があります
  • ストリートビュー
  • 経路検索の精度、特に公共交通機関

つまり「地図をただ表示して、自前のデータ(店舗リストなど)のピンを立てる」アプリなら Leaflet + OSM で十分置き換えられる一方、Google の持つデータ自体に価値があるアプリでは簡単には替えられません。冒頭のようなマップアプリは前者に近いケースが多く、置き換え効果が大きい領域です。

コストで諦める前に

「便利なアプリを作ると請求書で死ぬ」は、技術選定で回避できる問題です。地図に限らず、従量課金の外部APIは「バズったらいくらになるか」を試算してから使う、無料枠は「平常時の枠」であって「上限」ではないと理解しておく——このあたりは個人開発でも企業のシステムでも同じです。

弊社でも、外部APIのコストが膨らんだシステムの構成見直しや、OSS への置き換えのご相談をお受けしています。「この請求、下げられる?」という段階からで大丈夫ですので、気軽にお問い合わせください。