Я хочу ставить маркер на карту каждый раз при изменении местоположения. Я беру широту и долготу из Location
и создаю маркер в методе onLocationChanged()
. Почему не создается маркер?
public class MainActivity extends FragmentActivity implements LocationListener
{
Context context = this;
GoogleMap googlemap;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initMap();
addTwittertoMap();
LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 0,
this);
String provider = lm.getBestProvider(new Criteria(), true);
}
public void onLocationChanged(Location location) {
LatLng current = new LatLng(location.getLatitude(), location.getLatitude());
Date date = new Date();
googlemap.addMarker(new MarkerOptions()
.title("Current Pos")
.snippet(new Timestamp(date.getTime()).toString())
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))
.position(current)
);
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
public void onProviderEnabled(String provider) {
}
public void onProviderDisabled(String provider) {
}
private void initMap(){
SupportMapFragment mf = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
googlemap = mf.getMap();
googlemap.setMyLocationEnabled(true);
googlemap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
}
1 ответ
LatLng current = new LatLng(location.getLatitude(), location.getLatitude());
должно быть LatLng current = new LatLng(location.getLatitude(), location.getLongitude());
Кроме того, в качестве улучшения конфигурации LocationManager я бы предложил настроить его следующим образом:
LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
String provider = lm.getBestProvider(new Criteria(), true);
lm.requestLocationUpdates(provider, 10000, 0, this);
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.
onLocationChanged
увеличьте масштаб до места, чтобы убедиться, что маркер не добавлен.