我一直在调试这段代码,但是无法实现。我得到了正确的经度&听众的纬度,但无法相应地更新地图,任何人都可以帮助我。
public class MapActivity extends FragmentActivity implements OnMapReadyCallback {
protected GoogleMap mMap;
protected LocationManager locationManager;
protected LocationListener locationListener;
private double latitude, longitude;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
getLocation();
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Toast.makeText(getApplicationContext(),"Latitude:" + latitude + ", Longitude:" + longitude,Toast.LENGTH_SHORT).show();
LatLng delhiIndia = new LatLng(latitude,longitude);
mMap.addMarker(new MarkerOptions().position(delhiIndia).title("Delhi--India"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(delhiIndia));
}
public void getLocation(){
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
latitude=location.getLatitude();
longitude =location.getLongitude();
Toast.makeText(getApplicationContext(),"Latitude:" + latitude + ", Longitude:" + longitude,Toast.LENGTH_SHORT).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
Log.d("Latitude","status");
}
@Override
public void onProviderEnabled(String provider) {
Log.d("Latitude","enable");
}
@Override
public void onProviderDisabled(String provider) {
Log.d("Latitude", "disable");
}
};
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
//locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,locationListener);
}
}
请有人帮我跟踪这个问题。
答案 0 :(得分:0)
@Override
public void onLocationChanged(Location location) {
latitude=location.getLatitude();
longitude =location.getLongitude();
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(latitude, longitude)).zoom(3.3f).build();
mMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPosition));
Toast.makeText(getApplicationContext(),"Latitude:" + latitude + ", Longitude:" + longitude,Toast.LENGTH_SHORT).show();
}
答案 1 :(得分:0)
添加新标记
mMap.clear();
MarkerOptions marker = new MarkerOptions()
.position(new LatLng(latitude, longitude))
.title("My Position")
.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
mMap.addMarker(marker);