Mapoint プラグイン
ダウンロード Mapointプラグイン Updated: 2004/4/27: version 1.0.2 released Updated: 2004/4/26: version 1.0.1 released
テンプレート例(↑のように出力するテンプレート例=実際にテストで使っているもの)
[quote][code]
撮影日時: <$MTMapointDateTime$>
撮影データ:
<$MTMapointExif$>
[/code][/quote]
Movable Type: Mapoint プラグインについて
本プラグインは、画像に含まれるExif情報を元にしたデータをエントリから
取り出すためのプラグインです。
[code]
◎条件
・Movable Typeの各エントリのKeywords項目に、以下のものが含まれている場
合に有効となります
EXIF={..}
Exif情報のうち、有効と思われる情報。GPS情報は含まない。
DATE=yyyy/mm/dd
TIME=HH:MM:SS
Exif情報のうちDateTimeOriginalを取り出したもの。
WGS84=aaa.bbb.ccc.dd/eee.fff.ggg.hh/ii (各digitの長さは適当)
GPSの経緯度情報が含まれていれば、単独で取り出される。
aaa.bbb.ccc.dd: 緯度
eee.fff.ggg.hh: 経度
ii: 高度 (含まれない場合がある)
・上記情報が複数ある場合、最初に見付かった情報が取得されます
・なお、現在上記情報を出力するのは、MaiLog(http://mailog.japo.net)だけ
ですが、他の方法で同様な出力をすれば、このプラグインはそのまま利用で
きるはずです。また、MaiLogの古い形式での出力にも対応しています。ですか
ら、これまでMaiLogで出力したエントリもそのまま使えます。
◎インストール方法
・Mapoint.pl を[MTがインストールされているディレクトリ]/plugins/ に置い
てください
◎プラグインを実行させるのに必要なパッケージ
Jcode
URI::URL
LWP::Protocol::http
LWP::UserAgent
◎利用方法
・コンテナタグ
Exif情報を扱う宣言
同、終了
・条件タグ
DATEキーが存在すれば以下を実行
同、終了
Exif情報が存在すれば以下を実行
同、終了
GPS情報が存在すれば以下を実行
同、終了
・タグ
<$MTMapintPoint type={N|E|A} format=string $> 経緯度情報出力
type=N 緯度を出力
type=E 経度を出力
type=A 標高を出力
format=string
stringに含まれる %1, %2, %3 (高度の場合は%1のみ)
がそれぞれの度、分、秒に置き換えられる。
例 "北緯%1度 %2分 %3秒"
標高の場合は %1は標高値で、()で括られた場合で、
標高値が存在しない場合は出力されない。
例 "(標高 %1m)"
<$MTMapointMap$> @NAVIの地図URLを出力する。
<$MTMapointLocation$> @NAVIから得た地名を表示する。(日本語はPublishCharsetに従う)
<$MTMapointDate$> 画像のDateTimeOriginalのうち、日付を出
力する。
出力フォーマットは以下の通り。
yyyy/mm/dd
<$MTMapointDateTime$> 画像のDateTimeを出力する。
出力フォーマットは以下の通り。
yyyy/mm/dd HH:MM:SS
<$MTMapointExif convert_breaks="{0|1}"$> 画像情報を出力する。
各項目は改行で区切られている。
convert_breaks="0": 改行をそのまま出力。
convert_breaks="1": 改行を
に置換する。 [/code] ◎EUC blogについて Locationの出力で日本語を使いますが、EUC blogでも文字化けしないようプラグイン内部でPublishCharsetを元に文字コード変換を行います。 ◎問題の報告 ・何か問題が発生した場合は、 miya@japo.net までご連絡ください。 できる限り対応しますが、保証するものではありません。 ◎作成者 Nobuhiro Miyatake Copyright (c) 2004 Nobuhiro Miyatake ◎本プラグインを利用したことによって、利用者が何らかの不利益を被っても、 本プラグイン作者は一切の補償は致しません。 ◎本プラグインは Copyright表示を残せば、改変利用する事ができます。 ◎本プラグインは個人での利用に限り無料で使えます。
場所: <$MTMapointLocation$>
(<$MTMapointPoint type="N" format="北緯%1度%2分%3秒">
<$MTMapointPoint type="E" format="東経%1度%2分%3秒">
<$MTMapointPoint type="A" format="(標高%1m)">)
<$MTMapointExif$>
に置換する。 [/code] ◎EUC blogについて Locationの出力で日本語を使いますが、EUC blogでも文字化けしないようプラグイン内部でPublishCharsetを元に文字コード変換を行います。 ◎問題の報告 ・何か問題が発生した場合は、 miya@japo.net までご連絡ください。 できる限り対応しますが、保証するものではありません。 ◎作成者 Nobuhiro Miyatake Copyright (c) 2004 Nobuhiro Miyatake ◎本プラグインを利用したことによって、利用者が何らかの不利益を被っても、 本プラグイン作者は一切の補償は致しません。 ◎本プラグインは Copyright表示を残せば、改変利用する事ができます。 ◎本プラグインは個人での利用に限り無料で使えます。
コメント
さっそくインストールしてみました。
しかし、Exif情報が渡ってこないようです。
やったことは
Mailogにログインして管理画面でGPS位置情報をPluginを使用するに変更
MTのテンプレートに上記タグを入れる
pluginディレクトリにプラグイン本体をアップロード
です。
pluginを利用しない方法ではうまく動いています。
29日0時ころにならないと動かないのでしょうか?
投稿者: からまわり | 2004年4月25日 18:30
日時は29日にならないとだめです。
GPS情報はそのまま使えるはずなのですが..
例えば、
http://japo.net/miya/archives/20040411_133748.html
これが古いものです。
Excerptに Place: N 37.49.20 E 140.59.8.34 が入っていて、Keywordsに
http://www.at-navi.com/map/checkMap.jsp?datum=0&unit=0&sc=0&lat=37.49.20&lon=140.59.8.34&fm=1
が入ってます。
Locationの住所も正しく取得できているのが分かります。
日付情報とExif情報は古い形式ではエントリに含まれていませんので、取得できません。画像から取ることもできますが、べらぼうに時間がかかる事が予想されますので、やっていません。
投稿者: miya | 2004年4月25日 22:49
今、からまわりさんのトップページのソースを見せていただいたのですが、一部のタグがそのまま出力されてしまっています。
テンプレートに何らかの誤りがあると思われますので、チェックされてはいかがでしょうか。
投稿者: miya | 2004年4月25日 22:56
私もからまわりさんと似たような状態になりました。
(現在テンプレートは旧型に戻してあります)
div属性が指定されていますが、スタイルシートは変更しなくていいですか?
投稿者: ふっちゃん | 2004年4月26日 00:03
上記のタグを簡略化して
---
<MTMapoint>
<MTMapointIfDate>
<$MTMapointDateTime$>
</MTMapointIfDate>
<MTMapointIfMap>
<$MTMapointMap$>
<$MTMapointLocation$>
<$MTMapointPoint type="N" format="北緯%1度%2分%3秒">
<$MTMapointPoint type="E" format="東経%1度%2分%3秒">
<$MTMapointPoint type="A" format="(標高%1m)">
</MTMapointIfMap>
<MTMapointIfExif>
<$MTMapointExif$>
</MTMapointIfExif>
</MTMapoint>
---
としてみましたが、
---
---
というように閉じるタグが残ってしまうようです。(上記タグはコメント書き込みのためわざと全角になっていますが、実験ではもちろん半角で書いてます。)
blogをEUCで作っているのも影響しているのでしょうか。
投稿者: からまわり | 2004年4月26日 01:36
すみません。残るタグは
投稿者: からまわり | 2004年4月26日 01:38
>ふっちゃん
すみません。言葉が足りませんでしたね。「使用例」は、「例」とあるように、私が使っているテンプレートそのものなんです。
実際にふっちゃんが使う場合には、は随時ご自分の環境、デザインに合わせてください。
>からまわりさん
>ふっちゃん
お二人ともEUCですね。何か関係するか調べてみます。
実際にお使いになっているテンプレートをいただけたらはっきりすると思います。
投稿者: miya | 2004年4月26日 10:39
プラグインを実行させるのに必要なパッケージを書き洩らしていました。
Image::Info
Jcode
URI::URL
LWP::Protocol::http
LWP::UserAgent
これだけ必要です。
但し、ちょっとチェックが甘くて、Image::Infoは実は不要です。
プログラムの初めの方にあるuse行を削除してもOkです。
EUC blogについてですが、MTMapointLocationで一ヶ所使っているJcodeでのUTF-8への変換部分を削除すればEUCのまま出力されます。プログラムの最後から数行の所にありますので、これを削除。そうすると、プログラムの頭にあるuse Jcode;も不要になります。
投稿者: miya | 2004年4月26日 11:28
からまわりさんのサイトではこの修正でうまくいったようですね。
良かった。
投稿者: miya | 2004年4月26日 15:45
13行目のImage::Infoの部分をコメントアウトしました。
#use Image::Info qw(image_info dim);
また、blogがEUCでしたので
320行目のeuc->utfの部分もコメントアウト
#Jcode::convert(\$loc, "utf8", "euc");
これでうまく動きました。
投稿者: からまわり | 2004年4月26日 17:09
からまわりさんと同じ方法でできました。
ありがとうございました!活用します。
投稿者: ふっちゃん | 2004年4月27日 00:53
ありがとうございます。
鈴木さんとふっちゃんのフィードバックを元に、バージョン1.0.2をリリースします。
EUCかどうかの判定はプラグイン内で行うようにしました。
投稿者: miya | 2004年4月27日 07:57
こんにちは。
犬サイトの方で画像を添付して試してみたのですが、
convert_breakを指定しても画像データが改行されず
長々と表示されてしまいます。
miyaさんはCSSの方で表示を指定されているんでしょうか?
整形する方法でなにかいいお知恵はないでしょうか?
こちらが該当ページです。
http://luna.stella-luna.com/archives/000296.html
投稿者: ふっちゃん | 2004年4月29日 21:10
ふっちゃん、ごめんなさい!
convert_breaks でした。ドキュメントに"s"が抜けていました。
投稿者: miya | 2004年4月29日 21:33
できました!ありがとうございます。
投稿者: ふっちゃん | 2004年4月29日 23:56
お手数お掛けしました。>ふっちゃん
写真データは、別の形で表示するのもいいかと思います。
何かクリックするとJavaScriptでニョロっと出てくるとか。
本文にあると邪魔でしょう?
投稿者: miya | 2004年4月30日 00:40
ニョロっと出てくるのいいですね。
でも一つのページにあまりjavascriptを埋め込むのは抵抗があったり…。
今はindividual archiveのテンプレにだけ写真データを表示するようにしてあります。
ところで新規投稿やリビルド時に
MT::App::CMS=HASH(0x8066678) print() on closed filehandle LOGFILE at plugins/mapoint.pl line 400
というエラーが出るようになりました。
キーワード部分が空白だと探しに行っちゃうのかな。
投稿者: ふっちゃん | 2004年5月 5日 02:06
ふっちゃん、ごめん!
デバッグ用のものが置いてありました。(ログを取る)
もう一度ダウンロードしてもらえませんか。
投稿者: miya | 2004年5月 5日 08:11
入れ直しました。まだ新規エントリは書いていないので結果はわかりませんが…
いつもありがとうございます。
投稿者: ふっちゃん | 2004年5月 5日 12:03