y2blog » iPhoneでGPSナビ #12: 可変長タイル画像表示(その2)

1

26

2012

iPhoneでGPSナビ #12: 可変長タイル画像表示(その2)

電子国土基盤地図情報の背景地図でタイリングのテスト


3種類の解像度のタイリング画像で画像のスムーズな拡大縮小ができるようになったので、本番用の基盤地図情報の背景地図を用いて動作検証を行ってみた.


計画では地図をダウンロード(キャッシング)する際に、iPhoneのスクリーンに地図を表示し、矩形の選択フレームで地図をダウンロードする範囲を決める予定であるが、今回はまだ実装できていないので、perl等を用いて簡単な地図ダウンロード用のスクリプトを作り、特定の範囲の地図を予め一括ダウンロードしておいた.


国土地理院からダウンロード可能な地図は、2500レベルの基盤地図情報から日本全図まで16レベルの地図が用意されているが、今回は4500〜1800レベルの3種類の地図を用いて検証を行った.


4500レベル基盤地図情報  15秒間隔

9000レベル基盤地図情報  30秒間隔

18000レベル基盤地図情報  60秒(1分)間隔

Map Level 18000
18000レベルの地図(scale=1.0)
Map 18000_50
18000レベルの地図を縮小表示(scale=0.5)

Map Level 9000
9000レベルの地図(scale=1.0)
Map Level 4500
4500レベルの地図(scale=1.0)

一つのレベルの地図は50%〜200%までの範囲で連続的にズームする.50%より縮小すると一段階下のレベルの画像に切り替わる.同様に拡大率が200%に達すると一段上のレベルの画像に切り替わる.画像の切り替わりは良く注意してみないと気付かないくらいスムーズに切り替わる.

このアプリをCoreLocation Manager と組み合わせると、GPSの位置情報に基づいて居場所を国土基盤地図上に表示することができる.緯度・経度の情報を地図の解像度 [degree/pixel] 情報からピクセル数に換算し、地図の基準点からのオフセットを求め、ビューポートを移動させることにより指定した位置を画面中央に表示することができる.
iOSシミュレータの “Debug” メニューの”Location” から、”Custom Location…” に野毛山動物園の三等三角点(TR35339143901)の緯度(35°26′45.19″ :35.445886)経度(139°37′24.94″:139.623596)を設定してみると、野毛山の三角点がきちんと画面中央に表示されていることが確認できる.

Nogeyama TriPod
野毛山三角点の場所を指定して正しく地図が表示されることを確認

簡単なダウンロードスクリプトを走らせて地図データをダウンロード


Map Stored Directory
ダウンロードした背景地図データを解像度別にフォルダに格納する

ダウンロードした背景地図には緯度・経度情報がファイル名に付加されているが、このままでは地図情報を管理することができないので、とりあえず地図の範囲(緯度・経度)や解像度(ズームレベル)、タイルのサイズ、行列数などの情報をPlist形式のデータとして用意しておく.


本番では地図情報の管理はデータベースで管理するように変更する予定だが、現時点ではplistファイルに次の様な情報を格納している.

Map Plist
地図データを管理するための情報をPlist形式のファイルに記録しておく

Local Search

Calendar

July 2018
S M T W T F S
« Jun    
1234567
891011121314
15161718192021
22232425262728
293031  
  • Blogroll

  • Meta