Android: Получение повернутой карты OSM для заполнения всего экрана

Я работаю над приложением, которое использует API OpenStreetMap (OSM) для отображения различных интересных точек на автономном карте, состоящей из статической плитки.

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

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

в одном из г-н. Посты Romain Guy's , он упоминает следующее:

Я сделал это в прошлом, и это требует создания пользовательских ВоспроизведениеГрупп, которая поворачивает холст в методе DispatchDraw (). Ты Также нужно увеличить размер mapView (так что он достаточно рисовать пиксели при повороте.) Вам также нужно будет повернуть сенсорные события в DispatchTouchEvent (). Или если вы используете Android 3.0, вы можете просто позвонить themapview.rotate ()

Принимая его совет по поводу вращения карты, я реализовал дискатчацию () и диспетченьюУчета (), как предложено, но у меня возникли проблемы со стороны, где он упоминает, что мне нужно увеличить размер MapView ?

Это то, что я делаю в XML-файле, например, предлагается в этой теме ?

Или, я могу каким-то образом переопределить функцию OnMeasure () в своем подклассном классе RelativeLayout, который обрабатывает мою карту вращение?

Предложения и подсказки приветствуются.

Обновление:

В попытке найти приемлемое решение этой проблемы, я пытался изменить размер холста. Мышление было то, что с размером холста больше, чем фактический размер экрана, я мог бы полностью переместить пустые углы с экрана. К сожалению, не может быть фактическим вариантом Canvas.size (); Лучший, который я нашел, был холст. Pssockale ().

Использование CONVAS.SCALE (), я смог увеличить масштаб холста в 2 раза в виде 2-х горизонтальных, так и в вертикальных размерах. Это означает, однако, что изображение эффективно увеличено, вызывая неприемлемое пикселизацию к плиткам карты.

Кто-нибудь знает, где объявляется размер холста, а если изменение размера холста может действительно решить мою проблему?

9
задан Community 23 May 2017 в 12:31
поделиться