Главная » Разработка для Android » Настройка и использование элементов MapView

0

Класс MapView отображает карту Google Maps: поддерживает несколько параметров, которые учитываются при отображении карты.

По умолчанию  объект MapView  выводит стандартную  схематическую карту, как показано на рис. 8.4. В дополнение вы можете выбрать спутнико- вый и транспортный режимы отображения, как в следующем фрагменте:

mapView.setSatellite(true); mapView.setStreetView(true); mapView.setTraffic(true);

Можно  также делать запросы  к MapView,  чтобы получить  текущий и максимальный доступный уровни масштаба наряду с центральной точкой

на карте, а также широтой и долготой отображаемого  участка карты (в де- сятичных градусах). Последнее (демонстрируется в следующем фрагменте кода) пригодится для поисков с помощью геокодировщика на ограниченных участках.

int maxZoom = mapView.getMaxZoomLevel(); GeoPoint center = mapView.getMapCenter(); int latSpan = mapView.getLatitudeSpan(); int longSpan = mapView.getLongitudeSpan();

При желании отобразите стандартные элементы управления масштабом, воспользовавшись методом setBuiltInZoomControls.

mapView.setBuiltInZoomControls(true);

Использование объекта MapController

Задействуйте MapController для наведения и масштабирования MapView. Вы можете получить ссылку на элементы управления MapView с помощью метода getController.

MapController mapController = myMapView.getController();

Местоположения на карте в картографических классах  Android  пред- ставлены объектами GeoPoint, которые содержат широту и долготу, измеря- емые в микроградусах. Чтобы перевести градусы в микроградусы, умножьте значение на миллион (1 000 000).

Прежде чем начинать  использовать значения  широты  и долготы, хра- нящиеся  в объекте Location, полученном из геолокационных сервисов, не- обходимо перевести их в микроградусы и передать объекту GeoPoint.

Double lat = 37.422006*1E6; Double lng = -122.084095*1E6;

GeoPoint point = new GeoPoint(lat.intValue(), lng.intValue());

Отцентрируйте и масштабируйте MapView  с помощью  методов set- Center и setZoom, доступных  из объекта MapController, принадлежащего MapView.

mapController.setCenter(point);

mapController.setZoom(1);

При использовании setZoom значение 1 соответствует  самому малому

(удаленному) масштабу, а 21 — самому большому (приближенному).

Фактический масштаб, доступный для конкретной  местности, зависит от разрешения карт Google Maps и качества снимков этого района. Вы также можете использовать методы zoomIn и zoomOut,  чтобы изменять  масштаб на одно значение в ту или иную строну.

Метод setCenter установит новое текущее местоположение, для показа плавного перехода воспользуйтесь методом animateTo.

mapController.animateTo(point);

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии