Пользовательская карта Android

#android #map #positioning #gis

#Android #Карта #позиционирование #гис

Вопрос:

Я разрабатываю систему позиционирования в помещении для Android. Мне нужно нарисовать пользовательский план этажа здания и наложить на него указатель.

В этом случае, какое программное обеспечение / API я должен использовать для рисования пользовательского плана этажа?

Заранее спасибо.

Ответ №1:

Недавно я сделал план библиотеки как часть моей магистерской диссертации. Я остановился на простом обычае Drawable , который просто масштабировал Bitmap (план этажа), чтобы соответствовать экрану, а затем рисует несколько полупрозрачных прямоугольников (книжные полки) поверх него. Мой макет имеет общий View с fill_parent для обоих направлений и получает пользовательский Drawable через setBackgroundDrawable() in Activity.onCreate() .

Если у вас есть карты с высоким разрешением (больше, чем помещается в память приложения в одном месте), требуется масштабирование или даже поворот, это потребует много работы. Я попытался использовать код приложения Google IO, упомянутый Рено в его ответе, пользовательские наложения Google Maps (не удается увеличить достаточно близко), автономный режим WebView (для «бесплатной» функции масштабирования) и даже обдумывал пользовательскую систему рендеринга на основе плиток — в конце концов, использование простого Bitmap было наименьшимхлопоты и сработали на удивление хорошо для моего варианта использования.

Однако меня бы очень заинтересовало решение, которое выполняет масштабируемый, вращающийся рендеринг на основе плиток 🙂

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

1. Большое спасибо. Это полезно. Какой инструмент вы используете для рисования растрового изображения (плана этажа)?

2. Это был прототип для одного этажа библиотеки, поэтому я просто сделал снимок плана эвакуации при пожаре с помощью телефона и очистил его в графической программе (Gimp); для фактического готового приложения я, вероятно, переведу изображение в векторную графику (используя Inkscape), а затем экспортирую в PNG (меньше проблем, чем поддержка SVG на Android)

3. I'd be very much interested in a solution that does zoomable, rotating, tiled-based rendering, though :) — вы видели github.com/moagrius/TileView ? Я никогда не пробовал, но мне, возможно, придется, и мне любопытно.

Ответ №2:

Google сделал это для своего события ввода-вывода Google. Жаль, что они использовали javascript: ( Я в этом не разбираюсь.

Они загрузили map.js в a MapFragment , который содержит a WebView .

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

1. Спасибо за ответ. Во-первых, мне нужно найти способ нарисовать пользовательский план этажа (плитку карты). Я проводил исследования по этому вопросу в последние несколько дней. Я расстроен.

Ответ №3:

Компонент MapView предоставляет очень гибкий метод добавления пользовательских элементов любого типа на карту под названием mapOverlays. Вы можете реализовать ItemizedOverlay и добавлять к нему элементы, а также определять чертежи для элементов наложения на этом наложении. После того, как вы зарегистрировали свое наложение в MapView, представление позаботится о том, когда рисовать ваши элементы и где на экране.

Для получения более подробной информации и руководства см. http://developer.android.com/resources/tutorials/views/hello-mapview.html