iOS(iPhone/iPad)でのiframe版ストリートビュー不具合の解消方法【2026年版】|CSS対応・Google Maps API埋め込み・モダン実装の3アプローチ

Googleストリートビューを自社サイトにiframeで埋め込んだら、iPhone や iPad で操作できない・ストリートビューを触るとページが最下部に飛んでしまう──こんな不具合を経験されたWeb制作者の方は多いはずです。本記事では、iOS Safari(iPhone/iPad)でのiframe版ストリートビュー不具合を、2026年時点の最新情報で整理し、3つの解消方法(CSS対応・Google Maps JavaScript API・レスポンシブラッパー)を実装コード付きで解説します。

この記事でわかること
  • iOS Safari / Chrome でのiframe不具合の症状と原因
  • 2026年時点(iOS 26.x)でも残存する不具合の最新状況
  • 解消方法① CSS 対応(最もシンプル)
  • 解消方法② Google Maps JavaScript API で埋め込み
  • 解消方法③ レスポンシブラッパー + aspect-ratio(モダン実装)
  • APIキー取得と Google Maps Platform の料金体系(2026年版)
  • 実装後の確認とトラブルシューティング

iframe版ストリートビューのiOS不具合【3分で結論】

  • iframeで埋め込んだ Googleストリートビューは、iOS Safari / Chrome(iPadOS含む)でのみページ最下部に強制移動する不具合が発生します
  • この不具合は2018年以前から続き、iOS 26.x(2025年秋リリース)でも残存しています(Googleマップ・Safari両方の問題)
  • 解消方法は3つ: CSS対応(最速)・Google Maps JavaScript API・レスポンシブラッパー実装
  • もっとも簡単なのは、html/body要素に `-webkit-overflow-scrolling: touch` を指定する1行の CSS 追加
  • 既存CSSとの衝突で①が使えない場合は、JavaScript API でiframeを置き換えるのが確実です

【2026年最新】iOS Safari でのiframe不具合の現状

2018年に本記事を公開して以降、iOS は iOS 12 → iOS 14 → iOS 17 → iOS 18 → 2025年9月リリースの iOS 26 へと大幅なバージョンアップを経ていますが、iframeでのストリートビュー操作時の挙動不具合は継続的に残存しています。

2026年4月時点の検証結果

OS・ブラウザ不具合備考
iOS 26.x Safari❌ 発生最下部強制移動・タッチ操作の干渉継続
iOS 26.x Chrome❌ 発生WebKit 使用のため Safari と同挙動
iPadOS 26.x Safari/Chrome❌ 発生iPhone と同じ不具合
Android Chrome✅ 問題なしiframe 操作は正常
Windows / macOS 各ブラウザ✅ 問題なしPC は基本的に問題なし
重要

iOS の全ブラウザ(Safari・Chrome・Firefox・Edge等)は すべて Apple の WebKit エンジンを使用することがiOS App Store ガイドラインで義務付けられているため、Chrome をインストールしても同じ不具合が発生します。この挙動は Apple / WebKit 側の問題で、Google 側では解決できません。

不具合の症状

主な症状3パターン

  • 症状①: ページ最下部への強制スクロール──埋め込んだストリートビューをタップ・ドラッグすると、ページが自動的に最下部に飛ぶ。長いページだと戻るのが大きなストレス
  • 症状②: タッチ操作が効かない──ストリートビュー内を360°回転させようとしても、操作がページ全体のスクロールに変換されてしまう
  • 症状③: 視点移動がうまくいかない──画面内の矢印をタップしても次のポイントに移動できない

操作不能とまではいかないものの、ユーザーにとってはストレスが強く、離脱率や体感品質の低下に直結します。店舗サイト・ポートフォリオサイト等で“ちょっと見てみようとした iPhone ユーザー”の多くがここで離れてしまう、という本番事例も弊社で観察されています。

最も顕著に起きる状況

  • ページが長い(スクロール量が多い)サイト
  • ストリートビューがページ中腹・下部に配置されている
  • サイト全体のCSSで `body { overflow: hidden }` 等の制御が入っている
  • fixed ヘッダー・フッターが存在する

なぜiOS端末でだけ起きるのか(技術解説)

iOS のブラウザ(WebKit)は、セキュリティとUI設計上の理由から、iframe内のスクロール処理を親ページ側に“昇格”させる挙動を持っています。これはもともと「iframe内に無限スクロールの悪意あるコンテンツが埋め込まれてユーザーを閉じ込める」リスクを回避するための仕様です。

しかし、Googleストリートビューのようにiframe内で独自のタッチジェスチャ処理を行うリッチコンテンツでは、この親ページへの昇格処理と Googleマップ側のタッチイベント処理が競合してしまい、本来はストリートビュー回転に使われるはずのドラッグが、ページスクロールとして解釈されてしまいます。

Google 側での対応状況

Google はこの問題を認識しており、Google Maps JavaScript API 版のストリートビュー実装では問題が発生しないよう独自のタッチハンドリングを実装しています。つまり iframe 埋め込み時のバグを避ける最確実な方法は、Google Maps JavaScript API を使う方式(本記事§6)です。

解消方法①: CSSで対応(最もシンプル・1行追加)

最も簡単な方法です。html と body 要素に対して以下のCSSを指定するだけで、多くのケースで不具合が解消します。

html,
body {
    height: 100%;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

各プロパティの役割

  • `height: 100%` — ルート要素に明示的な高さを与えることで、WebKit のスクロール計算が安定する
  • `overflow: auto` — ルート要素にスクロール処理の責任を渡す(iframe 内のスクロール昇格を抑制)
  • `-webkit-overflow-scrolling: touch` — iOS の慣性スクロールを有効にしつつ、iframe内タッチイベントを維持するキー指定
この方法の限界

既存のサイトで htmlbody に既に異なる CSS が適用されている場合、上書きの影響でレイアウトが崩れる可能性があります。全体テンプレートを修正できない場合や、CMS(WordPress・Shopify等)で body の制御が困難な場合は、§6のGoogle Maps JavaScript API 実装に切り替えてください。

CMS 別の実装箇所

  • WordPress: 子テーマの style.css に追記 or “追加CSS” 機能で
  • Shopify: テーマの theme.liquid 関連 CSS に追記
  • 静的HTML: <style> タグ内 or 外部CSSファイルに追記
  • Gatsby / Next.js: _app.tsx のグローバルスタイルに追記

解消方法②: Google Maps JavaScript APIで埋め込み

CSSで対応できない場合、または“無用なトラブルを確実に避けたい”場合は、iframe を使わずGoogle Maps JavaScript API を直接呼び出してストリートビューを描画します。この方式なら iOS でも確実に動作します。

必要な準備

  • Google Cloud Console のAPIキー(無料枠あり。後述)
  • 表示したい地点の緯度経度 または パノラマID
  • 埋め込み先の HTML に div 要素を用意

APIキーの取得

Google Cloud Console で新規プロジェクトを作成し、Maps JavaScript APIStreet View Static API を有効化したあとAPIキーを発行します。詳細は Google 公式のAPIキー取得ガイドを参照してください。

位置情報(緯度経度)の取得方法

Googleマップで目的地を表示

Googleマップを開き、表示したい場所を検索・表示します。

右クリック → 座標表示

目的地を右クリック(スマホの場合は長押し)→ 表示される座標(例: 34.665308, 135.214746)をクリックでコピー。

緯度・経度を分けて記録

コピーした値はカンマ区切りで緯度 lat・経度 lng に分けて記録。例: lat=34.665308, lng=135.214746

パノラマID の取得方法

特定のパノラマ(室内撮影等)を表示したい場合は、緯度経度ではなくパノラマIDを使います。Googleマップで該当のストリートビュー画面を開き、ブラウザのURL欄を確認します。

https://www.google.co.jp/maps/place/@33.5892211,130.4220738,3a,75y,108.94h,91.58t/
data=!3m8!1e1!3m6!1sAF1QipM6wVS1ReEaxC0K9QsFdwBU_kfEK9DiDYL-4_gJ!2e10...

URL内の !1s!2e の間に挟まれた文字列(上記では AF1QipM6wVS1ReEaxC0K9QsFdwBU_kfEK9DiDYL-4_gJ)がパノラマIDです。2018年以降この書式は変わっていません。

【実装コード】緯度経度を使う場合

<!-- HTML -->
<div id="streetView" style="width:100%; height:500px; max-width:100%;"></div>

<!-- JavaScript -->
<script>
function initPano() {
  const latLng = { lat: 34.665308, lng: 135.214746 };
  new google.maps.StreetViewPanorama(
    document.getElementById('streetView'),
    {
      position: latLng,
      pov: { heading: 0, pitch: 0 },
      zoom: 1,
    }
  );
}
</script>
<script async defer
  src="https://maps.googleapis.com/maps/api/js?key=【あなたのAPIキー】&callback=initPano"></script>

【実装コード】パノラマIDを使う場合

<!-- HTML -->
<div id="streetView" style="width:100%; height:500px; max-width:100%;"></div>

<!-- JavaScript -->
<script>
function initPano() {
  new google.maps.StreetViewPanorama(
    document.getElementById('streetView'),
    {
      pano: 'AF1QipPZydTg6GfqRpNGTPZNA-gf8EAXk5xAEFp7lKSL',
      pov: { heading: 0, pitch: 0 },
      zoom: 1,
    }
  );
}
</script>
<script async defer
  src="https://maps.googleapis.com/maps/api/js?key=【あなたのAPIキー】&callback=initPano"></script>
実装のコツ

パノラマIDを使う方が、Googleの仕様変更で見切れが発生するリスクが低いのでおすすめです。緯度経度指定だと、近くのパノラマがない場合に「ストリートビューが見つかりません」が出る可能性があります。

Google Maps JavaScript API キーの取得・設定 完全ステップ(2026年版)

§6 の API 方式を採用する場合の APIキー取得・設定手順を、Google Cloud Console の最新UI(2026年4月時点)に準拠して8ステップで解説します。初めての方でも30〜40分で完了できます。

$300 無料トライアル(初回限定)

Google Cloud / Google Maps Platform / Firebase を初めて利用する方には、$300 分の無料クレジット(90日間有効)が付与されます。これに加えて毎月の常時無料枠 $200 があるため、合計 $500 相当を初月から使えます。店舗サイト程度であれば、このクレジットだけで数年間運用できます。

事前準備

  • Google アカウント(個人用でも可・ただしビジネス運用なら店舗専用アカウントを推奨
  • クレジットカード(無料枠内でも登録が必須)
  • 請求先住所情報
  • あなたのサイトのドメイン(リファラ制限設定用)
Google Cloud Console にアクセスしてプロジェクトを作成

Google Cloud Console にアクセスしGoogleアカウントでログインします。左上のプロジェクト選択ドロップダウンから「新しいプロジェクト」を選択。プロジェクト名にはサイト名やビジネス名(例: shopname-maps)を入力し「作成」をクリックします。組織(Organization)は個人なら「組織なし」のままでOK。

Maps JavaScript API を有効化

作成したプロジェクトを選択した状態で、左メニューから「APIとサービス → ライブラリ」に移動。検索バーに「Maps JavaScript API」と入力し、表示される API をクリック。「有効にする」ボタンをクリックします。同じ手順で「Street View Static API」も有効化(任意・静的画像埋込で使用)。

課金アカウントを設定

左メニューから「お支払い」を選択し、「お支払いアカウントを追加」をクリック。国(日本)・アカウントタイプ(個人/事業)・氏名・住所・電話番号・クレジットカード情報を入力します。無料枠内でも課金アカウント設定は必須ですが、無料枠を超えない限り課金は発生しません。初めての方は $300 の無料トライアルが自動適用されます。

APIキーを発行

左メニューから「APIとサービス → 認証情報」に移動。画面上部の「+ 認証情報を作成」→「APIキー」をクリック。数秒でAPIキーが発行されるのでコピーして安全な場所に保管します(後で使います)。このキーは他人に見せないよう注意。

APIキーに HTTPリファラ制限を設定【最重要】

発行直後の APIキーは どこからでも使える危険な状態です。HTMLソースから第三者に抜かれて悪用されないよう、必ずリファラ制限を設定します。

  • 認証情報ページで、発行したAPIキー名をクリック
  • アプリケーションの制限」で「HTTP リファラー(ウェブサイト)」を選択
  • 「ウェブサイトの制限」で「項目を追加」をクリック
  • 許可リストに自サイトのドメインを入力(例: https://yourdomain.com/*、ステージング環境を使う場合は https://staging.yourdomain.com/* も追加)
  • 開発用に http://localhost:*/* も追加しておくと便利
API の使用を限定

同じ認証情報画面で「API の制限」セクションに進み、「キーを制限」を選択。ドロップダウンから使用する API(Maps JavaScript API、必要なら Street View Static API)のみにチェックを入れて保存。これにより、仮にキーが漏れても別APIの悪用を防げます。

予算アラートを設定

左メニュー「お支払い → 予算とアラート」から「予算を作成」をクリック。予算名(例: “monthly-guard”)・範囲(プロジェクト選択)・金額(例: $20/月 = 無料枠内の余裕)を設定。アラートを50%・90%・100%で通知するよう設定し、Email送信先を指定。これで予期せぬ課金を防げます。

HTMLに APIキーを組み込んで動作確認

§6 のコード例の 【あなたのAPIキー】 部分を手順4でコピーしたキーに置き換え、サイトに配置。ブラウザで表示してストリートビューが表示されることを確認します。表示されない場合は、ブラウザの DevTools「Console」タブでエラーメッセージを確認(次の§9トラブルシューティング表を参照)。

2026年の Google Maps Platform 料金体系

API従量単価無料枠(月額 $200 内で)
Maps JavaScript API
(ストリートビュー埋込含む)
$7 / 1000 loads月 28,500 loads まで無料
Street View Static API$7 / 1000 requests月 28,500 requests まで無料
Maps Embed API
(iframe版)
完全無料無制限(リファラ制限ありなら)
Geocoding API$5 / 1000 requests月 40,000 requests まで無料
料金の現実的な目安

店舗サイトで月1,000〜10,000PV程度であれば、ストリートビュー埋込からのAPI呼び出しはほぼ間違いなく無料枠内です。弊社の顧客の方でも、API方式に切り替えて課金が発生したケースは実質ゼロです。中規模(月100,000PV超)・大規模サイトでは、本記事§9のトラブルシューティングも併せて参考にしてください。

APIキーが漏洩した場合の対処

GitHub の public リポジトリにキーを誤コミットしてしまった等、APIキーが漏洩した疑いがある場合は即座に無効化と再発行を行います。

  • Google Cloud Console → APIとサービス → 認証情報 → 該当APIキーを選択
  • 「APIキーを削除」または「再生成」をクリック(既存キーが無効化される)
  • 新しいキーを発行し、リファラ制限を必ず再設定
  • HTMLの古いキー参照を新キーに置き換え
  • 漏洩前の課金履歴を「お支払い → 履歴」で確認し、不審な使用があれば Google サポートに連絡

解消方法③: レスポンシブラッパー(2020年以降のモダン実装)

iframeで埋め込む場合でも、CSS の `aspect-ratio` プロパティを使ったレスポンシブラッパーで包むことで、不具合を一部緩和しつつモダンなレイアウトが実現できます。これは2020年以降の CSS 仕様で主要ブラウザで対応済みです。

<!-- HTML -->
<div class="sv-wrapper">
  <iframe
    src="https://www.google.com/maps/embed?pb=!【埋込URL】"
    allowfullscreen
    loading="lazy"
    referrerpolicy="no-referrer-when-downgrade">
  </iframe>
</div>

<!-- CSS -->
<style>
.sv-wrapper {
  max-width: 100%;
  margin: 0 auto;
  aspect-ratio: 16 / 9;  /* または 2 / 1 で横長 */
}
.sv-wrapper iframe {
  width: 100%;
  height: 100%;
  border: 0;
  -webkit-overflow-scrolling: touch;
}
</style>

このアプローチの利点

  • レスポンシブ対応 — スマホからPCまで同じコードで綺麗に表示
  • aspect-ratio で縦横比を保ちながら自動サイジング(従来の padding-bottom トリック不要)
  • loading=“lazy” — 画面内に入ったタイミングで読み込むため初期表示が高速化
  • §5 の CSS と組み合わせることで iOS 不具合もある程度緩和
完全解決には API方式が確実

レスポンシブラッパーは UX の底上げにはなりますが、iOS の iframe 挙動不具合そのものを完全に解消するわけではありません。スクロール不具合を確実に避けたい場合は §6 の Google Maps JavaScript API 方式を採用してください。

その他のコミュニティ解法(上級者向け)

§5〜§8の標準的な解法でうまくいかない場合、海外の Web開発コミュニティ(Stack Overflow・GitHub・CSS-Tricks等)で議論されてきた代替ワークアラウンドが役立つことがあります。ここでは8年以上にわたって実戦で使われてきた5つの解法を紹介します。

解法A: position:fixed ラッパー方式(PierBover 方式)

GitHub の PierBover/ios-iframe-fix で公開されている解法。iframe の中身(読み込まれるコンテンツ側)を position:fixed で固定し、スクロールコンテナに任せるアプローチです。iframe 内の HTML を自分で制御できる場合に有効です。

/* iframe内のHTML側に適用するCSS */
html, body {
  margin: 0;
  padding: 0;
}
body > .content-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
}
この方式の制約

position:fixed 使用のため、iframe 内で モーダル・固定ヘッダー・中央寄せ UI が使えなくなる副作用があります。また、スムーズスクロール・onload アニメーション等が影響を受ける場合があります(関連Issue)。

解法B: JavaScript で src 属性を動的設定

iframe 要素を HTML に直接書かず、JavaScript で src プロパティを動的に設定することで一部のiOS iframeバグを回避できる、という報告があります(Stack Overflow・CSS-Tricks等で議論)。

<!-- HTML -->
<iframe id="sv-frame" data-src="https://www.google.com/maps/embed?pb=!..." loading="lazy"></iframe>

<!-- JavaScript(iframe要素の直下に配置) -->
<script>
  const f = document.getElementById('sv-frame');
  f.src = f.dataset.src;  // 属性ではなく src プロパティとして設定
</script>

注意: この方法は iOS の挙動を完全に安定化させるものではなく、あくまで「一部の iOS 固有バグ」の回避策です。効果が出ない場合は他の解法と併用してください。

解法C: body の `position:relative` を外す

意外と見落とされがちなチェックポイントです。サイトの基盤CSSに `body { position: relative; }` が入っていると、iOS Safari で iframe のスクロールが壊れる事象が報告されています(CSS-Tricks フォーラム等)。

/* NG */
body {
  position: relative;  /* ← iOS iframe 不具合を引き起こす可能性 */
}

/* OK */
body {
  /* position 指定なし or static(デフォルト) */
}

テーマ・テンプレートによっては body に position:relative が自動挿入されるケースがあります。ブラウザの DevTools で body の computed style を確認し、不要であれば外してください。

解法D: iScroll ライブラリの併用

純粋なCSSでどうしても解決しない場合、iScroll(軽量 JavaScript スクロール制御ライブラリ)を使う方法もあります。ネイティブに近い慣性スクロール挙動を再現しつつ、iOS の iframe バグを回避できます。ただし2025年以降メンテナンスは減速傾向のため、他の解法を先に試してから検討を推奨します。

解法E: nested iframe の font-size:1px ハック

iframe 内にさらに iframe が入っている(nested iframe)構造で、iOS でスクロールが効かない場合、親の iframe コンテナに `font-size: 1px` を指定することで回避できる、という報告があります(GitHub plumpNation/nested-iframe-issues 等)。

.nested-iframe-container {
  font-size: 1px;  /* iOS の nested iframe スクロール不具合回避 */
}

極めてトリッキーなハックですが、複雑な埋め込み構造で他の方法が通用しない場合の最後の手段として知られています。

WebKit Bug #149264 の歴史と学び

「そもそも、なぜこの問題が10年近く解決されないのか?」──多くの Web開発者が抱くこの疑問について、歴史的経緯を整理します。

WebKit Bugzilla #149264(2015年〜未解決)

この不具合は WebKit Bugzilla Bug #149264「[iOS] IFrames are not scrollable even when scrolling=yes is specified」として2015年に報告されています。報告からすでに10年以上経過していますが、2026年4月現在も“未解決”のまま維持されています。

Apple が解決しない理由(推定)

  • セキュリティ上の設計意図: iframe内のスクロール処理を親ページ側に昇格させることで、悪意あるコンテンツがユーザーを“無限スクロール地獄”に閉じ込めるのを防ぐ
  • iOS Web App 戦略: Apple は Web App よりもネイティブアプリを推す戦略を取っており、WebKit の Web標準対応は他ブラウザより遅れる傾向
  • App Store Review 互換性: iOS の全ブラウザが WebKit 共通のため、WebKit 変更の影響範囲が大きく慎重な判断を要する

Google 側の立場

Google はGoogle Maps JavaScript API 版で問題が発生しない独自のタッチハンドリングを実装することで公式対応としています。iframe版の不具合を直接修正することはせず、「API方式を使え」というスタンスです。これは Apple 側の制約で Google にできることが限定的である事情もあります。

開発者への示唆

10年の教訓

10年間未解決の Apple / WebKit 側のバグを「いつか直るだろう」と待つのは非現実的です。現時点では Web 開発者側が CSS または API 方式で確実に対応するのが定着策です。AMP プロジェクトは “shadow wrapper approach”(Shadow DOM でラップする実験的解法・Dima Voytenko考案)も実装していますが、本記事の§5〜§8の標準解法の方が実用性が高く、まずはそちらをお試しください。

実装後の確認とトラブルシューティング

チェックポイント

  • 実機検証 — iPhone(Safari・Chrome)・iPad(Safari・Chrome)・Android(Chrome)・PC(複数ブラウザ)で動作確認
  • スクロール挙動 — ストリートビューをタップ・ドラッグしてもページが飛ばないことを確認
  • 360°回転 — 指でドラッグしてストリートビュー内を回転できることを確認
  • 次ポイント移動 — 矢印タップで次のパノラマに移動できるか
  • ロード速度 — lazy loading 設定でページ初期表示が遅くなっていないか

よくあるトラブルと対処

症状原因対処
APIキーエラーで表示されないリファラ制限の設定ミス or キー自体の権限不足Google Cloud Console で制限設定・API有効化を確認
「ストリートビューが見つかりません」緯度経度指定で近くにパノラマがないパノラマID指定に切り替え
CSS対応しても不具合が残るテーマ側の他CSSで上書きされているブラウザのDevToolsでoverflowの継承を確認
iframe版で画面が真っ白Google Maps Embed API のURL形式が古いGoogleマップの“共有”→“地図を埋め込む”から最新URLを取得
画面サイズが崩れるaspect-ratio未対応ブラウザ従来の padding-bottom トリックも併記

よくある質問(FAQ)

Q

この不具合はいつ Apple / Google で修正されますか?

A

2018年から2026年4月まで8年以上続いており、近い将来の修正は期待しない方が現実的です。Apple 側は WebKit のセキュリティ挙動の一環として本仕様を維持しており、Google 側はAPI方式で回避する方法を公式推奨しています。コンテンツ提供側(Webサイト運営者)が CSS または API 方式で対応するのが定着策です。

Q

WordPress サイトで簡単に対応する方法はありますか?

A

子テーマの style.css に §5 の CSS を追記するのが最も簡単です。管理画面で「外観 → カスタマイズ → 追加CSS」でも可。より確実な対応が必要な場合は §6 の API 方式でショートコード化(functions.php に登録)すると再利用しやすくなります。

Q

APIキーの料金が心配です。月数百円でも発生しますか?

A

月額 $200 の無料枠があり、店舗サイトレベルのアクセス(月数千PV程度)であれば完全無料です。ただし課金アカウントの登録は必須です。予防策として Google Cloud Console で「1日あたりリクエスト数上限」「月額アラート」を必ず設定してください。0円または最小額(数円レベル)で運用している店舗サイトが大多数です。

Q

CSS対応とAPI方式、どちらがおすすめですか?

A

CSSで解消する場合は手間も少なく追加費用もゼロなので、まずは§5のCSSから試してみてください。既存サイトのテーマ上で不具合が残る場合や、“確実にiOSで動作する”ことを保証したい場合は §6 の API 方式に切り替えるのがおすすめです。大規模サイト・ビジネスサイトでは最初からAPI方式を推奨します。

Q

Web制作の知識がなく自分で実装できません。外部に依頼するとどれくらいかかりますか?

A

CSS対応なら1〜2時間(¥5,000〜¥15,000前後)、API方式での再実装なら半日〜1日(¥20,000〜¥50,000前後)が相場です。弊社のストリートビュー撮影サービスをご利用いただく場合、撮影と合わせてiframe埋め込みのCSS対応はサポート範囲内でお手伝い可能です。詳細は ストリートビュー撮影サービスでご相談ください。

Q

Googleマップ(通常の地図)でも同じ不具合は起きますか?

A

通常のGoogleマップiframeは、ストリートビューほど深刻ではないものの類似の不具合(スクロール干渉・タッチ挙動)が報告されています。対処法は本記事と同じで、CSS対応 or Google Maps JavaScript API での実装に切り替える方法が有効です。

まとめ

  • iframeでのストリートビュー埋め込みは iOS Safari / Chrome で8年以上継続する不具合がある(2026年時点)
  • 対応方法は3つ: CSS対応(最速・無料)・Google Maps JavaScript API(確実)・レスポンシブラッパー(UX底上げ)
  • まずは§5の CSS(3行追加)から試す。残る場合は §6 の API 方式に切り替え
  • API キーは自サイトのドメインに限定+料金アラート設定でセキュアに運用
  • 実装後は iPhone / iPad / Android / PC の全端末で動作確認

ストリートビュー撮影と埋め込み対応をお任せしたい方へ

Google認定パートナー11年以上・全国公開支援事例553件の実績で、ストリートビューの撮影から自社サイトへの最適な埋め込み(iOS対応含む)まで、トータルでサポートします。撮影ポイントの設計・お見積りは完全無料です。

この記事を書いた人

友添 成隆

友添 成隆

日本のインターネット黎明期からITコンサルタントとして活動。ドメインレジストラ事業、レンタルサーバ事業、Web開発事業、企業向けグループウェア(ASP)事業、大手不動産企業のWeb開発など、インターネット産業の基盤構築フェーズを20年以上にわたり最前線で経験。

Googleが「Google マイビジネス」を発表(2014年6月)した半年後・2015年1月、そのIT/Web事業の集大成として株式会社おもてなしドットコムを創業し、Google ストリートビュー認定撮影パートナーとして登録。「Googleストリートビューは Googleビジネスプロフィール(旧マイビジネス)に登録するためのツール」という本質を最初から理解し、撮影だけでなくGBP/マイビジネス全体の運用支援を11年間一貫して提供してきた業界最古参のGoogleビジネスプロフィール/MEO/ストリートビュー実務家。

Google本社・日本法人と継続的に対話を重ね、Google Street View Summit に日本から数少ない招待者として全4回連続招待(2016アムステルダム・2017東京・2018シリコンバレー(Mountain View)・2019ロンドン)を受け、うち後の3回(東京・シリコンバレー・ロンドン)に現地参加。Google Places → Googleプレイス → Google マイビジネス → Googleビジネスプロフィール の全名称変遷と仕様変更をリアルタイムで把握しクライアントに伝えてきた稀少なポジション。累計閲覧 4億6千万回+・公開支援事例 553件・MEO対策サポートツール「おもてハブ」を自社開発・運営。