Domanda

This is TrackMap.java

public class TrackMap extends FragmentActivity implements LocationListener {

    GoogleMap map;

    @SuppressLint("NewApi")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_track_map);

        boolean lowPowerMoreImportantThanAccurancy = true;
        LocationRequest request = LocationRequest.create();
        request.setPriority(lowPowerMoreImportantThanAccurancy ? 
                LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY: 
                LocationRequest.PRIORITY_HIGH_ACCURACY);

        map = ((SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map)).getMap();

        map.setMapType(GoogleMap.MAP_TYPE_NORMAL);

        LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);

        // Enabling MyLocation Layer of Google Map
        map.setMyLocationEnabled(true);

        Marker marker = map.addMarker(new MarkerOptions()
                .position(new LatLng(0, 0)).draggable(true)
                // Set Opacity specified as a float between 0.0 and 1.0,
                // where 0 is fully transparent and 1 is fully opaque.
                .alpha(0.7f).flat(true)
                .getPosition());

    }

    @Override
    public void onLocationChanged(Location location) {
        // TODO Auto-generated method stub
        map.clear();

        MarkerOptions mp = new MarkerOptions();

        mp.position(new LatLng(location.getLatitude(), location.getLongitude()));

        mp.title("my position");

        map.addMarker(mp);

        map.animateCamera(CameraUpdateFactory.newLatLngZoom(
                new LatLng(location.getLatitude(), location.getLongitude()), 16));
    }

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

    }

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

    }



}

I wonder why it keep points to my current position while I viewing other parts of the map. Your help is very much appreciated.I doesn't really know what to delete the particular code to suit my needs

È stato utile?

Soluzione

because every time onLocationChanged is called you animate camera to the new location passed in.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top