plugins:googlemaps

NP_GoogleMaps

Google Mapsを使って地図を表示するプラグイン。

General Plugin info
作者Andy
最新のバージョン: 1.13 (2007/4/28)
入手場所: :plugins:np_googlemaps113.zip
ソース:
動作サンプル: none
フォーラム参照先: フォーラム記事『地図表示とGPS連動プラグイン(NP_GoogleMaps, NP_GPSMap,NP_MapBlog)』

NP_GoogleMapsプラグイン・スイートについて

三つのプラグインと一つのブックマークレットからなります。

ベースになるのがNP_GoogleMaps。これは必ずインストールしてください。

NP_GPSMapは写真から位置情報を調べて自動的に地図を作るプラグインです。 NP_GoogleMapsでも位置情報の指定方法の一つとして画像をサポートしていますが,NP_GPSMapはタグを書かずに地図を作れるのがメリットです。例えば携帯電話からの投稿で地図を表示させたり,フォトログで使うといった用途を想定しています。

NP_MapBlogは入力された位置情報を集め,一つの地図上にまとめて表示するプラグインです。一種の<%blog%>変数のようなものです。

インストール方法

まず最初にGoogleのアカウントとGoogle Maps API keyが必要です。Google Maps APIのページから取得してください。取得にあたってはGoogleアカウントが必要ですが、もしなければお使いのメールアドレスで登録することもできます。

  • Google Maps APIにはディレクトリごとにキーが必要だと書いてありますが,実際には一つのドメイン内では一つのキーで動きます。
  1. ZIPファイルをダウンロードして解凍します。できたNP_GoogleMaps.phpとgooglemapsディレクトリをプラグインのディレクトリにアップロードします。
  2. 解凍してできたpearディレクトリをnucleus/libsの下にコピーしてください(nucleus/pluginsの下でも構いません。都合のいい方に入れてください)。
  3. 管理パネルからプラグインをインストールします。プラグインの設定でGoogle MapsのAPIキーを入れます。Flickrの写真を使う場合はそのAPIキーも入れます。Google MapsのAPIキーはブログごとにも設定可能です。
  4. スキンのヘッダに
    <%GoogleMaps(HEAD)%>

    と入れておきます。またスキンの最後</html>の直前に

    <%GoogleMaps(SCRIPT)%>

    と入れます(前者はポップアップタイプの地図しか使わない場合は不要です)。

このプラグインの使い方

アイテムへの記述

地図を描くにはアイテム中に特別なタグを書きます。

以下にサポートしている形式をBNFで記します。

mapformat ::= '<%gmap(' mode ',' pointsinfo ',' mapoption ')%>' | '<%gmap(' mode ',' pointsinfo ')%>'
mode ::= 'inline' | 'popup(' linktext ')' | 'link(' linktext ')'
linktext ::= STRING
pointsinfo ::= pointinfo | pointinfo ',' pointsinfo
pointinfo ::= 'p(' address '|' marker '|' infotext ')'
address ::= coordinate | street | image
coordinate ::= '[' longitude '|' latitude ']'
longitude ::= -180 .. 180
latitude ::= -90 .. 90
street ::= countrycode '[' strtaddress ']'
countrycode ::= 'jp' | 'us' | ...
strtaddress ::= STRING
image ::= 'image[' imagefile ']'
imagefile ::= STRING // supports image files in the media directory and Flickr.
marker ::= BLANK | 'yes' | 'no' // BLANK='no'
infotext ::= STRING
mapoption ::= 'm(' width '|' height '|' type '|' control '|' zoomlevel ')'
width ::= BLANK | POSITIVE INTEGER // BLANK=400
height ::= BLANK | POSITIVE INTEGER // BLANK=300
type ::= BLANK | 'map' | 'sate' | 'dual' // BLANK='map'
control ::= BLANK | mapcontrol '/' typecontrol'/' scalecontrol
mapcontrol ::= BLANK | 'none' | 'xs' | 's' | 'b' //xs=scale only, s=small, b=large BLANK='s'
typecontrol ::= BLANK | 'none' | 's' // BLANK='s'
scalecontrol::= BLANK | 'none' | 's' // BLANK='s'
zoomlevel ::= BLANK | INTEGER // BLANK=5

format2: <%gmap(link … %>タイプに対応した地図を表示するためのものです。

mapformat ::= '<%gmapitem(' mode ',' mapoption ')%>'
mode ::= 'inline' | 'popup(' linktext ')'
linktext ::= STRING
mapoption ::= 'm(' width '|' height '|' type '|' control '|' zoomlevel ')'
width ::= BLANK | POSITIVE INTEGER // BLANK=400
height ::= BLANK | POSITIVE INTEGER // BLANK=300
type ::= BLANK | 'map' | 'sate' | 'dual' // BLANK='map'
control ::= BLANK | mapcontrol '/' typecontrol'/' scalecontrol
mapcontrol ::= BLANK | 'none' | 'xs' | 's' | 'b' //xs=scale only, s=small, b=large BLANK='s'
typecontrol ::= BLANK | 'none' | 's' // BLANK='s'
scalecontrol::= BLANK | 'none' | 's' // BLANK='s'
zoomlevel ::= BLANK | INTEGER // BLANK=5

テンプレートへの記述

テンプレートで地図の指定をすることもできます。例えばznItemFieldEXと連携させる場合などに使えます。

mapformat ::= '<%GoogleMaps(' mode ',' pointsinfo ',' mapoption ')%>'

それぞれのフォーマットは上記と同じです。pointsinfoでアイテムの他の要素と連携する場合,ここにテンプレートの内容を書くことになります。このとき,呼び出す情報は<: :>でくくってください。また,テンプレートの引数区切りに使う「,」は「;」にします。 例えば,znItemFieldEXでaddressフィールドに住所が入っている場合,pointsinfoのところはp(jp[<:znItemFieldEX(address):>]|yes|<%title%>)といった形式になります。

位置情報指定

地図上の位置を指定するには三つの方法があります。

  1. 緯度経度
  2. 住所
  3. 画像ファイル

以下に例を挙げます。

<%gmap(inline,p([-74.04455780|40.68923]|yes|Statue of Liberty),m(400|400|sate|b/s/s|3))%>
<%gmap(inline,p(us[1313 S Harbor Blvd Anaheim, CA]|yes|Disney Land),m(300|300|dual|s/s/none|2))%>
<%gmap(popup(式根島),p(image[http://static.flickr.com/3/3585382_87413bbfb3_o.jpg]|no|),m(400|300|map|xs/none/none|3))%>

ジオコーディング(住所と座標のマッピング)

Googleのジオコーディング,および日本と米国で別のジオコーディングをサポートしています。

jp[東京都港区芝公園4-2-8]
jp[station:秋葉原]
jp[facility:東京大学]
jp[place:静岡県富士山測候所]

あるいは

us[1313 S Harbor Blvd Anaheim, CA]

といった形で入れます。

ジオコーディングの機能は他の国に拡張可能です。NPGM_ジオコーダの名前.phpというファイルをgooglemaps/geocoderディレクトリに作ってください。

画像からの位置情報の取得

JPEGにEXIFで埋め込まれたGPS情報を使うことができます。 メディア・ディレクトリに入っている画像の場合image[ファイル名]で指定します。

Flickrの画像の場合はimage[FlickrのURL]になります。Flickrでは画像に埋め込まれたGPS情報のほか,ジオタグされたデータも利用できます。

地図の表示タイプ

インラインタイプとポップアップタイプのほか,リンクタイプがあります。リンクタイプを選ぶと一つのアイテムについて地図を一つだけ表示します。本文中のリンクをクリックするとその位置を地図の中心に持ってきます。

スキン/テンプレートへの記述

<%GoogleMaps(HEAD)%> ページのヘッダ部に記述 <%GoogleMaps(SCRIPT)%> ページの末尾</body>と</html>の間に記述 <%GoogleMaps(COPYRIGHT)%> ジオコーディングのコピーライト表示に利用

オプション

開発履歴

  • Ver.0.5 公開
  • Ver.0.7 9/12/2005 住所→座標変換機能を搭載
  • Ver.0.71 9/16/2005 バグフィックス
  • Ver.0.8 (10/6/2005) 全面改訂版
  • Ver.0.81 (10/7/2005) バグフィックス(createPopupLinkに$CONFが抜けていました)
  • Ver.0.82 (10/11/2005)バグフィックス(ズームレベルを0に設定するとデフォルト値になってしまうバグを修正しました)
  • Ver.0.83(10/13/2005)ズームレベル0のときの処理がまだおかしかったので修正しました
  • Ver.0.85(10/17/2005)リンクタイプの地図を作りました。
  • Ver.0.90(6/6/2006)ジオコーディングを修正
  • Ver.0.91(6/9/2006)MapBlogのリンク表示に対応
  • Ver.0.93(9/28/2006)セキュリティ・ホールを修正
  • Ver.0.94(11/17/2006)ポップアップのタイトルを付加。地球一周問題解消用コードを消去。PEARライブラリの位置をnucleus/libsでもnucleus/pluginsでもどちらでも動くように修正。米国のジオコーディングでGoogleのジオコーディングに対応。
  • Ver.1.12(4/27/2007) 1.1でテンプレート変数に対応。1.12では地図パラメータ省略時にデフォルト値で表示するように対応。PEARの共存問題に対応。一部の画像で問題が起こるのを解決(のはず)。
 
plugins/googlemaps.txt · 最終更新: 2011/03/23 21:28 (外部編集)