この機能を使う事によって、ページに高機能なままでGooglemapを埋め込む事が出来る。WordpressのGooglemapsの機能はこれを使ったプラグインだ。
まず最初に、GoolemapからAPIキー(無料)を取得しなければならない。下記のページにアクセス(英語なんですけど・・・)して、
http://code.google.com/apis/maps/index.html
I have read and agree・・・にチェックを入れて、自分のwebサイトのアドレスを入れる。APIキーはサイトごとの発行になっているようである。人の事イエんですがagreementをもっとよく読んだ方がいいとは思いますよ。
ところで、APIの取得にはGoogleのアカウントが必要なんですが、これもメイルアドレスだけ入力すれば取得できます。先ほどのページをクリックしていきメッセージに従えばいいと思います。
うまくいけば、すぐにGoogleからAPIキーがメイルで送られてきます。そしたら、もう使えます。
APIキーは長いので、どこかにコピペして保存しておいた方がいいです。
埋め込みはJavaScript覚え書きです。仕組みは今ひとつよくわかってないので恐縮なのですが、表示が変わるたびにページがリロードされているみたいです(ようするに全部が書き換えられる)。
まず、ページのヘッダ<head>部にこのキーを使いますよってのを記述します。下記。Pukiwikiの都合で記号に全角を使っていますので、ご注意。
<script src="http://maps.google.com/maps?file=api&v=2&key=取得したAPIキー" type="text/javascript" charseet="utf-8"></script>
charset=”utf-8”というのを書かないと、IEでエラーをはかれてしまうみたいです。私はマックしかないんで確かめられませんけど。
下記のようにbodyに記載する事でいけます。
<div id="map" style="width: 400px; height: 400px;"></div> <script type="text/javascript"> //<![CDATA[ var map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(36.147786,138.015919), 12); //]]> </script>
これだけで地図は表示できます。でも、これでは面白く有りません。次に倍率などのコントロールを入れてみます。map.setCenterの後に続けて下記記載します。
map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl());
これでほとんど、やりたい事は出来ていると思います。でも、これだけではいまいちです。なので、マーカーを表示します。
var point = new GLatLng(36.152465,138.00828); map.addOverlay(new GMarker(point));
さらに、マーカーをクリックしたら吹き出しが飛び出るようにします。
GEvent.addListener(map, 'click', function(overlay, point) { if (overlay) { overlay.openInfoWindow( document.createTextNode("薬師平ホテル(入浴可)")); } });
マーカーを増やしたい場合は、変数宣言のpointをpoint2とかして追加し、addOverlayも追加します。
以下に、実施例を示します。
<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Google Maps JavaScript API Example</title> <script src="http://maps.google.com/maps?file=api&v=2&key=api-key-hogehogehoge" type="text/javascript"></script> </head> <body> <div id="map" style="width: 400px; height: 280px;"></div> <script type="text/javascript"> //<![CDATA[ var map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(36.147786,138.015919), 14); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); var point = new GLatLng(36.152465,138.00828); map.addOverlay(new GMarker(point)); GEvent.addListener(map, 'click', function(overlay, point) { if (overlay) { overlay.openInfoWindow( document.createTextNode("薬師平ホテル(入浴可)")); } }); //]]> </script> </body> </html>
このように実行されます。pukiwikiのiframeプラグインで表示しています。