スマホのAndroid端末で現在地の土質と地質を簡単に知ることが出来ないか?
とAndroidアプリの開発に挑戦してみた。
Go MobileでAndroidアプリの実行までを見てみる
最初はGo Mobileで開発しようとしたけれども、Go Mobileはアニメーションが主体で、ボタンを設置するという簡単なアプリには今のところ不向きということで、HTML5のService WorkerとIndexed Databaseを組み合わせて、オフラインでも動作するWebアプリにしてみた。
今回のアプリは現在開発中のロガーの機能を部分的に公開という意味合いで、正式版は非公開の予定です。
現時点ではAndroidのChromeのみ動作確認済み
現在位置を取得をクリックすると、JavaScriptのGeolocation APIでGPSの緯度経度情報を取得し、IndexedDBでChromeブラウザ内に緯度経度情報を保管する。
Geolocation API - Web API インターフェイス | MDN
IndexedDB - Web API インターフェイス | MDN
Service Worker APIで初回実行時にオフラインで実行できるように、WebアプリがChromeにインストールされる。
サービスワーカー API - Web API インターフェイス | MDN
インターネットに接続できる環境であれば、取得した緯度経度情報から
農研機構の日本土壌インベントリー
産総研の20万分の1日本シームレス地質図の三種類のリンクが出力され、自身がいまいる場所の地形図、土質や地質がすぐに確認できるようになる。
今回紹介したアプリに興味があれば、下記のバナーをクリックすると使用することが出来ます。
※くどいですが、Android機のChromeのみ対応
当アプリに関して、機能追加の要望や不具合の報告は受け付けていないので、使用は自己責任でお願いします。
ログの保持件数は10件です。
開発にあたって、Service Workerでオフラインでも使用できるようにしたが、何度か緯度経度情報を取得すると同じ個所の情報ばかり取得するようになる。
これはService WorkerかGeolocation APIの仕様だろうか?
それともChromeのキャッシュの持ち方に問題があるのだろうか?
緯度経度情報の取得周りを調べる必要がある。
追記
Githubでリポジトリを公開しています。
https://github.com/inunosinsi/soil_geo_laglng