2010年12月18日土曜日

Bit Map 3.3

Bit Mapが3.3にアップデートされました。High Resolutionの場合の不具合は修正されました。
描画の遅いこと(iOSの不具合のようです)以外はすべて修正されたように思います。
地図は基本的にはoziExplorerの変換ツールでpng,jpg,bmp等をozf2に変換するように
なりましたが、以前の地図も転送可能です。(その際にはiPhone側で再変換されるので時間はかかります。)

2010年12月9日木曜日

Bit Map 3.2 (2)

昨日、デベロッパーから自分の送ったテストケースで不具合が再現できたと連絡がありました。
とりあえず、iPhone 4での地図データが正しく表示されない不具合は直してくれるそうです。
ただ、version 3.0から表示が遅くなった問題はデベロッパーに認識されていますが、解決にはもう少し時間がかかるそうです。
幸いにも今はオフシーズン(自分は冬山登山しないので)なのでオンシーズンまでに修正して
貰えればいいと思いっています。
表示スピード以外の不具合は次のバージョンで直してくれるそうです。

2010年12月5日日曜日

Bit Map 3.2

先週末にBit Mapが3.2に上がりました。
使用してみましたが、High resolution modeで使用しない場合はほぼ問題なく(地図の読み込み速度が遅いこと以外)使えそうです。
それでもまだ、High resolution mode (iPhone 4 mode)では分割した地図が4分の1の領域しか読み込まれないことが確認されました。しばらくはLow resolutionで使用するしかなさそうです。
地図の読み込む速度は相変わらず遅く、スクロールさせた場合には表示にかなり時間を要します。

2010年11月27日土曜日

Bit Map 3.1 (2)

Bit Map 3.2においてかなり改善がなされるようです。期待しています。

話は変わりますが、普段のトレーニングのWalkingデータはKineticというアプリを試用していますが、
今週はアメリカがThanksgivingsということでアプリのSaleがあり、Biky coachというアプリを購入しました。
これが結構いいです。KineticはUIがかなりいいのでそこの部分はそちらの方がいいと思いますが、
音声による現状(走行距離や速度など)の確認項目はこちらの方が多くなっています。
とりあえず、しばらくは両アプリを使用していみます。

2010年11月22日月曜日

Bit Map 3.1 (2)

Bit Map3.1を実際に長時間使用してみました。バックグラウンドでの動作も問題なく動作していました。
ただ、地図のスクロールが細かくされたタイルで読み込みながら行われるので、
素早いスクロールに読み込みがついて来てくれません。


リリースノートでは最適化とありますが、地図を閲覧するには時間がかかりすぎな気がして残念です。
実際に現在地を表示させるだけなら、スクロール速度はそれ程いらないので問題にならないとは思いますが、
目的地までどんな感じか確認したい時もあるのでversion2.5の方がまだ使いやすい気がします。

2010年11月15日月曜日

Bit Map 3.1

3.1に上がってiPhone 4を使用した場合のいくつかの不具合が直っていました。それでも、まだ、大きなサイズの地図の場合には一部しか読み込まれないことがあるようなので再度問い合わせ中です。oziExplorer用の地図フォーマットになって良くなったかいまいち実感がありませんが、iPhoneへ地図の転送後の処理時間は大幅に短くなっています。それでもまだ、2.5の方が使いやすい気がします。とはいえ、バックグラウンドでの動作は3.0からでこれは非常に良い機能です。

2010年10月30日土曜日

Bit Map 3.0

昨日、Bit Mapが3.0に上がったので早速更新してみましたが、地図のインストールがうまくいきません。タイリングに失敗して分割された地図がうまくつながりません。一応メールで確認していますが、しばらくは元に戻す事になりそうです。

2010年10月23日土曜日

iPhoneと山岳地図(Bit Map) (4)


JAVAでカシミール3DのマップカッタープラグインでGarmapCEの地図をBit Mapの形式に変換(とは言っても単にファイル名をリネームしてzipでまとめるだけ)のプログラムをPerlから移行しました。

Map_convert.zip (JAVAなので実行するにはPCにJAVAがインストールされている必要があります)

Map_convert.zipというファイル名なのでこれを解凍します。


拡張子jarがJAVAと関連付けされていればMap_convert.jarをマウスでダブルクリックして起動することができます。また、map_convert.batというファイルを実行することでもプログラムを起動することができます。コマンドプロンプトでjava -jar Map_convert.jarと入力することで起動することもできます。
ここでJAVAはバージョン6以降が必要です。 (http://www.java.com/ja/download/)

起動するとGUIが立ち上がります。


カシミール3Dのマップカッタープラグインで作成したファイル(mapinfo.dat)を入力ファイルとして指定します。(Files -> 入力ファイルの設定)



上記のように問題なく読み込まれると入力ファイル名が表示されます。
次に出力ディレクトリ名(フォルダ名)を指定します。((Files -> 出力ディレクトリの設定)
この例ではtestとしていますが、フォルダ名は地図名にもなりますので意味のある名前にしたほうがいいです。(下記の例では新規にフォルダを作成しています。) このフォルダは空である必要があります。空ではない場合には変換できません。




出力ディレクトリ名(フォルダ名)の指定がされると出力ファイル名が表示されます。



あとは変換を行ないます。(Tools -> 変換実行)



変換が終わると<出力ディレクトリ名(フォルダ名)>.zipというファイルが出来ます。
このファイルをBit Mapに転送すればBit Mapの地図として使用できます。過去の記事







2010年10月17日日曜日

iPhoneと山岳地図(Bit Map) (3)

以前にカシミール3Dからマップカッタープラグイン経由でBit Mapの地図データを作成する方法を
メモしましたが、その時はPerl(WindowsなのでActive Perl) を使用していました。
Perl自身GUIとはあまり相性が良くないので、今回はJAVAでGUIに起こしてみました。
昔と違って、JAVAはほとんどのPCでインストールされているので簡単に起動できると思います。
コーディングの方は地図ファイルをZIPにする部分だけまだ未完成ですが、一応GUIで変換できるようになっています。
Bit Map自身、次のバージョンから地図ファイルのフォーマットが変わるそうなのでこのプログラム自身
大して有用ではないとは思いますが・・・

2010年10月16日土曜日

GPSデータロギング(2)

登山のための鍛錬としてWalkingを始めています。最寄の駅からひと駅手前から降りて歩くことを始めましたが、
田舎のため30分近くいつもより時間がかかるようになりました。
早歩きに心がけていますが、Walking中はペースがよくわかりません。
iPhoneのアプリでナビゲーションのカテゴリでアプリを探していましたが、
健康&フィットネスのカテゴリで探すと色々とGPSロガーになるアプリが見つかりました。
とりあえず、無料で試せるWalk Tracker Freeというアプリを使用してみました。
これもBit Mapと同様に英語ですが、使いこなすにはPCとの連携が必要なので
英語力が必要そうです。(自分には無理)
それでも単体で使用する際にはペースに応じて音声(これも英語だけど)で
現状を教えてくれるので長時間のWalkingには便利でした。
一応ロギングもPC経由でKMLに出来ました。

でも本命はWalkmeter GPS(有料)かな。これは単体でほとんど完結できそう。

2010年10月14日木曜日

GPSデータロギング

普段(登山やMTBツーリングの時)はGPSでのデータロギングは専用機(WSG-1000)を使用していますが、
最近Walkingにはまっているので普段持ち歩いているiPhoneでもロギングしてみたくなりました。
調べ方が悪いとは思いますが、iPhoneのアプリでWSG-1000の機能の
- GPSの測位の失敗時のフィルタリング
- バックグラウンド(?)でのロギング
- ロギングデータのグラフ化(高度、速度など)
を満たすアプリが意外と少ない気がしました。
「同じ機能では」と欲が出てしまったのでなかなか購入まで行っていません。
とりあえず、MotionX GPS Liteを試用していますが、
ロギングデータのグラフ化ができないのでいいアプリを引き続き探しています。

2010年9月29日水曜日

iPhoneと山岳地図(Bit Map) (2)

少しだけ地図の作り方のまとめ。

カシミール3Dを立ち上げて地図を開いてiPhoneに転送したい地図の領域を選びます。
ここで、地図の縮尺は領域を指定しやすいもの(多分広範囲を転送したい場合は
ひとつ大きな縮尺となるかもしれません)で問題ありません。




次にマウスで領域を作ります





次にマウスカッターを起動します。





実際に地図を切り出します。
私の場合はPNGでGarmapCEにて切りだしています。
下記の例ではD:\testに出力しています。





D:\testのディレクトリは下記のようになります。






私の場合は変換スクリプト(make_maps.pl) をここにコピーします。







そしてmake_maps.plをダブルクリックして実行させます。





上図のようにmap_filesというディレクトリに転送用の地図ファイルが出来ます。
ここディレクトリ名は転送後の地図名となりますので地図名にしたい名前に変更します。
下記の例では"test_mapとしています。







最後にディレクトリごと圧縮ツールにてzipファイルにします。



あとはiPhone側で地図転送モードににしてこのzipファイルをPCから転送します。





転送がうまくいくと下図のようにtest_mapがリストに現れます。




転送したあとの地図はタップすることですぐに見られます。



こんな感じでカシミール3Dから山岳地図がiPhoneに転送できます。


話は変わってカシミール3DのwaypointもKMLに変換することでBit Mapに転送できます。
下図は山のデータを転送しました。





waypointは検索ができるので山名を探すことができます。



もともと、5段階にズームができるので上図はズームしています。

なお、使用していますperl scriptですがこんな感じです。

#!/usr/local/bin/perl -w

use File::Copy;

$file_name = "mapinfo.dat";

open(INPUT,$file_name);
$line_num=1;
while($buffer=<INPUT>){
chomp($buffer);
if ($line_num==4) {
$width_num=$buffer;
} elsif ($line_num==5) {
$height_num=$buffer;
} elsif ($line_num==6) {
$top_lon=$buffer;
} elsif ($line_num==7) {
$left_lat=$buffer;
} elsif ($line_num==8) {
$bottom_lon=$buffer;
} elsif ($line_num==9) {
$right_lat=$buffer;
}
$line_num++;
}
close(INPUT);

for ($k=0; $k < $width_num ; $k++ ) {
$diff_lat = ($right_lat - $left_lat)/$width_num;
$left_lat_elem[$k]= $left_lat + $diff_lat * $k;
}
$left_lat_elem[$width_num] = $right_lat;

for ($k=0; $k < $height_num ; $k++ ) {
$diff_lon = ($top_lon - $bottom_lon)/$height_num;
$top_lon_elem[$k]= $top_lon - $diff_lon * $k;
}
$top_lon_elem[$height_num] = $bottom_lon; 

@org_file_names = glob("*.png");

$file_count = @org_file_names;

if ($file_count != $width_num * $height_num) {
print "Maps file number is incorrect\n";
print "Please check maps file name\n";
exit;
}
$file_count = 0;

$map_dir = "./map_files";
if(!-d $map_dir) {
mkdir ($map_dir);
}
chdir $map_dir;

for ($k=0; $k < $height_num; $k++) {
for ($i=0; $i < $width_num; $i++) {
$file_name = sprintf ("latlon WSG84 %3.5f %2.5f %3.5f %2.5f.png",$left_lat_elem[$i],$top_lon_elem[$k+1],$left_lat_elem[$i+1],$top_lon_elem[$k]);
$org_file_name = "$file_count" . ".png ";
print "$file_count" . ".png " . $file_name . "\n";
copy("../$org_file_name",".");
rename("$org_file_name","$file_name");
$file_count++;
}
}

chdir "..";



Active Perl (http://www.forest.impress.co.jp/lib/stdy/program/progdevenv/activeperl.html)を導入していれば上記スクリプトをmake_maps.plとして保存することでmap fileの変換ができるかと思います。(万が一上記スクリプトを使用される場合にはスクリプトはファイル名のリネームが伴いますのでオリジナルのmapファイルのバックアップをお願いします。当方では問題は発生していませんが)

2010年9月28日火曜日

iPhoneと山岳地図(Bit Map)

ちょっと調子に乗ってかなり広い範囲の地図をBit Mapに入れてみました。


地図の縮尺の拡大縮小中にも地図の切り替えは自動で行われますので
これだけ入れるとかなり地図の切り替えに引っ掛かりがありました。
Japanの地図で121tilesですが、



kita_alps_6kでは2304tilesになってしまっています。



現在、カシミールのマップカッターからBit Mapの地図への変換はperlを使用していますが、
今、gui (Java)に変換中しています。もう少し、変換を楽にしようとしています。

2010年9月26日日曜日

登山とiPhone (2)

Bit Mapによる山岳地図ですが約500に分けた地図も
今のところiPhoneへ転送時につなげてくれているようですが、
座標も含めてうまくつなげているか確認してみました。
Google Earthで利用可能なKMLファイルを転送できるので
転送して読み込ませてみました。






若干ずれているようにも見えますが、許容範囲内と思いました。

2010年9月25日土曜日

登山とiPhone

最近、Windows MobileからiPhoneに乗り換えたのですが、iPhoneだと山岳(地形)地図を扱うアプリが少ないようです。
そもそもオフラインで使用できるアプリはほとんどカーナビ関連のアプリの気がしています。
それでもなんとか見つけたのがBit Map(http://nixanz.com/)というアプリ(有料ですが)。
画像ファイルと緯度経度情報があればGPSで現在地やトラッキングが可能になるというもの。
画像ファイルの名前にて緯度経度情報を判断できるので比較的簡単にカシミール3Dから
マップカッタープラグインにて切り出した地図が活用できました。(自分はperlスクリプトを使用)
開発元ではOziExplorerを推奨していましたが、それを使用したことがないのでカシミール3Dから地図を作成しました。
分割した画像ファイルもうまく扱ってくれていますし、オフラインで使用できます。

スナップショットはこんな感じです。

PCから地図ファイルをアップロード中。
    - WiFiで行っていますが、認識率が良くないようでつながらないこともありました。
          iPhoneからSafariでWiFiを使用直後だとつながるように感じましたが、気のせいかも。
          あと、ファイルパスに日本語があるとアップロードに失敗します。



地図のデータが大きいと結構時間がかかりました。(100MBで15分ぐらい、500MBだと30分は超えました。)




転送後(転送自体にはそれ程時間はかかりません)にアプリでデータの再構築が行われているようで、
もともと分割していおいた地図データは転送後に再分割されているようです。



実際に、GPSでのTrackingはまだですが、地図はうまく転送できているようです。
都市部の地図ではうまく現在地を示していました。
GPSアプリとしては機能面(速度、高度の記録等)は足りない(自分はGPSのロガーは専用機を使用していますので
ロガーとしての昨日はこれに求めていません)とは思いますが、カシミール3Dの地図が
活用できるのでしばらく山岳での現在地確認にはこのアプリを使用していくつもりです。

手持ちのWindows Mobileは電子コンパス機能がなく方位が測定できませんが、
iPhoneはできるのでやっとこれで一台で賄えそうです。(まだ実績なしですが)

ちなみに山岳データを表示している例です。




一応都市部を試してみました。