やりたいことはiphoneのgoogle mapのアプリと同じことを、スマートフォン向けのブラウザで実行させたいです。
つまり、
ブラウザを開いている間
→ GPS情報を定期時間ごとに送信
→ 現在地をgoogle mapで表示
→ AJAXで画面の更新を連続させる。
※今回開発するものには独自の機能を追加する予定です。
全体的なイメージ・開発方法が沸かなくて困ってます。
開発環境など
・言語・その他 : php、ajax、googlemap、cakephpを使うかも
・UI : jqueryや、cakephpの機能とajaxヘルパーなど。
・GPS : cakephpのプラグインを使用したいです。Geomobilejp、GeoSimpleなどがあるようです。pearのGPSプラグインもあるようですが。
・地図 : google map、あとから周辺情報の表示などをしたいです。
なにか良いアイデアがあれば教えて下さい。お願いします。
コメント欄が開いていないので回答欄にて失礼します。
以下の項目が分からないので確認をお願いします。
サーバ・サイドはPHP+CakePHPで開発するのでよいと思います。
「一定時間ごとに現在位置を自動更新する」の機能内容がよく分かりませんが、単純に記録を取っていくだけならテキストファイルまたはXMLファイルをサーバに記録する形で十分でしょう。
頻繁に検索するのであればDB(MySQL, SQLiteなど)を利用するのがいいでしょう。
クライアント・サイドは、iPhoneアプリとAndroidアプリとでは開発環境が全く異なります。
iPhoneアプリを開発するには、iOS SDKとMacOS X環境が必要です。Objective-Cの開発経験がある方なら、比較的簡単に入っていけます。
Androidアプリを開発するには、Android SDKとJava開発環境が必要です。開発OSには依存しません。
ご回答ありがとうございます
機種に依存しない画面を開発したいので、ios sdkなどの使用は考えていません。
クライアントサイドはHTML+javascriptです。jqueryなどのライブラリもありますし。
GPSをブラウザにて自動更新したいですが、一定時間ごとと言うか、現在地をリアルタイム更新したいです。
良い案があれば知りたいです。
プログラムが素人とのことなのでしょうがいないのかもしれませんが、いまいちやりたいことが見えてきません。Galapagosさんがおっしゃるようにまずはコメントを開けた方がよいかと思います。
よく分からないので想像の部分が多いですが、次のようなものかと想定しています。
・スマートフォンのブラウザから、開発したサイトにアクセスする。
・そのサイトの内容にはGoogle Mapのコンテンツが含まれており、スマートフォンのGPS情報をもとに、Google Mapの内容が更新される。
・また、Google Mapの内容が更新されるだけでなく、サーバ側にGPSログを残すなり、位置情報をもとにした付加情報を表示するなり、Google Mapで提供されないそのサイト独自の機能が実行される。
質問文やこれまでのやりとりを見ていると、3の部分が全く見えてこないので必要ですらないように思えてしまいます。なお、やりとりを見ていると会員管理のような機能をもったサイトのようですが、本筋とは離れるので省略しています。
さて、上記のことを実現するうえで問題となると思われることは、
1.スマートフォンのブラウザでGPS情報をどのようにして取得するか?
2.取得したGPS情報をもとにGoogle Mapをどのように更新するか?
3.サイト独自の機能をどのように実現するか?
あたりでしょうか。
1に関しては大きく分けて2つあるようです。
1つはHTML5のGeolocation APIを利用する手法です。以下のサイトなどで紹介されています。
http://kray.jp/blog/geolocation_1/
http://mtl.recruit.co.jp/blog/2010/05/html5_geolocation_api.html
もう一つはちょっと古い情報ですが、一つはGoogle Gears経由で取得する方法です。
http://creco.net/2009/06/11/google_maps_api_v3_with_gears_geoloc...
が参考になるかと思います。
2に関しては、1でどちらの手法を選んだにせよ、緯度経度が取得できます。これをもとにGoogle Maps JavaScript API V3を利用して操作すればよいでしょう。
http://code.google.com/intl/ja/apis/maps/documentation/javascrip...
このチュートリアルなんかを見れば色々なサンプルがあるので、参考になるかと思います。
で、問題は3です。
何をしたいのかが分からないので想像ですが、これは2の制御と別に行ってよいのではないかと思います。つまり、Google Mapの更新はGoogle MapのAPIを使って更新し、サイト独自の機能は別途処理するということです。
例えばですが、現在地の地図と現在地周辺のお店情報を表示し続けるようなサイトにしたいのであれば、開発したサイトにログインしたページでは、
JavaScriptでタイマーを使って一定時間ごとに現在地を取得します。
次に、取得した位置情報をもとにGoogle Map APIを利用して地図を更新します。
最後に、位置情報をパラメタとして渡すと周辺のお店情報を含むHTMLの断片を返す機能をサイトに用意しておき、Ajaxを使って書き換える。
というような流れになるかと思います。
とはいえ、やはりプログラム素人ということで、基本的なWebの仕組みの知識が覚束ない部分があるような気もするので、基本を押さえてほしいところではあります。
ただ、仕事でやらなければならないなら、悠長なことは言っていられないでしょうから、あげたようなサイトを参考にして、
1.一定時間ごとにalertを出すページを作る
2.アクセスした時点の位置情報を表示するページを作る
3.一定時間ごとに位置情報をalertで表示するページを作る
4.HTML中(JavaScriptソース中)にハードコードした座標のGoogle Mapを表示するページを作る
5.HTML中(JavaScriptソース中)にハードコードした座標列をもとに一定時間ごとにGoogle Mapの表示を変えるページを作る
6.一定時間ごとに現在地のGoogle Mapを表示するページを作る
と少しずつ機能を足していってはどうでしょうか。
この6までくれば、サイト独自の機能以外の要件を満たせるはずですし、そんなに面倒じゃないと思います。すべてのブラウザをサポートするのは結構面倒かもしれませんが。
そして、ここまでJavaScriptが書ければ、Ajaxの基本的な何かを参考にすれば、独自の機能もサポートできるようになるのではないでしょうか。
何かの参考になれば。
ご回答ありがとうございます
回答者様のおっしゃるとおりのことをしたいです
geolocation apiにて現在地を取得し続けられるようです
alertを使う理由はわからないですけど、まずはgooglemapを更新し続ける方法をご回答者様のおっしゃられるとおりに進めてみたいと思います
一定時間ごとに非同期更新してみます
サイト独自の機能は別に考えてみます
スマートフォンはAndroidとiphoneなどが主です。機種によっては画面のサイズは異なると思いますが。
cakephpを使用する必要はないと思います。勉強もかねて使うかもしれませんが。
ログイン・会員情報の機能は使用します。
google mapはそのアプリケーションの中に組み込みます。
uiはたとえばjqueryのiphone uiとかもあるし、モバイル向けのライブラリがあると思うのでそれを使用するかもです。
GPS情報はサーバーに送信する必要があります。一定時間ごとに現在位置を自動更新するからです。
iphoneに最初から入ってるようなGoogle mapのアプリはつかいません。Webブラウザで動かすアプリケーションだからです。