1

以下は、私が使用している Location Listener とそれを呼び出すメソッドです。これを実行すると、マップが継続的にズームインおよびズームアウトします。現在、アクティビティの onCreate からこれを呼び出しています。ここで私が間違っているのは何ですか?

private void showCurrentLocationOnMap(){
    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
    LocationListener ll = new Mylocationlistener();
    boolean isGPS = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);

    if (!isGPS){
        Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
        intent.putExtra("enabled", true);
        sendBroadcast(intent);
    }

    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);




}


/**
 *Mylocationlistener class will give the current GPS location 
 *with the help of Location Listener interface 
 */
private class Mylocationlistener implements LocationListener {

    @Override
    public void onLocationChanged(Location location) {

        if (location != null) {
            // ---Get current location latitude, longitude, altitude & speed ---

            Log.d("LOCATION CHANGED", location.getLatitude() + "");
            Log.d("LOCATION CHANGED", location.getLongitude() + "");
            currentLocation = new LatLng(location.getLatitude(), location.getLongitude());
            HAMBURG = new LatLng(location.getLatitude(), location.getLongitude());
            //This only shows the initial marker
                  @SuppressWarnings("unused")
      Marker hamburg = map.addMarker(new MarkerOptions().position(currentLocation).title("Current Location"));
            // Move the camera instantly to hamburg with a zoom of 15.
            map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15));
            // Zoom in, animating the camera.
            map.animateCamera(CameraUpdateFactory.zoomTo(12), 2000, null);              


        }
    }
4

1 に答える 1

0

0秒ごとに、requestLocationUpdatesメソッドに従って場所の更新を要求していることがわかりました。これは、私の側のタイプミスです。いつものように、それは私を殺していた小さなものでした。だから:の代わりに

 lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);

私は持っていたはずです:

 lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 10, ll);

10000は10秒に相当します。これを変更すると、アップデートが正しく更新され、アプリを正常に実行できました。

于 2013-03-21T14:28:37.903 に答える