Google APIの利用
-
初めまして。
Wordpressのプリセットテーマで子テーマを作成し、そこにGoogle Map APIをで地図を描画しようとしたのですが動作が不可解で原因を調べています。みさなんの知恵をお借りしたいです。
以下のコードで実装したところ、Googleマップの基本的なパーツの表示(左上の切り替え表示タブ、左下のGoogleのロゴ、右下のエラーレポートなどへのリンク)は表示されるのですが肝心の地図の内容だけが表示されません。
確認したこととしては、- テンプレート中でもiframeタグを用いた実装した場合では機能します。
- Google Developper Consoleからのレスポンスを確認するとどうやら通信は成功している。
- モジュールファイルを読み込まず、該当の子テーマのディレクトリに作成したファイルからは機能する。
- PHP, Javascript, Google Map APIでのエラーは確認できない。
このテーマ中ではgoogleのAPIを使ってfontのデータを参照しているようで、それが原因なのかとあたりをつけているのですが、どうすれば良いのか。。。
みなさんならどう原因を特定しますか?あまり助長になってはならないと思い以下の内容に絞りましたが、他に必要な情報があればおっしゃってください。ご助力、どうぞよろしくお願いいたします。[環境]
- WordPress Ver.:4.4.1
- 使用テーマ:Twentythirteen1.7の自作子テーマ
- ブラウザ:Safari 9.0.2 / Firefox 42.0
- ローカル環境での開発
[front-page.php]
<?php get_header();?> <div id="map" style="height:100%; width:100%;"></div><br /> <?php get_footer();
[functions.php]
<?php add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); function theme_enqueue_styles() { ...(スタイルシートの読み込み) wp_enqueue_script( 'google-api', 'https://maps.googleapis.com/maps/api/js?key={取得済みAPI KEY}', array()); wp_enqueue_script( 'map', get_stylesheet_directory_uri() . '/js/map.js', array('google-api'), '1.0.0', true); }
[map.js]
function initMap() { var latLng = new google.maps.LatLng({緯度}, {経度}); var map = new google.maps.Map(document.getElementById('map'), { center: latLng, zoom: 16, }); var marker = new google.maps.Marker({ map : map, position : latLng, }) ; var infoWindow = new google.maps.InfoWindow({ content : '<b>{ピンに加えるコメント}</b>', position : latLng, }); infoWindow.open(map, marker); } initMap();
次のファイルを該当の子テーマのベースディレクトリに保存して読み込んだ場合は機能します。
[map.html]<!DOCTYPE html> <html> <head> <title>Google Map API Test</title> <style> html, body { height:100%; } #map {height:100%; width: 100%;} </style> </head> <body> <div id="map"></div> <script src="https://maps.googleapis.com/maps/api/js?callback=initMap" async defer></script> <script> function initMap() { var latLng = new google.maps.LatLng({緯度},{経度}); var map = new google.maps.Map(document.getElementById('map'), { center: latLng, zoom: 16, }); var marker = new google.maps.Marker({ map : map, position : latLng, }) ; var infoWindow = new google.maps.InfoWindow({ content : '<b>{ピンに書き込むコメント}</b>', position : latLng, }); infoWindow.open(map, marker); } intiMap(); </script> </body> </html>
7件の返信を表示中 - 1 - 7件目 (全7件中)
7件の返信を表示中 - 1 - 7件目 (全7件中)
- トピック「Google APIの利用」には新たに返信することはできません。