日照シミュレーションを自社サイトに埋め込む

地図と時計をひとまとめにした画面を iframe 1行で埋め込めます。 計算値だけが欲しい場合は JSON の API もあります。 どちらも市区町村ごとに発行するキーで利用します。

キー1つにつき、市区町村1つです 複数の市区町村を扱う場合は、市区町村ごとに申請してください。 どのキーがどこを見ているかが常に一目で分かる状態を保つためです。

埋め込み(地図+時計)

発行されたキーを src に付けるだけです。

<iframe src="https://pokapoka-estate.com/embed?key=発行されたキー"
        width="100%" height="520" style="border:0"
        title="日照シミュレーション"></iframe>

枠の中では、地図上の建物が立体で表示され、時計を回すとその瞬間の影が動きます。 地図をクリックすると、その地点の日照時間が出ます。 高さは 520px 以上を推奨します。

枠を張れるサイトは登録したものだけです 申請時に登録したサイト以外から埋め込もうとすると、ブラウザが枠の読み込み自体を止めます (Content-Security-Policy: frame-ancestors)。 URL が変わる予定がある場合は、あらかじめ申請時に含めてください。

API(JSON)

すべて GET、応答は JSON(UTF-8)です。キーは X-API-Key ヘッダか key パラメータで渡します。

curl -H "X-API-Key: 発行されたキー" \
  "https://pokapoka-estate.com/api/v1/day?lat=35.1281&lon=136.0980&height=1.5&date=2025-12-22"

エンドポイント

パス返すもの
/api/v1/day 指定日の日照時間、日照していた区間、時刻ごとの太陽位置と日照の有無
/api/v1/year 月ごとの代表日(各月15日)の日照時間
/api/v1/regulation 日影規制(建築基準法56条の2)の条件で計算した日影時間。参考値
/api/v1/buildings 指定範囲の建物(GeoJSON)。外周と高さ、地盤標高
/api/v1/shadowframes 指定範囲・指定日の時刻ごとの日影ラスタ(PNG)。1日分をまとめて1枚で返す
/api/v1/cities 対応している市区町村の一覧。キー不要

共通のパラメータ

名前既定意味
lat / lon—緯度・経度(必須)
height1.5地盤面からの高さ(m)。窓の高さを想定
dateその年の冬至YYYY-MM-DD
step10サンプリング間隔(分)

応答の例(/api/v1/day)

{
  "city": "25204_omihachiman",
  "date": "2025-12-22",
  "heightAGL": 1.5,
  "groundElevation": 89.82,
  "insideBuilding": false,
  "sunlitHours": 8.33,          // 日が当たっていた時間
  "possibleHours": 9.67,        // 日の出から日の入りまで
  "ratio": 0.8621,
  "intervals": [
    { "from": "07:20", "to": "08:30", "minutes": 70 },
    { "from": "09:20", "to": "16:30", "minutes": 430 }
  ],
  "samples": [
    { "t": "07:10", "az": 119.82, "el": 1.26, "sunlit": false }
  ],
  "stepMinutes": 10,
  "dataUpdated": "2026-08-29",
  "attribution": "3D都市モデル(Project PLATEAU)/国土交通省"
}
数値には必ず条件が付いてきます dataUpdated(データ更新日)、heightAGL(評価した高さ)、 stepMinutes(時間刻み)、insideBuilding(建物の内側かどうか)を 必ず一緒に返します。条件の分からない数値は、受け手が別の条件のものと混ぜて使ってしまうためです。 画面に出すときも、せめてデータ更新日は添えてください。

エラー

状態error意味
401missing_api_keyキーが付いていない
401invalid_api_keyキーが無効。失効している可能性
403origin_not_allowed登録していないサイトから呼ばれた
403city_not_allowed契約している市区町村の外の座標
404out_of_coverage3D都市モデルが未整備で計算できない
429rate_limited1分あたりの上限を超えた
契約外の座標では、近い市区町村で代わりに計算したりはしません 範囲外は 403 を返します。要求と違うものを黙って返すことは、 どのような場合でもしません。

セキュリティについて、正直に

「登録したサイトからのみ利用できる」という制限は、ブラウザからの呼び出しに対して効きます。 埋め込み枠は frame-ancestors でブラウザが読み込みを止めるため、迂回できません。

一方で、サーバ間の呼び出しは防げません。Origin ヘッダは ブラウザが付けるもので、curl などからは自由に名乗れるためです。 ブラウザに埋め込む以上キーも公開されます。

したがって実効的な歯止めは、レート制限と利用状況の記録、そして異常があればキーを失効させる運用です。 キーは秘密ではなく「どのサイトの、どの市区町村向けか」を示す名札だと考えてください。

出典表示(必須)

もとになっている3D都市モデルは CC BY 4.0 で提供されています。 ライセンス上の義務は、こちらから利用者へ転嫁できません。埋め込み枠には出典が含まれていますが、 JSON の API から数値だけを取り出して表示する場合は、次の記載をお願いします。

出典:3D都市モデル(Project PLATEAU)/国土交通省

日影規制の値は参考値であり、建築確認の根拠にはなりません。この旨も併記してください。

申請

審査のうえキーを発行します。現在は手作業のため、数営業日いただきます。

いただく情報について ご記入いただくのは、ご連絡とキー発行に必要な範囲だけです。 エンドユーザーの位置情報や閲覧履歴は、当方では預かりません (アクセスログに残す座標は約1kmに丸めています)。
審査結果とキーのお渡しに使います。
キー1つにつき1市区町村です。複数必要な場合は分けて申請してください。
複数ある場合は改行で区切ってください(5つまで)。ドメインが違えば別に登録が必要です。