OSQZSS

オープンソース準天頂衛星(QZSS)受信機

RtkGpsとOpenStreetMap

2014-05-09 00:15:38 | Android
エミュレータ上で測位が確認できたRtkGpsですが,メニューからMapを開いてみると
ただの方眼紙が表示されて,地図は空っぽです.

 (クリックで拡大)

Map表示には,デフォルトでAndroid版のOpenStreetMapライブラリであるosmdroidを
使っているようです.

osmdroid: OpenStreetMap-Tools for Android

確かにlibsフォルダの中にそれらしいライブラリがあります.

エミュレータで地図を表示させようとしたときのLogCatのメッセージを見ると,
Problem downloading MapTileという警告が出ています.

osmdroid関連の問題だろうと検索してみると,stackoverflowでこんなスレッドを発見.

Osmdroid and Mapnik tile provider no longer working
Downloading maptile: /0/0/0 HTTP response: HTTP/1.1 403 Forbidden

そこで,まずはsrc/ru0xdc/rtkgps/MapFragment.javaのTile SourceをMAPNIKから
MAPQUESTOSMに変更してみました.

 (クリックで拡大)

しかし,これで警告は消えるのですが,地図はあいかわらず空っぽのままです.

半分あきらめてosmdroidのソースコードを眺めていたのですが,MapTileの保存先に
外部メモリが指定されていることに気づきました.

osmdroid-android/src/main/java/org/osmdroid/tileprovider/constants/OpenStreetMapTileProviderConstants.java

/** Base path for osmdroid files. Zip files are in this folder. */
public static final File OSMDROID_PATH = new File(Environment.getExternalStorageDirectory(), "osmdroid");


そう言えば,osmdroidのwikiにも,エミュレータの設定でSDカードの容量を指定するように
書いてあったような.

osmdroid wiki: How to compile and run using Eclipse

SDカードスロットのないNexus 7をターゲットにしていたので無視していたのですが,
wikiの指示通りに設定したところ,無事に地図が表示されました.RTFM

 (クリックで拡大)

測位結果が赤色なので,隣にpegmanが立っていると,殺人現場みたいですね…

さて,これでソースコードから一通りの機能がビルドできようになりました.
次は実機にbluetooth経由でubloxのrawデータを接続しよう.

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする