Как я могу переопределить масштабирование пинч по умолчанию в osmdroid? - PullRequest
0 голосов
/ 13 января 2012

Я использую Osmdroid для создания автономной карты

Теперь я хочу реализовать свою собственную функцию увеличения масштаба для автономных карт

Когда пользователь использует пинч, я хотел бы увеличивать / уменьшать масштаб только до определенного уровня масштабирования, а не увеличивать / уменьшать уровень масштабирования на 1

Есть ли способ сделать это? как я могу пойти по этому поводу?

P.S .: да, есть элементы управления масштабированием, но я хотел бы сделать функцию масштабирования более интуитивной

Спасибо

Ответы [ 2 ]

1 голос
/ 14 января 2012

Я имел дело с похожим вопросом здесь и предоставил код для пользовательской функциональности на пинч. Итак, в основном, расширяя то, что я имел в ответе, просто делаю:

int currentZoomLevel = mOsmv.getController().getZoomLevel();
if (currentZoomLevel < (mOsmv.getControler().getMaxZoomLevel()) - 2) 
    mOsmv.getController().setZoomLevel(currentZoomLevel + 2);

Это всего лишь пример увеличения уровня масштабирования на 2 вместо 1 Уровень масштабирования, но я уверен, что это все. mOsmv, на тот случай, если вы его не получите, является экземпляром карты osmdroid.

1 голос
/ 14 января 2012

Я думаю, что способ сделать это будет расширить MapView.

Переопределение setZoomLevel выглядит как один вариант, но я не думаю, что это будет работать.Поскольку я верю, что код должен быть написан в стиле this.setZoomLevel, который он не выполняет последовательно.

Я думаю, вы должны иметь возможность переопределить selectObject, что похоже на место, где пинч вызывает вызовsetZoomLevel

Вам потребуется проверить исходный код , чтобы узнать, как внести необходимые изменения

...