ІНІЦІАЛІЗАЦІЯ MAPVIEW І MAPLOCATIONOVERLAY в Android додатку

&nbsp

Карта в Microjobs передбачає два режими роботи

При запуску і коли ми вибираємо Current Location (Актуальне місце розташування) в блоці із змінним значенням (Spinner), ми хочемо відобразити карту того місця, в якому знаходимося в даний момент, а також хочемо, щоб карта змінювалася в міру того, як ми рухаємося Для такої карти будемо використовувати клас MyLocationOverlay

При виборі конкретного місця розташування із списку ми хочемо відобразити карту цього місця, відключити геолокаційні оновлення і не відстежувати рух

Розглянемо в класі MicroJobs Java код, який займається ініціалізацією MapView, а також вивчимо клас MyLocationOverlay, що відслідковує наше актуальне місце розташування:

Розглянемо пояснення до коду

Спочатку знаходимо MapView у файлі компоновки main xml так само, як знаходимо і будь-який інший вид, і присвоюємо його змінної mvMap типу MapView, щоб при необхідності на цей вид можна було послатися

Отримуємо описувач для MapControllеr, повязаного з MapView Його використовуватимемо для панорамування (анимирования) карти, збільшення, зменшення, переходу від одного виду до іншого і т д

Для роботи з MyLocationOverlay створюємо новий екземпляр і даємо йому імя mMyLocationOverl ay

Роботу з mMyLocationOverlay ми починаємо з того, що визначаємо метод, який Android викличе, коли ми отримаємо наше перше зміна даних геолокації від постачальника геолокаційні інформації

Метод runOnFirstFiх переміщує карту в точку нашого актуального місця розташування (воно задається за допомогою mMyLocationOverl aygetMyLocationO) і ставить таку ступінь збільшення, якої буде достатньо, щоб ми могли розглянути, які вакансії пропонуються поблизу

Ідентифікуємо маркер, який вирішили застосувати з mMyLocationOverlay в якості позначки для наявних вакансій Ми скористаємося зображенням, збереженим в нашому каталозі res / drawable, це зображення називається androidtinyimage Тут ми бачимо полюбився нам зеленого робота Ми визначаємо кордону Drawable і додаємо накладається шар з цими маркерами в список інших верств, заданих для MapViewmvMap

Тепер варто поставити кілька вихідних атрибутів для mvMap, про це ми поговоримо нижче в даному розділі Більшість з цих атрибутів користувач може змінити за допомогою кнопок меню

Потім, слідуючи філософії «переконаних перестраховиків», просто на випадок, якщо у нас в розпорядженні раптом не виявиться постачальника геолокаційні інформації, який запустить runOnFirstFiх, знову задаємо тут рівень збільшення

Нарешті, MapView вимагає від нас перевизначити метод іsRouteDisplayed (), щоб вказати, чи будемо ми відображати на нашій карті інформацію про маршрути У нашому додатку ми цього робити не збираємося, тому тут повертається false

У MyLocationOverl ay укладена маса коду для роботи з геолокації і картографуванням У ході єдиного виклику до конструктора ми виконуємо наступне

Наказуємо Android визначити, які постачальники геолокації доступні навколо нас (GPS, ідентифікатор стільники, тріангуляція)

Підключаємося до кращих з цих постачальників

Наказуємо постачальнику геолокації періодично надавати нам оновлення інформації про місцезнаходження, у міру того як телефон буде рухатися разом з нами

Підключаємося до службових підпрограм, які будуть автоматично переміщати нашу карту так, щоб відображати всі відбуваються зміни місця розташування

MyLocationOverlay також дозволяє нам розмістити в MapView і картушку компаса, і її теж можна було б оновлювати, але в програмі MJAndroid ми цією функцією користуватися не будемо

Картографічні атрибути, що задаються в коді, такі

setClіckabl е – ми хочемо, щоб користувач міг торкнутися пальцем певної вакансії на екрані і отримати докладну інформацію про дану роботу Тому для цього атрибута ми задамо значення true

setEnabled – успадковується від android, view View Google не дає точної відповіді на питання, що це означає у випадку з MapView, але імовірно атрибут забезпечує роботу стандартних картографічних функцій – збільшення та зменшення, панорамування і т д

setSatellіte – виставляючи такий прапор, ми додаємо вид з супутника зі зведеною карти Якщо не поставити цей індикатор, то вид з супутника видаляється Для початку спробуємо обійтися на карті без супутникової інформації

setTraffic – аналогічно, виставляючи або прибираючи цей прапор, ми додаємо на карту актуальну інформацію про дорожній трафік або відповідно видаляємо її Знову ж спробуємо почати працювати з картою без вказівки такої інформації

setStreetView – ми не збираємося на даному етапі відображати у додатку панораму вулиць, хоча дозволимо користувачеві включити цю функцію пізніше

Джерело: Android Програмування на Java для нового покоління мобільних пристроїв

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*