- androidスマホを送迎バスで起動させて、現在地情報をサーバーに送る(androidアプリ)
- サーバーで現在地情報を保存、更新
- ホームページでサーバーにある最新の現在地情報をgooglemapに表示
それでもいいですが、プログラミングは未経験とのことですし、単に現在位置がわかればいいわけですから、もっとシンプルな構成をおすすめします。(2)を、PHPとPostgreSQLやMySQL(MariaDB)などのデータベースで実現する代わりに、既存のウェブサービス Google Docsのスプレッドシートで実現してはいかがでしょうか?
Google スプレッドシートは、Excelに似たスプレッドシートを、ウェブブラウザーで作成できるウェブサービスです。が、これにはウェブ APIというものが用意されており、(1)のAndroidアプリからスプレッドシートにデータ(現在時刻と位置情報)を追加したり、(3)でAndroidやiOS端末のウェブブラウザーにダウンロードされたJavaScriptスクリプトから読みだしたり、といったことができます。
この方法なら、(3)のホームページ上の送迎バス現在値表示ページのHTMLは、静的なもの(内容が固定のもの)でよくなるので、すでにお使いのホームページを置いているサーバーに、このHTMLも置けそうです。つまり、新たに、PHPとデータベースをホスティングするためのサーバーを探さなくて済みますし、PHPやデータベースについて学ぶ必要もなくなります。
また、Googleスプレッドシートは、クライアントの認証に対応しているので、(1)は書き込みの権限をもったアカウントで行い、(3)は読み出し専用の権限を持ったアカウントで行えば、セキュリティの面でも安心でしょう。
技術面で一点だけ確認が必要なのは、(3)でJavaScriptのスクリプトがGoogle Docsにアクセスする時に、クロスサイトスクリプティングの制限を解除できるかということです。これはどういうことかというと、このシステムでは、JavaScriptのスクリプトは既存のウェブサーバーからダウンロードされますが、そのスクリプトが、Google Docsという別のサイトにアクセスします。すると、ウェブブラウザーがその「別のサイトへのアクセス」を拒否する仕組みになっているのです。(正確には Google Docsから戻ってきたレスポンスを、ウェブブラウザーが破棄します) クロスサイトスクリプティングという、よくある攻撃からユーザーを守るために、このような仕組みになっています。
この制限を解除するには、サーバー側(多分、Google Docs側)に、CORSという設定が必要になります。恐らくGoogle DocsのAPIのドキュメントのどこかに、そのやり方が書いてあると思います。
もし、この技術的な点がクリアーされたなら、Googleスプレッドシートを以下のように使えばいいと思います。
(1)のAndroidアプリ:
- 現在の日時と位置情報を取得
- 1で取得した情報を、Gooleスプレッドシートの1行目に挿入する。
- Gooleスプレッドシートの2行目(前回の位置情報)を削除する。
- 一定時間休む(例:1分間)
- 1に戻って繰り返す。
(3)のAndroidやiOS端末:
- ウェブブラウザーで、送迎バス現在値表示ページを開く。→ HTMLとJavaScriptのスクリプトがダウンロードされる
- JavaScriptのスクリプトが、Googleスプレッドシートの1行目の情報を読み込む
- JavaScriptのスクリプトが、Googleマップにアクセスし、周辺の地図を、送迎バスの現在位置と共に表示する
- 一定時間休む(例:30秒間)
- 2に戻って繰り返す。
まあ、私もこのようなシステムを作ったことはないので、これらの情報は、大体こんな感じでできるだろう、という感覚で書いてます。実際にやってみると、ディテールは変わるかもしれません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/07 18:53
2016/02/07 19:03
2016/02/08 11:34
2016/02/08 11:42
2016/02/08 11:57
2016/02/08 19:14
2016/02/09 00:49 編集