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_GPSMapは写真から位置情報を調べて自動的に地図を作るプラグインです。 NP_GoogleMapsでも位置情報の指定方法の一つとして画像をサポートしていますが,NP_GPSMapはタグを書かずに地図を作れるのがメリットです。例えば携帯電話からの投稿で地図を表示させたり,フォトログで使うといった用途を想定しています。
NP_MapBlogは入力された位置情報を集め,一つの地図上にまとめて表示するプラグインです。一種の<%blog%>変数のようなものです。
まず最初にGoogleのアカウントとGoogle Maps API keyが必要です。Google Maps APIのページから取得してください。取得にあたってはGoogleアカウントが必要ですが、もしなければお使いのメールアドレスで登録することもできます。
<%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%>)といった形式になります。
地図上の位置を指定するには三つの方法があります。
以下に例を挙げます。
<%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)%> ジオコーディングのコピーライト表示に利用