2

マップビューを使用してグーグルマップ上の現在の位置を取得する方法を知りたいです。それは私が歩いてある場所から別の場所に移動するときなので、地図上の私の場所も変更されます。GPSまたはネットワークプロバイダーによって実現されますが、適切な現在地を取得したいと考えています。

4

3 に答える 3

3

緯度と経度のデータを取得するには Location Listener を実装する必要があります。これらの値を使用して Google マップ上の位置を設定し、マーカーを使用してその位置を示します。

public class MyLocationListener implements LocationListener {
protected LocationManager lm;
public String message="Hello";
Location location;
private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 1; 
private static final long MINIMUM_TIME_BETWEEN_UPDATES = 1000000; 
Context mContext;
public MyLocationListener(Context mContext) {
    // TODO Auto-generated constructor stub
    this.mContext = mContext;
    String context=Context.LOCATION_SERVICE;
    lm = (LocationManager)mContext.getSystemService(context);
    lm.requestLocationUpdates(LocationManager.PASSIVE_PROVIDER,MINIMUM_TIME_BETWEEN_UPDATES,MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,this);
}


  public void showCurrentLocation() 
  {

        location=lm.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER);
       if (location != null) {
             message = String.format(
                    "Longitude: %1$s \n Latitude: %2$s",
                    location.getLongitude(), location.getLatitude()
            );

           t1.setText(message);

      }


    }   

  public void onLocationChanged(Location location) 
  {
    /*  String message = String.format(
              "New Location \n Longitude: %1$s \n Latitude: %2$s",
              location.getLongitude(), location.getLatitude()
      );
      t1.setText(message);
    Toast.makeText(WinUirep.this,
              "Location Changed !",
              Toast.LENGTH_LONG).show();*/

  }

  public void onStatusChanged(String s, int i, Bundle b) 
  {

  }

  public void onProviderDisabled(String s) 
  {

  }

  public void onProviderEnabled(String s) 
  {

  }}

location.getlatitude() は、ネットワーク プロバイダーから緯度を取得します。経度も同様です。

于 2012-04-06T16:19:19.507 に答える
1

次のチュートリアルをお勧めします。これらのチュートリアルは、必要なものを作成するのに役立ちます。

http://developer.android.com/resources/tutorials/views/hello-mapview.html http://www.vogella.de/articles/AndroidLocationAPI/article.html

于 2012-04-06T15:46:46.957 に答える
0

LocationListener を使用して currentLocation の緯度経度を取得します

public class MyLocationListener implements LocationListener{
    private Context context;

    public MyLocationListener (Context context){

            this.context = context;
            this.frequency = frequency;

            locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);

            criteria = new Criteria();
            criteria.setAccuracy(Criteria.ACCURACY_COARSE);
            criteria.setAltitudeRequired(false);
            criteria.setCostAllowed(true);
            criteria.setSpeedRequired(false);
            criteria.setBearingRequired(false);
            criteria.setPowerRequirement(Criteria.POWER_HIGH);

            provider = locationManager.getBestProvider(criteria, true);

            location = locationManager.getLastKnownLocation(provider);

    }
    public void onLocationChanged(Location location) {
        // TODO Auto-generated method stub
        // here you can get latitute and longitude and send to mapview to show the current location on map
            double latitute = location.getLatitude();
            double longitude = location.getLongitude();
        Toast.makeText(context, "lat,long:"+latitute+","+longitude, Toast.LENGTH_LONG);

    }

}

現在の緯度と経度を取得するためのチュートリアルを読むには、ここをクリックしてチュートリアルを参照してください

ここをクリックして、特定の緯度と経度の地図にアイコンを配置する方法をお読みください

于 2012-04-06T16:18:01.853 に答える