Добрый день дорогие форумчане!
Не совсем вот знаю, как нужно искать решение по данному вопросу. Может вы подскажете!
Для отправки веб-приложения на андройд использую PhoneGap.
Задача следующая: необходимо реализовать масштабирование карты с помощью развода или сведение пальцев на сенсорном экране.
Если не добавлять ни каких событий, то масштабирование не работает. Кто нибудь может подсказать, как это сделать или где можно найти информацию!
Почему то когда я первый раз встретил leaflet - что т в его описании мне не понравилось… Сейчас вроде бы почитал - все нормально…
Ну если решение не найдется, то придется попробовать leaflet. Может найду с нем нужную мне функцию, ну или просто ее использовать буду.
У меня так то задача: самому написать библиотеку простенькую, для реализации необходимых функций только…
Max Vasilev, вот один из вариантов, который я пробовал:
controls: [
new OpenLayers.Control.TouchNavigation({
dragPanOptions: {
enableKinetic: true
}
}),
new OpenLayers.Control.ZoomPanel()
]
Можно сказать, как раз не сработал! Да, в инете написано что это рабочий вариант, но по отзывам встречал, что тоже проблемы.
Может я просто как то не так делаю. Если у вас есть возможность, проверте у себя. Вот код мой, чтобы только если чуть поправить:
<script src="http://openlayers.org/dev/OpenLayers.js"></script>
<script type="text/javascript">
var map;
function init() {
map = new OpenLayers.Map({
div: "map",
theme: null,
projection: new OpenLayers.Projection("EPSG:900913"),
numZoomLevels: 18,
controls: [
new OpenLayers.Control.TouchNavigation({
dragPanOptions: {
enableKinetic: true
}
}),
new OpenLayers.Control.ZoomPanel()
],
layers: [
new OpenLayers.Layer.OSM("OpenStreetMap", null, {
transitionEffect: 'resize'
})
]
});
map.setCenter(new OpenLayers.LonLat(0, 0), 3);
}
</script>
dudka, посмотрел этот сайт. Используя мультитач ноута, там на самом деле происходит масштабирование, но используя браузеры телефона и щепотку - ни какого эффекта. Проверял в 3х браузерах: Опера, стандартном и xScope.
На счет ссылок - еще не прочитал, может что там найду
leaflet решили частично обойти эту проблему. У них реализовано следущим образом: если прикасаешься 2мя пальцами, то происходит масштабирование. Но опять же минус - выше на уровень не подняться - приходиться кнопкой [-] пользоваться. Хотя я видел что то про то, что можно узнать какое расстояние между 2мя пальцами, может кто делал такое? Если получается можно, то с помощью событий touchdown+touchmove мы сможет обновлять расстояние пальцев и следовательно узнать, приближаются они или удаляются и далее уже с помощью скрипта выполнить масштабирование.
В общем: Тема еще актуальна как минимум до конца недели, а далее - придется просто сделать какой нибудь вариант…