« 牡丹稲荷神社 | メイン | 牡丹園(8) »

Mapoint プラグイン


ダウンロード Mapointプラグイン Updated: 2004/4/27: version 1.0.2 released Updated: 2004/4/26: version 1.0.1 released
テンプレート例(↑のように出力するテンプレート例=実際にテストで使っているもの) [quote][code]
撮影日時: <$MTMapointDateTime$>
場所: <$MTMapointLocation$> (<$MTMapointPoint type="N" format="北緯%1度%2分%3秒"> <$MTMapointPoint type="E" format="東経%1度%2分%3秒"> <$MTMapointPoint type="A" format="(標高%1m)">)
撮影データ:
<$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表示を残せば、改変利用する事ができます。 ◎本プラグインは個人での利用に限り無料で使えます。

コメント

さっそくインストールしてみました。
しかし、Exif情報が渡ってこないようです。

やったことは
Mailogにログインして管理画面でGPS位置情報をPluginを使用するに変更
MTのテンプレートに上記タグを入れる
pluginディレクトリにプラグイン本体をアップロード

です。
pluginを利用しない方法ではうまく動いています。
29日0時ころにならないと動かないのでしょうか?

日時は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情報は古い形式ではエントリに含まれていませんので、取得できません。画像から取ることもできますが、べらぼうに時間がかかる事が予想されますので、やっていません。

今、からまわりさんのトップページのソースを見せていただいたのですが、一部のタグがそのまま出力されてしまっています。
テンプレートに何らかの誤りがあると思われますので、チェックされてはいかがでしょうか。

私もからまわりさんと似たような状態になりました。
(現在テンプレートは旧型に戻してあります)
div属性が指定されていますが、スタイルシートは変更しなくていいですか?

上記のタグを簡略化して
---
<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で作っているのも影響しているのでしょうか。

すみません。残るタグは

>ふっちゃん
すみません。言葉が足りませんでしたね。「使用例」は、「例」とあるように、私が使っているテンプレートそのものなんです。
実際にふっちゃんが使う場合には、は随時ご自分の環境、デザインに合わせてください。

>からまわりさん
>ふっちゃん

お二人ともEUCですね。何か関係するか調べてみます。
実際にお使いになっているテンプレートをいただけたらはっきりすると思います。

プラグインを実行させるのに必要なパッケージを書き洩らしていました。

Image::Info
Jcode
URI::URL
LWP::Protocol::http
LWP::UserAgent

これだけ必要です。

但し、ちょっとチェックが甘くて、Image::Infoは実は不要です。
プログラムの初めの方にあるuse行を削除してもOkです。

EUC blogについてですが、MTMapointLocationで一ヶ所使っているJcodeでのUTF-8への変換部分を削除すればEUCのまま出力されます。プログラムの最後から数行の所にありますので、これを削除。そうすると、プログラムの頭にあるuse Jcode;も不要になります。

からまわりさんのサイトではこの修正でうまくいったようですね。
良かった。

13行目のImage::Infoの部分をコメントアウトしました。
#use Image::Info qw(image_info dim);

また、blogがEUCでしたので

320行目のeuc->utfの部分もコメントアウト
#Jcode::convert(\$loc, "utf8", "euc");

これでうまく動きました。

からまわりさんと同じ方法でできました。
ありがとうございました!活用します。

ありがとうございます。
鈴木さんとふっちゃんのフィードバックを元に、バージョン1.0.2をリリースします。
EUCかどうかの判定はプラグイン内で行うようにしました。

こんにちは。
犬サイトの方で画像を添付して試してみたのですが、
convert_breakを指定しても画像データが改行されず
長々と表示されてしまいます。
miyaさんはCSSの方で表示を指定されているんでしょうか?
整形する方法でなにかいいお知恵はないでしょうか?
こちらが該当ページです。
http://luna.stella-luna.com/archives/000296.html

ふっちゃん、ごめんなさい!
convert_breaks でした。ドキュメントに"s"が抜けていました。

できました!ありがとうございます。

お手数お掛けしました。>ふっちゃん

写真データは、別の形で表示するのもいいかと思います。
何かクリックするとJavaScriptでニョロっと出てくるとか。
本文にあると邪魔でしょう?

ニョロっと出てくるのいいですね。
でも一つのページにあまりjavascriptを埋め込むのは抵抗があったり…。
今はindividual archiveのテンプレにだけ写真データを表示するようにしてあります。
ところで新規投稿やリビルド時に
MT::App::CMS=HASH(0x8066678) print() on closed filehandle LOGFILE at plugins/mapoint.pl line 400
というエラーが出るようになりました。
キーワード部分が空白だと探しに行っちゃうのかな。

ふっちゃん、ごめん!

デバッグ用のものが置いてありました。(ログを取る)
もう一度ダウンロードしてもらえませんか。

入れ直しました。まだ新規エントリは書いていないので結果はわかりませんが…
いつもありがとうございます。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)