トップ地図アプリMapX > 地図アプリMapX タイル画像レンダリング

地図アプリMapX タイル画像レンダリング

タイル画像レンダリング

OpenStreetMapはレンダリングによりタイル画像を生成する。 少なくとも当面は、アプリMapと同じフォーマットのデータを使う。

陸地レンダリング

海岸線データも OSM に含まれるが、予め、このデータだけを抽出しておき、最初にレンダリングを行う。

文字の見栄えは実機よりやや劣るが、デバッグとしては全く問題がない。

ポップアップ表示のバス停時刻表のエミュレータでの見栄えは悪いが、これもデバッグとしては問題がない。

OSMレンダリング

ほとんどトラブルはなかった。

レンダリングとは関係ないが、ツールバーの項目を一つ増やした。地図の切り替えはレイヤアイコン下に置いた。

☆アイコン(お気に入りアイコン)には、日ごろよく見る特定のバス時刻表などを置くことにした。 バス時刻表は該当バス停のアイコンをタップするとポップアップするが、よく参照するバス停に関しては メニューからもポップアップするようにした。

プログラム開発記録

2023.7.3 バス時刻表の表示でエミュレータでは現在時刻が反映されていない

Android 9 と 12 の違いであろうか? 基本的な事項なので、差はないのではなかろうか。

表示の基準時間は次のようにして算出している。

   LocalDateTime now_10 = LocalDateTime.now().minusMinutes(10);  // 10分前
   int hour = now_10.getHour();

時間に間違いはないが、その後エラーが出ていた。


まだ、別のエラーはあるが、現在時刻は反映されるようになった。 ひょっとしたら、時間帯が関係しているかも知れない。

Android Studio付属のエミュレータをインストールしてみたが、8GBパソコンではメモリ不足で動かない。

モバイルPCにインストールした Android x86 に接続を試みたが、Android x86 からの応答が得られなかった。

エラーメッセージはあっても、動作するならばよしとする。

Nox Player を試してもよい。LDPlayerと同様ではあるが、データファイルのコピーが面倒である。

 E/EGL_adreno: tid 7077: eglSurfaceAttrib(1338): error 0x3009 (EGL_BAD_MATCH)

おそらく、次の scrollTo が Android 9 ではサポートされていないのであろうか。

    public void scrollTo(int y) {
        Handler h = new Handler();
        h.postDelayed(() -> scrollView.scrollTo(0, y), 100); // 100 ms delay
    }

2023.7.2 遊水池のハッチングがない

葉っぱアイコンもない。Androidバージョンによるのか、それとも、アイコン読み込みエラーか。

パターンデータの初期化が漏れていた。

2023.7.1 起動時エラー

起動時に次のエラーが出る。初期化が終わらない内に表示しているのだろうか?

D/dl error: java.io.FileNotFoundException: nulltiles/gsi/7/113/50.jpg (No such file or directory)
    https://cyberjapandata.gsi.go.jp/xyz/std/7/113/50.png

実機かエミュレータかの判定は Build.MANUFACTURE に変更した。

リファレンス

[1] [Android] スクリーンサイズを取得する