Только что ознакомился с API Карт Google (v2) и интегрировал его в свое приложение для Android и у меня есть 2 вопроса, которые я не нашел, что это лучший способ сделать это:Google Maps (V2) в приложении для Android
Первое, что всегда фокусируется на текущем местоположении пользователя (например, на приложении GPS). То, что я сделал это в OnCreate я получаю местоположение пользователя (в зависимости от некоторых вещей я нашел здесь и там))
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);
MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map);
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
String bestProvider = locationManager.getBestProvider(criteria, true);
Location location = locationManager.getLastKnownLocation(bestProvider);
LatLng currentUserPosition = new LatLng(location.getLatitude(), location.getLongitude());
// setting the cam position to current position
CameraPosition camPosition = new CameraPosition(currentUserPosition, 17f, 30f, 0f);
CameraUpdate update = CameraUpdateFactory.newCameraPosition(camPosition);
mapFragment.getMap().animateCamera(update);
// updating map every second
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
1000, // 1-second interval.
10, // 10 meters.
listener);
}
Где listener
является LocationListener
настроен так:
private final LocationListener listener = new LocationListener() {
@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
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onLocationChanged(Location location) {
CameraPosition camPosition = new CameraPosition(new LatLng(location.getLatitude(), location.getLongitude()), 17f, 30f, 0f);
MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map);
CameraUpdate update = CameraUpdateFactory.newCameraPosition(camPosition);
mapFragment.getMap().animateCamera(update);
}
};
Является ли это правильный способ сделать это?
Во-вторых, пользователь может коснуться карты и динамически добавлять маркеры на карте (с его собственными заголовками и т. Д.). Я попытался найти (но не сделал) способ проложить путь между маркерами и действовать как приложение gps. Возможно ли это?
Спасибо