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インジェクション)が増えました。