Здравствуйте, в этой статье я рассмотрю настройки карт от Google.
Инструкция для начала работы с GoogleMaps — Урок 139. Google maps. Создание и настройка проекта. Карта, камера, события
Доступ к настройкам карты:
UiSettings mapSettings = map.getUiSettings();
Включаем возможность перемещения по карте:
mapSettings.setScrollGesturesEnabled(true);
Включаем возможность поворота камеры двумя пальцами:
mapSettings.setRotateGesturesEnabled(true);
Включаем кнопки для увеличения карты:
mapSettings.setZoomControlsEnabled(true);
Открываем карту определенного города:
try {
Geocoder geocoder = new Geocoder(MainActivity.this);
List<Address> addresses;
addresses = geocoder.getFromLocationName("Москва", 3);
if(addresses.size()> 0) {
double latitude= addresses.get(0).getLatitude();
double longitude= addresses.get(0).getLongitude();
LatLngBounds MOSCOW = new LatLngBounds(new LatLng(latitude, longitude), new LatLng(latitude, longitude));
map.moveCamera(CameraUpdateFactory.newLatLngZoom(MOSCOW.getCenter(), 10));
}
} catch (IOException e) {}
В методе getFromLocationName указываем название города на русском или английском и масштаб. В моем примере карта увеличится в 3 раза.
Включаем отображение местоположения пользователя на карте:
Грузовые перевозки негабаритных грузов www.zgruz.ru.
map.setMyLocationEnabled(true);
Устанавливаем тип карты:
map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
Список типов карт:
MAP_TYPE_NONE – карта не будет отображаться.
MAP_TYPE_NORMAL – обычный режим, в нем карта стартует по умолчанию.
MAP_TYPE_SATELLITE – снимки со спутника.
MAP_TYPE_TERRAIN – карта рельефа местности.
MAP_TYPE_HYBRID – снимки со спутника и информация о улицах и транспорте.
Узнать какой тип карты включен в данный момент можно с помощью метода getMapType().
Добавляем маркер при нажатии на карту:
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
…
map.setOnMapClickListener(onMapClick);
}
OnMapClickListener onMapClick = new OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
addMarker(latLng);
}
};
void addMarker(LatLng latLng){
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(latLng);
markerOptions.flat(false);
markerOptions.title("Мой заголовок для маркера");
map.clear();
map.animateCamera(CameraUpdateFactory.newLatLng(latLng));
map.addMarker(markerOptions);
}
Устанавливаем адрес в качестве заголовка для маркера:
markerOptions.title("Мой заголовок для маркера");
String getAdress(LatLng latLng){
String filterAddress = "";
Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault());
try {
List<Address> addresses = geoCoder.getFromLocation(
latLng.latitude,
latLng.longitude, 1);
if (addresses.size()> 0) {
for (int index = 0; index < addresses.get(0).getMaxAddressLineIndex(); index++){
filterAddress += addresses.get(0).getAddressLine(index) + " ";
}
}
}catch (IOException ex) {
ex.printStackTrace();
}catch (Exception e2) {
e2.printStackTrace();
}
return filterAddress;
}
