2

多くの与えられた座標から、自分の gps の場所に最も近い場所を見つけたいです。
例:
目的地としてプログラムに入れたい 3 つの座標がありますが、現在の (GPS) 位置から最も近い 1 つの位置に行きたいだけです。

このインテントを使用して、自分の場所から特定の場所への方向を示しています。

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?f=d&daddr=destcoordinat"));
startActivity(intent);

この問題で意図を使用できますか、それとも他の解決策がありますか?

編集

どういうわけか私は答えを得ましたが、もっと良い解決策があることを知っています。知りたい方はこちら。

  1. 現在地から 3 つの特定の場所までの距離を計算する必要があります
  2. 距離の結果を配列リストに入れる
  3. minValue = Collections.min(distanceArray); を使用して最小値を見つけます。
  4. if else 条件を使用して、ユーザーの場所に最も近い座標 を 見つけ
    ます 。 ....



  5. 最後に、プログラムは私が行かなければならない最も近い場所を選択し、
    方向ナビゲーションを提供します。

*私はこれが最善の解決策ではないことを知っています.手動で座標を(意図)に入れなければなりません.

回答ありがとうございます。本当に感謝していますが、他の解決策がある場合は、以下にコメントしてください。

4

1 に答える 1

0

このコードを試して、

private boolean gps_enabled = false;
private boolean network_enabled = false;
private LocationListener locListener = new MyLocationListener();
LocationManager locManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

    try {
        gps_enabled = locManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    } catch (Exception ex) {
    }
    try {
        network_enabled = locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
    } catch (Exception ex) {
    }

    // don't start listeners if no provider is enabled
    if (!gps_enabled && !network_enabled) {

    }

    if (gps_enabled) {
        locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 10, locListener);
    }
    if (network_enabled) {
        locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 10, locListener);
    }

class MyLocationListener implements LocationListener {

    public void onLocationChanged(Location location) {

            currentLocation = location;


    }



    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub

    }


    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub

    }


    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub

    }

}

これを使用して場所を取得すると、

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("http://maps.google.com/maps?saddr=<start lat>,<start lon>&daddr=<dest lat>,<dest lon>"));
startActivity(intent);
于 2013-09-07T11:08:16.780 に答える