仕事にてスマートフォンのGPSを使用したアプリ開発を1人ですることになりました。素人プログラマです。


やりたいことはiphoneのgoogle mapのアプリと同じことを、スマートフォン向けのブラウザで実行させたいです。

つまり、
ブラウザを開いている間
→ GPS情報を定期時間ごとに送信
→ 現在地をgoogle mapで表示
→ AJAXで画面の更新を連続させる。

※今回開発するものには独自の機能を追加する予定です。

全体的なイメージ・開発方法が沸かなくて困ってます。


開発環境など
・言語・その他 : php、ajax、googlemap、cakephpを使うかも
・UI : jqueryや、cakephpの機能とajaxヘルパーなど。
・GPS : cakephpのプラグインを使用したいです。Geomobilejp、GeoSimpleなどがあるようです。pearのGPSプラグインもあるようですが。
・地図 : google map、あとから周辺情報の表示などをしたいです。


なにか良いアイデアがあれば教えて下さい。お願いします。

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2011/01/12 22:45:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:Galapagos No.1

回答回数963ベストアンサー獲得回数89

ポイント27pt

コメント欄が開いていないので回答欄にて失礼します。

以下の項目が分からないので確認をお願いします。


  1. スマートフォンの定義は何ですか? Android携帯のことを意味していますか?
  2. なぜGPS情報をサーバに送信(CakePHPの利用が前提)しなければならないのですか? Android携帯でGoogleMaps上に表示させるだけならサーバ通信の必要はありません。
id:pochi1234

スマートフォンはAndroidとiphoneなどが主です。機種によっては画面のサイズは異なると思いますが。

cakephpを使用する必要はないと思います。勉強もかねて使うかもしれませんが。

ログイン・会員情報の機能は使用します。

google mapはそのアプリケーションの中に組み込みます。

uiはたとえばjqueryのiphone uiとかもあるし、モバイル向けのライブラリがあると思うのでそれを使用するかもです。

GPS情報はサーバーに送信する必要があります。一定時間ごとに現在位置を自動更新するからです。

iphoneに最初から入ってるようなGoogle mapのアプリはつかいません。Webブラウザで動かすアプリケーションだからです。

2011/01/06 00:16:53
id:Galapagos No.2

回答回数963ベストアンサー獲得回数89

ポイント27pt

サーバ・サイドはPHP+CakePHPで開発するのでよいと思います。

「一定時間ごとに現在位置を自動更新する」の機能内容がよく分かりませんが、単純に記録を取っていくだけならテキストファイルまたはXMLファイルをサーバに記録する形で十分でしょう。

頻繁に検索するのであればDB(MySQL, SQLiteなど)を利用するのがいいでしょう。


クライアント・サイドは、iPhoneアプリとAndroidアプリとでは開発環境が全く異なります。

iPhoneアプリを開発するには、iOS SDKとMacOS X環境が必要です。Objective-Cの開発経験がある方なら、比較的簡単に入っていけます。

Androidアプリを開発するには、Android SDKとJava開発環境が必要です。開発OSには依存しません。

id:pochi1234

ご回答ありがとうございます

機種に依存しない画面を開発したいので、ios sdkなどの使用は考えていません。

クライアントサイドはHTML+javascriptです。jqueryなどのライブラリもありますし。


GPSをブラウザにて自動更新したいですが、一定時間ごとと言うか、現在地をリアルタイム更新したいです。

良い案があれば知りたいです。

2011/01/06 19:40:44
id:tdoi No.3

回答回数174ベストアンサー獲得回数75

ポイント26pt

プログラムが素人とのことなのでしょうがいないのかもしれませんが、いまいちやりたいことが見えてきません。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の基本的な何かを参考にすれば、独自の機能もサポートできるようになるのではないでしょうか。

何かの参考になれば。

id:pochi1234

ご回答ありがとうございます

回答者様のおっしゃるとおりのことをしたいです

geolocation apiにて現在地を取得し続けられるようです

alertを使う理由はわからないですけど、まずはgooglemapを更新し続ける方法をご回答者様のおっしゃられるとおりに進めてみたいと思います

一定時間ごとに非同期更新してみます

サイト独自の機能は別に考えてみます

2011/01/08 18:46:44
  • id:tdoi
    alertの件ですが、プログラムをあまり書いたことがないとのことだったので、Ajaxでページを書き換えるよりも、alertの方が簡単かなと思っただけです。

    要件としては、課題となる要素を分解して、

    1.タイマーの使い方を覚える
    2.Geolocation APIの使い方を覚える
    3.1と2を組み合わせてみる
    4.Google Map APIで指定した地図を表示する
    5.Google Map APIで表示箇所を変更する方法を覚える
    6.3と5の成果を組み合わせてみる

    という手順で一つずつ構築してみてはどうでしょうか?という提案でした。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません