2

私は、ユーザーの現在の場所を取得し、ユーザーの場所に近いレストランのリストを表示するAndroidアプリを開発しています。レストランのデータを利用できます(つまり、検索結果に表示したい各レストランの緯度/経度があります)。データベース(ウェブサイト)で利用可能なレストランのみを表示する必要があるため、GooglePlacesAPIを使用できません。私の質問は、コンピューター上にあるデータベース(またはURL)にアクセスして、レストランのデータを抽出し、Androidアプリに検索結果として表示するにはどうすればよいですか?
私は実際にシームレスを作成しています(http://bit.ly/Jp7pUN)私の会社のタイプアプリケーション。私はAndroidアプリ開発の完全な初心者です。ですから、これが本当に非常に広範で愚かな質問である場合は、ご容赦ください。これを実装するために勉強する必要のあるトピックを教えてください。私は自分で勉強してやります。

ありがとう。

4

2 に答える 2

1

必要になるだろう:

  • レストランとその経度/緯度を保存するためのSqliteデータベース
  • 地図を表示するためのMapView (Google Maps APIキーを登録することを忘れないでください)
  • マップ上にマーカーを表示するためのマップオーバーレイ
  • ユーザーの位置を取得するためのGPSアクセス(適切なAndroidの許可が必要です)
  • ユーザーの場所からxの距離内にあるレストランの結果セットを取得する単純な検索アルゴリズム

編集

データベースがサーバーに保存されている場合は、できればRESTなどのHTTPベースのプロトコルを使用してサーバーにクエリを実行する方法が必要になります。ユーザーがオフラインの場合に備えて、Androidデバイスにレストランの場所を(Sqliteを使用して)キャッシュすると便利です(必須ではありません)(朗報:Androidとサーバーの両方でJavaを使用できるため、データの90%がアクセスレイヤーは一度だけ書く必要があります)。

サーバーからAndroidクライアントへのデータ転送では、JSONが一般的な形式です。

于 2012-05-20T09:48:12.237 に答える
1

コンピューター(AndroidのSQLiteではない)のデータベースにアクセスするには、データベースサーバーのURLをlocalhost10.0.2.2に変更する必要があります。ただし、データベースがインターネット上にある場合は、必要なデータを取得するために、RESTAPIを作成する必要があります。次に、を使用HttpClientしてサーバーからデータをフェッチします。

必要なものはすべて開発者ガイドにあります:MapView そして現在の場所を取得するために私は使用することをお勧めしますMyLocationOverlay

例(サーバーへのURL):

//public static final String SERVER_ADDRESS = "http://10.0.2.2:3000"; // for localhost server
public static final String SERVER_ADDRESS = "http://railsserver.herokuapp.com"; //for remote server

サーバー上のデータへのアクセス-これは、サーバーを実装する方法(およびどの技術を使用するか)(REST API?、WebService?、プレーンHTML?)とサーバーからの応答の形式(JSON?XML ?、等。)

Android SDKに含まれているクラスを使用すると簡単に解析できるため、JSONを使用することをお勧めします。

        String json = execute(new HttpGet(Constants.SERVER_URL + "/fetchData"));
        JSONObject responseJSON = new JSONObject(json);
        if(responseJSON.has("auth_error")) {
            throw new IOException("fetchData_error");
        }
于 2012-05-20T09:54:02.327 に答える