私はGoogleマップに取り組んでおり、現在のユーザー都市の店舗の場所を示すマップ上にsqlliteDBから約73個のピンポイントを配置することができました。
73か所すべてではなく、クローゼット5か所だけをユーザーに表示する必要があります。これに対するアイデアや解決策はありますか。
私はGoogleマップに取り組んでおり、現在のユーザー都市の店舗の場所を示すマップ上にsqlliteDBから約73個のピンポイントを配置することができました。
73か所すべてではなく、クローゼット5か所だけをユーザーに表示する必要があります。これに対するアイデアや解決策はありますか。
まず、ユーザーの場所とすべての場所の間の距離を計算します。
ユーザーの位置を取得するには、このガイドをお読みくださいロケーション戦略
場所とユーザーの場所の間の距離を計算するメソッドを使用して、場所のクラスを作成します。
public class Place {
public Location location;
private float distanceToUser;
public Place(Location _loc){
location = _loc;
}
public void calculateDistance(Location userLocation){
distanceToUser = location.distanceTo(userLocation);
}
}
ここで、distanceTo
メソッドが呼び出されました。
Place[]
次に、配列を作成し、データベースのすべての場所で初期化します。各場所の呼び出しcalculateDistance
方法について。
その後、Arrays.sort
(Arrays.sort)を使用して配列をソートします
配列の最初の 5 つの場所のみをマップに表示します
終わり!