Google mapsの表示はiframeのみに

Google mapsを表示すると、2019年末ごろから「iframeでないと表示できません」旨のエラーが表示される様になりました。使用方法を変更しましたので、ビフォアー・アフターをメモしておきます。

◎ビフォアー:Webサイトの画面上に表示していた住所をクリックすると、Google Maps Embed APIを呼び出し、別ページにGoogle mapsを表示します。現在はエラーとなります。

<a href=”https://www.google.com/maps/embed/v1/place?key=API key&q=住所情報&zoom=13″ target=”_blank”>住所</a>

◎アフター:Webサイトの画面上に表示していた住所をクリックすると、別ページに用意したiframeからGoogle Maps Embed APIを呼び出し、別ページにGoogle mapsを表示します。住所はURLでパラメータ渡しとしました。

呼び出し元(index.html)
<a href=”map.php/?map=住所情報” target=”_blank”>住所</a>

呼び出し先(map.php)
<?php
if(isset($_GET[‘map’])){$map=$_GET[‘map’];}

//htmlspecialcharsのショートカット
function h($string){
return htmlspecialchars($string, ENT_QUOTES);
}
?>

<html>
 省略
<iframe width=”100%” height=”100%” src=”https://www.google.com/maps/embed/v1/place?key=API key&q=<?php echo h($map); ?>&zoom=13″></iframe>
 省略
</html>

※URLでパラメータ渡しをしたため、不正アクセスのログ(SQLインジェクション)が増えました。