2016-07-05 13 views
1

私は大学のプロジェクトの1つで、一般的な詳細、メニュー、レストランの場所を登録して保存するサービスを提供するアプリを開発したいと考えていますユーザーの場所に基づいて作業しているAndroidアプリでこれらのレストランの場所を検索するには、顧客がアプリを開いたときに半径5マイルのそのユーザーに近いレストランが表示されます。Googleマップで場所を保存して取得する方法

同じデータベースに接続しているレストラン所有者と顧客のためのさまざまなアプリ。

私はこのタスクを達成するためのいくつかの指針をお伝えしたいと思いますが、このタスクを達成するために間違った方向に進むとベストプラクティスを指摘してください。

ありがとうございます!

答えて

1

レストランのロケーションは、データベースの緯度と経度の組み合わせとして格納されます。

顧客がアプリケーションを開くときに、顧客の現在の場所を取得し、データベースのクエリを実行して、ユーザー/顧客の現在の場所とレストランの場所の距離が5マイル未満であるかどうかを確認する必要があります。 Googleはすでにこの機能を実現する方法を提供しています。

あなたがユーザーの位置を表していると仮定として:

Location userLocation = new Location(""); 
userLocation.setLatitude(latitude1); 
userLocation.setLongitude(longitude1); 

これは、あなたが一度にデータベース1から照会レストランの場所を表す方法です。

Location restaurantLocation = new Location(""); 
restaurantLocation.setLatitude(latitude2); 
restaurantLocation.setLongitude(longitude2); 

これで距離をメートルで計算できます。

float distanceInMiles = distanceInMeters/1.60934 

をし、それを超える5マイルであるかどうかを確認:

float distanceInMeters = userLocation.distanceTo(restaurantLocation); 

あなたは次のようにマイルへの適切な変換を行うことができます。条件がtrueを返す場合は、マップ内のその場所をレストランの座標でマークします。

if (distanceInMiles > 5) 
{ 
    // code to set the marker with the restaurant's coordinates on the map. 
} 

このテストを定期的に実行して(5分ごとに)、近くの5マイルの半径にあるレストランを見つけることができます。

関連する問題