ダーツとか色々教えてくれるお姉さんのTommyさん
[Tommyとゆかいな仲間たち]
が、
仕事中に「GoogleMapの使い方教えて〜」ときたので、
ちょっとSeesaaブログでの使い方をチュートリアル形式で書いてみようかと。
1:GooglleMapsのKeyを取得しよう
まずはGoogleからKeyを取得しなければなりません。
コチラ[
Google
]からKeyを取得しましょう。
リンク先の下のほうにある「My web site URL」に自分のサイトのトップURLを指定して、
Generate API Keyを押すと、Keyが生成されます。
Keyが有効なのは、登録したURL以下のサブディレクトリ全部です。
2:keyをBlogに書き込もう
取得したKeyをHTMLの<head>〜</head>の間に挟むと、GoogleMapsが使えるようになります。
Seesaaでは、ブログの管理画面から変更する事ができます。
「デザイン→HTML→有効にしているHTML名」です。
このHTML編集画面で、<head>〜</head>の間に、以下の一行を挿入してください。
何故赤字の部分が必要かというと、
SeesaaはShift-JISなので、Googleに送るキーはUTF-8だよ!と明示的に教えてあげる必要があります。
3:bodyを書き換えよう
同じくHTML編集で終了処理を記述するために、bodyタグを以下のように変更します。
Before
<body>
After
<body onunload="GUnload()">
これで、ページを切り替えた時に適切な終了がされるようになります。
4:blogに記事を投稿しよう
今まで下準備を終了しました。
次は、実際にBlogに地図を張り込む作業です。
これは普通にJavaScriptを書くだけです。簡単ですね!
4.1:厄介なInternetExploler
と言いたい所なのですが、実はInternetExplolerが厄介なのです。
GoogleMapsへのJavaScriptを何も考えずに書くと、
「インターネット サイト http://*** を開けません。 操作は中断されました」
というエラーが発生します。
FirefoxとかOperaだと問題ないんですけどね〜。
これはIEがJavaScriptをロードするタイミングが、
ページを読み込んだ後じゃないと
いけないという仕様(制約?)のせいです。
4.2:記事へのScriptの書き方
じゃあどうするかというと、window.onload
[JavaScript日本語リファレンス]
を使います。
これは、ページの読み込みが完了した時に呼ぶ関数を定義できます。
ソースにすると以下の様になります。
1 <div id="map" style="width: 500px; height: 400px"></div>
2 <script type="text/javascript">
3 //<![CDATA[
4 var map;
5 function load() {
6 if (GBrowserIsCompatible()) {
7 map = new GMap2(document.getElementById("map"));
8 map.setCenter(new GLatLng(35.602768,139.708768), 16,G_NORMAL_MAP);
9 map.addControl(new GLargeMapControl());
10 map.addControl(new GScaleControl());
11 map.addControl(new GMapTypeControl());
12 map.addControl(new GOverviewMapControl(new GSize(150,120)));
13 var gpObj = new GPoint(139.708768,35.602768);
14 var marker = new GMarker(gpObj);
15 map.addOverlay(marker);
16 GEvent.addListener(marker, "click", function(){
17 marker.openInfoWindowHtml("メッセージ");
18 } );
19 }
20 }
21
22 window.onload=load;
23 //]]>
24 </script>
簡単&多少意訳で1行づつ解説します。
- このタグの箇所に地図が表示されます。あとは、地図の大きさを指定します。
- JavaScriptの開始を示します。
- 同上
- 地図のデータを入れる変数を宣言します。
- load()という関数オブジェクトを宣言します。
- Googlemapsを使えるブラウザかを判別します。
- 地図のインスタンスmapを生成します。
- 地図の中心をどの座標にするかを指定します。
- コントロールボタンを表示します。
- 縮尺を表示します。
- 地図のタイプを切り替えられるようにします。
- 地図に小さいOverViewを付けます。
- 座標のインスタンスを生成します。
- マーカー(ピン)のインスタンスを↑で作った座標に生成します。
- ↑で作ったマーカーを地図に表示させます。
- マーカーがクリックされたら、17行目を実行します。
- 吹き出しを表示させます。
8行目の「GLatLng」と13行目の「GPoint」の緯度経度の入力は、
逆になっているので気をつけましょう。
私含めて何人か引っ掛かってます(笑)
4.3:注意点
Seesaaブログの設定で「改行を<br/>タグに変換しない」の設定にしましょう。
でないと、JavaScriptの途中で改行タグが入ってしまい、
上手く動かない可能性があります。
4.4:openInfoWindowHtml()でHTMLを使う場合
吹き出しの中でリンクを張りたいときがあると思いますが、
その場合は、Seesaaの記事設定でURL補完を補完しないにしなくてはなりません。
でないと、Seesaa側で勝手にタグをつけてしまい、上手く動きません
HTML例
上記例のように"の前には「\」を付けましょう。
これが無いとJavaScriptが途中で文字列が終わっていると処理してしまい、
GoogleMapsの表示が上手くされません。
5:データの追加方法
今回のサンプルは1個のマーカーだけですがマーカーを増やしたい場合は、
13行目から18行目をどんどん増やしていけば良いでしょう。
私信
ってなわけで、頑張ってください!
参考URL
- Google Maps APIリファレンス
[LINK]
- ぴゅあどら@blog
[LINK]
- Geekなページ
[LINK]
追記
- 注意事項を追記(2006/09/07)
- 吹き出しにリンクを記述する方法を追記(2006/09/08)
posted by MINE at 21:52
| 🌁
|
Comment(4)
|
TrackBack(0)
|
JavaScript
|

|

|
edit