Apple Map Snapshotを使ってみた
こんにちは。大山です。
URLごとに異なる座標の地図をOGP画像として表示したいと思い、Apple の Maps Web Snapshots を使ってみたので記事にします。
Maps Web Snapshotsとは
Maps Web Snapshotsは、Apple Mapsのサービス群の一つとして提供される、サーバー向けの静的地図画像HTTP APIです。
緯度経度やピン・図形などのパラメーターをURLクエリとして渡すと、リクエストごとに1枚のPNG/JPEG画像が返ってきます。サーバーサイドから叩いて画像として保存・配信できるので、OGP画像のように「動的な座標を埋め込んだ地図画像」を都度生成したい場面と相性が良いです。
利用にはApple Developer Programのアカウントが必要です。
他のSnapshotサービスと比較
静的地図画像を生成するAPIとしては、GoogleのMaps Static APIやMapboxのStatic Images APIなどがあります。3つを比較してみます(数値はいずれも2026年7月時点の各社公式ページを参照)。
| Apple (Maps Web Snapshots) | Google Maps Static API | Mapbox Static Images API | |
|---|---|---|---|
| 無料枠 | 25,000リクエスト/日 | 10,000リクエスト/月(Essentials) | 50,000リクエスト/月 |
| 超過分の料金 | 公開料金表がないため要Appleへの問い合わせ | $2.00 / 1,000リクエスト(ボリュームディスカウントあり) | $1.00 / 1,000リクエスト(ボリュームディスカウントあり) |
| 必要な契約 | Apple Developer Program($99/年、日本からの申込は¥15,800/年) | Google Cloudアカウント | Mapboxアカウント |
| 画像サイズ上限 | 幅・高さとも50〜640px | 640×640px | 幅・高さとも1〜1280px(カスタムマーカーは1024pxまで) |
| カスタムピン | ◯ | ◯ | ◯ |
| 図形オーバーレイ | ◯ | ◯ | ◯ |
コスト面で見ると、Apple Developer Programに既に登録済みであれば、Apple Snapshotsは日次25,000リクエストの無料枠を追加の課金設定なしにすぐ使い始められます。一方、このAPIのためだけにApple Developer Programへ新規登録する場合は、年会費が発生する点は踏まえておく必要があります。
無料枠を超えるリクエストを送る場合は、公開料金表がないためAppleへの問い合わせが必要です。
地図生成パラメーター
静的地図画像を生成するための主なパラメーターは以下の通りです。
| パラメーター | 型 | デフォルト値 | 説明 |
|---|---|---|---|
| token | string | — | 開発者用のマップトークン(JWT)。 APIリクエストの認証に必要となります。 |
| center | string | — | 地図の中心点。 地図上にピンや図形を配置する場合は auto(自動調整)を指定することも可能です。緯度・経度をカンマで区切るか(例: 37.78,-122.42)、住所文字列(例: San Francisco City Hall...)で指定します。 |
| z | float | 12 | ズームレベル(3.0〜20.0)。 ※center=auto が指定されている場合、または spn が指定されている場合は無視されます。 |
| spn | string | — | 表示する地図の範囲。 中心点からの緯度・経度の差分を "緯度デルタ,経度デルタ" の正の数値で指定します(例: 0.05,0.05)。※z よりも優先されます。 |
| size | string | 600x400 | 生成する画像のピクセルサイズ。 "幅x高さ" の形式で指定します。幅・高さともに 50 〜 640 の範囲で指定可能です。 |
| scale | int32 | 1 | 画像のピクセル密度(解像度倍率)。 1、2、3 から選択します。Retinaディスプレイなどの高解像度画面向けには 2 や 3 を指定します。 |
| t | string | standard | 地図のスタイル。 standard(標準マップ)、hybrid(ハイブリッド航空写真)、satellite(衛星写真)、mutedStandard(色味を抑えたクリーンな標準マップ)から選択できます。 |
| colorScheme | string | light | カラースキーム(ライトモード / ダークモード)。 light または dark を指定します。(※standard と mutedStandard スタイルのみ適用可能)。 |
| poi | boolean | 1 | POI(店舗や観光地などのアイコン)の表示フラグ。 1 で表示、0 で非表示になります。 |
| lang | string | en-US | 地図上のラベル言語。 ロケールIDで指定します(例: 日本語表示にしたい場合は ja-JP)。 |
| annotations | Array | — | 地図上に配置するピン(アノテーション)の配列。 Annotation オブジェクトのJSONをURLエンコードして渡します。 |
| overlays | Array | — | 地図上に重ねて描画するルートや多角形(オーバーレイ)のオブジェクト配列。 JSONをURLエンコードして渡します。 |
| imgs | Array | — | カスタムピン(アノテーション)として使用する画像データの配列。 JSONをURLエンコードして渡します。 |
annotations / overlays / imgs は配列を組み立てたうえで、URLエンコードしてクエリパラメーターとして渡す形式になります。
使ってみる
まずはシンプルに、中心座標だけを指定して地図画像を1枚取得してみます。
curl --get "https://snapshot.apple-mapkit.com/api/v1/snapshot" \
--data-urlencode "center=35.681236,139.767125" \
--data-urlencode "size=600x400" \
--data-urlencode "t=standard" \
--data-urlencode "colorScheme=light" \
--data-urlencode "lang=ja-JP" \
--data-urlencode "token=${APPLE_MAPS_JWT}" \
--output map.png
この curl コマンドを実行すると、指定した座標を中心とする地図画像が map.png として保存されます。

ここに annotations や imgs パラメーターを追加すると、中心にピンを立てたり、独自のアイコン画像をピンとして表示することができます。
拡大率を変える
z パラメーターでズームレベルを指定すると、中心座標を基準にどの程度拡大して表示するかを調整できます。指定できる範囲は 3.0〜20.0 で、値が大きいほど拡大されます。
--data-urlencode "z=16"

z を大きくするほど建物一つひとつが分かる程度まで拡大できますが、その分表示される範囲は狭くなります。逆に小さくすると広いエリアを俯瞰できます。
なお center=auto を指定してピンや図形が収まるように自動調整させる場合や、spn で表示範囲を直接指定した場合は z の値は無視されます。
ピンをたてる
--data-urlencode 'annotations=[
{
"point":"35.681236,139.767125",
"markerStyle":"balloon",
"color":"black"
}
]'
ピンの種類はmarkerStyleで変更でき、標準で用意されているものは以下の通りです。
| dot | balloon | large |
|---|---|---|
![]() |
![]() |
![]() |
カスタムピンを立てる
annotations の markerStyle を img にすることで、標準のピンではなく任意の画像をピンとして表示できます。
--data-urlencode 'annotations=[
{
"point":"35.681236,139.767125",
"markerStyle":"img",
"imgIdx": 0
}
]' \
--data-urlencode 'imgs=[
{
"url":"https://example.com/assets/map-icon.png",
"width":100,
"height":100
}
]' \

オブジェクト(オーバーレイ)を描画する
overlays を使うと、円などの図形を地図上に重ねて描画できます。
--data-urlencode 'overlays=[
{
"type":"circle",
"center":"35.681236,139.767125",
"radius":300,
"style":{
"strokeColor":"0088ff",
"strokeOpacity":1,
"lineWidth":4,
"fillColor":"0088ff",
"fillOpacity":0.3
}
}
]'

まとめ
実際に使ってみて、特に地図をインタラクティブに操作する必要はなく、座標に応じて動的に地図画像を表示したいOGPのような用途と相性が良いと思いました。
Apple Developer Programにすでに登録していれば追加の契約なしにすぐ使えますし、カスタムピンやオーバーレイで見た目も作り込めるので、選択肢の一つとして検討してみてください。









