Skyward Design

Blog Webクリエイターの日々の覚え書き

ホーム > Blog > Web制作 > Movable Type > Movable Typeで記事ページにGoogle Mapを表示させる

Movable Typeで記事ページにGoogle Mapを表示させる

Posted by Hideki at 2009年10月11日 15:34

タグ:

「詳しいことは分からないけど、とりあえずGoogleマップを表示させたい!」という方向けに、Movable Typeのブログ記事テンプレートをカスタマイズし、記事ページにGoogle Maps APIを用いて地図を表示する方法を紹介します。

なお、今回は記事ページ全てに表示させることを前提に紹介しています。緯度・経度を入力した場合のみ表示させる場合は、もう少し手を加えていく必要があります。

カスタマイズの手順

1. カスタムフィールドを作成する

緯度・経度を入力するためのカスタムフィールドを作成します。その際、テンプレートタグは緯度:EntryLatitude、経度:EntryLongitudeとします。

カスタムフィールドの設定画面

2. ブログ記事テンプレートの変更

まず、</head>の前に下記のスクリプトを挿入します。1行目のコード内にあるkey=の部分は、ご自身のAPIキーに変更してください。

<script type="text/javascript" src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=取得したAPIキー"></script>
<script type="text/javascript">
  function initMap(lat, lng, zoom) {
    if (GBrowserIsCompatible()) {
      var map = new GMap2(document.getElementById("mapArea"));
      var point = new GLatLng(lat, lng);
      map.setCenter(point, zoom);

      //マーカーの表示
      map.addOverlay(new GMarker(point));

      //コントロールの追加
      map.addControl(new GLargeMapControl());
      map.addControl(new GMapTypeControl());
    }
}
</script>

次に、ページを読み込んだ際にGoogle Mapを表示させるためのコードを<body>内に追加します。修正後の例を下記に示します。テンプレートによっては「class="xxxx"」等も書いてあるかと思います。

なお、<$mt:EntryLongitude$>の後ろの「10」は、地図のズームレベルです。0~19(19が最も拡大した状態)まで指定できます。

<body onload="initMap(<$mt:EntryLatitude$>,<$mt:EntryLongitude$>,10)" onunload="GUnload()">

最後に、地図を表示させたい部分に下記を追加します。width/heightが地図の大きさなので、適宜変更してください。

<div id="mapArea" style="width:550px; height:400px;"></div>

3. 記事を入力

記事入力画面に戻り、緯度・経度を入力して保存します。緯度・経度を調べられるサイトは色々ありますが、クネヒト APIさんのジオコーディングなどが分かりやすそうです。

また、Movable Typeの管理画面のカスタマイズを行うと、管理画面上にGoogle Mapを表示させ、緯度・経度を入力できるようにすることもできます。

さらにカスタマイズすると...

上記で紹介したコードは、本当に基本的な部分です。ここからは、アイデア次第でとても楽しいWebサイトを作ることが出来ると思います。当サイトのShimalog(沖縄旅日記)もGoogle Maps APIとMovable Typeをカスタマイズしてできあがったコンテンツです。よろしければ参考にしてみてください。

コメント

現在この記事へのコメントはありません。

コメント投稿フォーム

トラックバック

トラックバックURL:
http://www.skyward-design.net/mt5/mt-tb.cgi/80

著者紹介

独学でWeb制作を学んだ後、2007年より西新宿のWeb制作会社に勤務。2011年からは広島にUターンし、マイペースで働きつつWeb制作の勉強をしているフロントエンド・エンジニアです。

Feed

Valid XHTML + RDFa

Copyright © 2011 Skyward Design All Rights Reserved.

Powered by Movable Type 5.12