カシミール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ファイルのバックアップをお願いします。当方では問題は発生していませんが)