「Custom Field Template」関係メモ・5 位置情報をGooglemapにまとめて表示
やりたいこと
個別の記事ごとに地図を表示しているのを、地図から逆引きできるように、地図に複数マーカーを表示したページを作りたい。
位置情報の入力にはカスタムフィールドテンプレートを使用している。
→必要な情報を、ループ構文?でGooglemapで読める形に書き出せばできるはず。
参考1
配列を使用してGoogleMapに複数のマーカと情報ウィンドウを表示する(その2) | Blog | 06.GRASSHOPPER
参考にしたけど、WordPressでの使用例ではないので使わなかったところ。
参考その2と実行
Google Maps API | WordPressとプラグインを使ってお店紹介サイトを作る方法
ここの「公開しているGoogle Maps APIのソース」を改変して使用させてもらった。
・このソースをmap.phpにしてアップロード
・index.phpの入れたい場所に
<?php get_template_part( 'map' ) ?>
と書いて、map.phpをインクルード。
→複数マーカー、複数吹き出し、吹き出しには記事タイトル(リンク付き)になった。
改変1・緯度経度データのカスタムフィールド名
position: new google.maps.LatLng( <?php echo post_custom("Map_lat")?>,<?php echo post_custom("Map_lng")?> ),
私は緯度経度をまとめて”Lat_Long”としているので(Googlemapで調べた位置のコピペを一度で済ませたい)
position: new google.maps.LatLng( <?php echo post_custom("Lat_Long")?> ),
と書き換え。
改変2・カテゴリ制限(失敗)
カテゴリの制限をかけたかったので
<?php while (have_posts()) : the_post(); ?>
<?php if ( have_posts() ) : query_posts('cat=-9,-10&showposts=100'); ?>
に書き換えたら(先に解説されている)動かなかった(ので戻した)。
改変3・直し方がわからないので放置
また、この後に解説されているMarkerClustererも使うようになっているけど、プラグインは入れてない。
カテゴリごとのアイコン変更や、吹き出しサイズの調整が課題。