0

私はGoogleマップに取り組んでおり、現在のユーザー都市の店舗の場所を示すマップ上にsqlliteDBから約73個のピンポイントを配置することができました。

73か所すべてではなく、クローゼット5か所だけをユーザーに表示する必要があります。これに対するアイデアや解決策はありますか。

4

2 に答える 2

0

まず、ユーザーの場所とすべての場所の間の距離を計算します。

ユーザーの位置を取得するには、このガイドをお読みくださいロケーション戦略

場所とユーザーの場所の間の距離を計算するメソッドを使用して、場所のクラスを作成します。

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.sortArrays.sort)を使用して配列をソートします

配列の最初の 5 つの場所のみをマップに表示します

終わり!

于 2012-11-21T07:40:33.633 に答える