2007-01-31
晴れ

WordPress 用 Google マップ表示プラグイン Lightweight Google Maps 0.9.0 リリース

yuriko による 20:22:45 の投稿
カテゴリー: WordPressハック

Lightweight Google Maps 0.9.0 をリリースしました。複数の位置情報 (Lat_Long カスタムフィールド) がある場合、位置情報の数だけ地図を表示させる機能アップ、緯度・経度を指定して固定ページの地図を表示させたときの速度改善、設置時のテンプレート修正の手間を少し減らすという修正を行なっています。なお、Map View ボタンの画像化はまだサボっていて、テキストリンクのままです;-)

配布ページ
WordPress Plugins/JSeries » Lightweight Google Maps

すでにインストールしている場合はテンプレートの修正をしなくてもいいのですが、不要な記述が残ってしまうため、気になる人は lwgm_each_map() 関数の部分を削除してください。

今後の予定

今回は CVS を使おうと思いましたが、少しミスってしまったため、使いませんでした。次期バージョンは、安定動作を確認して正式版とする「1.0」と、マーカー情報を非同期に読み込む方式に変更した「1.1」系統に分岐する予定ですが、CVS は後者のコードのみ利用する予定です (ブランチを切っての使い方がまだよく分かってないので ;-)。

「マーカー情報を非同期に読み込む」とは、固定ページを読み込ませた時点では XHTML ファイルにはマーカー情報を送出せず、その中の JavaScript でマーカー情報をサーバーから読ませるという仕組みです。これによって、地図を表示している範囲だけマーカーを読ませる/地図をスクロールしたら移動後の範囲のマーカーを追加する、などの使い勝手の改善ができます。

2007-01-28
晴れ

Ktai Location 0.9.0 リリース

yuriko による 20:11:41 の投稿
カテゴリー: WordPressハック

Ktai Location のバージョン 0.9.0 をリリースしました。今回の特徴は、複数の位置情報がある場合にすべて記録すること (同一地点は除外)、ドコモ GPS・ソフトバンク GPS に対応したこと (実機では試してないので動くか不安;-) が特徴です。

Ktai Location と連携する Lightweight Google Maps, KtaiLoc2otenki は、複数の位置情報があっても最初のもののみ読むようになっているので、Ktai Location 0.9.0 にバージョンアップしても動作に影響はありません。

次は、この2つのプラグインを複数位置情報対応にすることが目標ですが、どうやって対応するかが悩むところです。Google Maps プラグインの方は単純に複数の地図を出せばいいのですが、複数ある位置情報が近接している場合、表示させる地図をまとめて1つの地図にマーカーを複数打つ方が自然でしょう。

で、1つの地図にまとめられるかの判定が少し難しいのです。Google Maps の API を使うと、ある地点が地図の表示範囲内にあるかの判定ができますが、これは JavaScript コードのため、JavaScript のレベル (–閲覧者のブラウザ上) で、地図を1つにまとめるか複数表示するか決定しなければなりません。PHP 上で範囲判定できれば簡単なんですが……。また、1つの地図にまとめた場合、中央にマークする地点は最後の位置情報を使う方が自然でしょうが、最後の位置情報を使うという点で、コーディングが少し難しいと予想されます。

KtaiLoc2otenki の方も、すべての地点が近接していたり、お天気が同じならば問題ありませんが、離れている場合はどちらの地域を選択するべきか悩みます。wp-otenki が複数の地域に対応してくれたら、素直に複数の地域を書き出せばいいので楽ですが;-)

2月のカフェ玖伊屋予定

yuriko による 19:13:52 の投稿
カテゴリー: 2007年02月 生田神社豆撒きとカフェ玖伊屋,旅行の計画
タグ:

いよいよ週末金曜日に出発するカフェ玖伊屋への行程を考えてみます。予定変更に応じて、内容の追記・変更はあり得ますです。

2月2日(金)

(南武線某駅)  → 1805 尻手 (乗り越し160円、運賃400円)
1808 尻手     → 1810 八丁畷、普通浜川崎ゆき
1820 八丁畷   → 1827 蒲田、普通品川ゆき
| (南武線某駅)  → 1815 川崎、普通川崎ゆき (乗り越し160円)
| -- 徒歩 --
| 1823 川崎     → 1827 蒲田、普通品川ゆき (運賃400円)
1832 蒲田     → 1842 羽田空港、羽田空港ゆき
1925 HND      → 2035 ITM, JAL1529 (先得割引13150円)
2055 大阪空港 → 2058 蛍池、門真市ゆき (運賃200円)
2103 蛍池     → 2118 十三、普通梅田ゆき (運賃360円)
2123 十三     → 2149 三宮、特急新開地ゆき

2月3日(土)

午前中に USJ に移動して、ウェブで申し込みずみのスタジオ・ゴールド・パス発行。夕方京都に移動して吉田神社に寄るかも。19時ごろにはカフェ玖伊屋会場に到着予定。

2月4日(日)

朝のうちに神戸に移動。

1725 新神戸   → 2026 新横浜、ひかり382号 (エクスプレス早特11990円グリーン特典)
2035 新横浜   → 2037 菊名、普通東神奈川ゆき
2039 菊名     → 2046 武蔵小杉、特急渋谷ゆき
2054 武蔵小杉 → 2110 登戸、普通立川ゆき

しばられ松

yuriko(a) による 15:05:35 の投稿
カテゴリー: 地域情報
タグ: ,
070128_1454~0001.jpg 070128_1452~0001.jpg

川崎市宮前区にある珍バス停「しばられ松」です。
百日咳で死んだ僧を弔うために植えられた松です。

2007-01-27

高さも考慮した測位系変換

yuriko による 22:33:04 の投稿
カテゴリー: WordPressハック

Ktai Location で画像の EXIF 情報を読むとき、GPS の高さ情報が入っている可能性があります。この場合、測位系の変換をもっと厳密に行うことが可能になります。

そこで、Perl による実装をもとにコードを書いてみましたが、どうも計算が正しくありません。浮動小数演算なので多少誤差が出るとしても、ちょっと値が違いすぎるような気がします。コードが間違っているのか、これぐらいズレるのは仕方ないのか……。

Ktai_Location_Info Object
(
    [lat] => 35.347683982202
    [lon] => 138.58247402062
    [alt] => 738.10919202305
    [url] => 
    [geometory] => 
    [unit] => 
    [accuracy] => 
)
Bad Answer
Expects: Array
(
    [0] => 35.347690431944
    [1] => 138.58245525444
    [2] => 737.895217
)

[追記] どうやらコードに問題はなく誤差の範囲内のようです。数mぐらいの差ですから、目をつぶるしかないようで。「wp-mail.phpを改造して地図へのリンクを表示する」でも同様のコードがありました。

wp-mta で画像回転すると EXIF が落ちる

yuriko による 18:21:18 の投稿
カテゴリー: WordPressハック
タグ: ,

ここんところ「旅行記」じゃなくて「WordPress ハック日記」になってしまっています;-) 来週金曜日 (2月2日) から関西方面に行くので、何らかの旅行レポートができると思います。行程はそろそろ出します。

さて、わたしの利用している、モブログ投稿スクリプト wp-mta に画像回転をさせたとき不具合があることが分かりました。それは、「GPS 情報を付与した画像を回転させたとき、回転後の画像に EXIF が付与されない」ということです。この結果、Ktai Location で EXIF データーが読み取られず、位置情報がプロットできなくなります。

サムネールを作ったときも EXIF を書いていませんが、Ktai Location では a タグでリンクされてるオリジナル画像 (縮小前) を読むことで EXIF 情報を取り出しています。ですが、画像を回転したときはオリジナル画像 (回転前) はどこにも保存されていないので、こういう問題が起きてしまいます。

回転後の画像に EXIF データーを付与して保存すればいいんですが、PHP の画像関数でどうやっていいのか良く分かりません……。当面は「制限事項」として扱うことになりそうです。

で、こうやってバグ情報をウェブログで書くのはちょっと面倒な気がしてきました。スクリプト/プラグインの宣伝になっていいのですが、SourceForge のバグトラッキングシステムを使った方がいいかも。

2007-01-26

Ktai Location で DoComo GPS, SoftBank GPS 対応予定

yuriko による 17:09:45 の投稿
カテゴリー: WordPressハック

現在開発中の Ktai Location 0.9.0 ですが、DoCoMo GPS と SoftBank GPS の現在地メールの仕様がなんとなく分かったので実装してみます。また、0.8.0 での NAVITIME 対応はウソだったので、それも修正します。CVS へのコミットは今日中に行う予定です。(追記: バグ修正に手間取ってコミットは27日12:40ごろになりました)

ドコモ GPS は、技術資料および ネットで検索した結果、次のような URL を送出する模様です。測位系は、機種によって WGS84, tokyo の両方あるようです。

HTTP://docomo.ne.jp/cp/map.cgi?lat=%2B34.xx.xx.xxx&lon=%2B135.xx.xx.xxx&geo=wgs84&x-acc=3

SoftBank GPS は、機種によってゼンリンの提供する itsumoNavi または NAVITIME の地図 URL を送出するようで、どちらも技術資料 の HTML 編の通りらしいです。具体的には、次のような URL になります。

HTTP://mobile.its-mo.com/MapToLink/p2?pos=N35.xx.xx.xxxE139.xx.xx.xxx&geo=tokyo&x-acr=3

ここで、緯度・経度の度分秒表記で、秒の小数点部分が3ケタあることに気がつきました。現状の Ktai Location では、ここが2ケタであると決め打ちして百分率表記に変換しているため、1ケタや3ケタでは正しく変換されません。度分秒表記を百分率に変換する部分はわたしが wp-eznavi に貢献したコードのような気もします……。これも修正予定です。

2007-01-25
晴れ

Ktai Location 0.9.0 は CVS で

yuriko による 22:16:50 の投稿
カテゴリー: WordPressハック

現在、Ktai Location を複数の位置情報に対応すべく改良中ですが、作成中のコードを CVS リボジトリーに置いてみました。実は CVS 初体験です;-)

実は、Lightweight Google MapsKtaiLoc2otenki は、Lat_Long フィールドが複数あっても最初のものを読み取るように作ってあるので、Ktai Location ver 0.9.0 と併用可能です。

正直なところ、複数の位置情報があっても地図プラグインが対応していない限り意味がありませんが、ver 0.8.0 は PHP4 では warning が出るようなので、0.9.0 を試してみる価値はあるかもしれません。

wp-eznavi / Ktai Location で複数位置情報の不具合

yuriko による 13:09:20 の投稿
カテゴリー: WordPressハック

Ktai Location で複数の位置情報を扱えるように修正中ですが、そのとき、(前身の) wp-eznavi および Ktai Location に不具合があることが分かりました。

ドキュメントには「位置情報 URL が複数ある場合は最初の URL が有効です。」と書いてありますが、これが間違っていました。正しくは「(1) EZ ナビウォーク/(2) NAVITIME/(3)iMapFan/(4)Mapion/(5)ゼンリンの優先順位で有効になります。同じサービスの URL が複数ある場合は先に記述されているものが有効です。」となります。Ktai Location のウェブサイトは修正ずみです。

ドキュメントとコードに相違があるのはバグとも言えます。しかし、もともと複数の位置情報 URL がある状態は配慮してなかったので、コードの問題というには弊害があります。「複数の位置情報 URL があれば最初のが有効になるはず」と予想して説明したことが問題という解釈も可能でしょう。なので、ドキュメントを修正するだけで OK としておきます;-)

この問題は、複数の位置情報を扱う Ktai Location 0.9.0 にて対応いたします。こちらは、複数の URL があることを考慮してあるので問題ないように作る予定です。

各記事にミニサイズの Google Maps を出せるプラグイン Lightweight Google Maps 0.8.0

yuriko による 00:41:42 の投稿
カテゴリー: WordPressハック

各記事にミニサイズの Google Maps が出せる改造をした Lightweight Google Map プラグイン 0.8.0 を配布します。Map View ボタン画像を作り変えようと思いましたが、とりあえず、当サイトの現状況である「テキストリンク」の状態で配布してしまいます;-)

配布ページ
WordPress Plugins/JSeries » Lightweight Google Maps

なお、バージョン 0.7.0 から 0.8.0 にアップグレードする場合もテンプレートの修正が必要なので注意してくらはい。今後はテンプレートの修正は不要になると思います。