YMaps3 js api: перемещение позиции карты на touch устройствах двумя пальцами
Как не пробовал только на этой версии реализовать хоть что-то более менее похожее на управление картой только двумя пальцами на ymaps3. И через touch events и пытался найти информацию по этому поводу (как просто и в доке ymaps3 так и на других форумах но глухо)
Мой пример использования:
const initDoubleTouchMove = (mapInstance) => {
let isTwoFingers = false;
const behaviors = {
static: [...mapInstance.behaviors, 'drag'],
move: mapInstance.behaviors.filter(behavior => behavior !== 'drag')
}
mapInstance.container.addEventListener('touchstart', function(e) {
console.log('dd');
if (e.touches.length === 2) {
isTwoFingers = true;
} else {
isTwoFingers = false;
}
});
mapInstance.container.addEventListener('touchmove', function(e) {
if (isTwoFingers) {
setBehaviorActivity(mapInstance, behaviors);
} else {
setBehaviorActivity(mapInstance, behaviors, false);
}
});
mapInstance.container.addEventListener('touchend', function(e) {
setBehaviorActivity(mapInstance, behaviors);
});
setBehaviorActivity(mapInstance, behaviors);
}
const setBehaviorActivity = (mapInstance, behaivorArrays, isStatic = true) => {
if (isStatic) {
mapInstance.setBehaviors(behaivorArrays.static);
} else {
mapInstance.setBehaviors(behaivorArrays.move);
}
}
const mainInit = async (mountElement) => {
const mapInstance = await initMap({
// controls: ["geoControls", "zoomControls"],
mountElement: mountElement,
location: {
center: [ 33.55, 33.55], /* координаты для примера*/
zoom: 10,
},
points: [/* здесь должы были быть координаты меток для примера */],
behaviors: [
// "mouseRotate",
// "mouseTilt",
// "magnifier",
// "pinchRotate",
// "panTilt",
"drag"
],
});
window.mapInstance = mapInstance;
initDoubleTouchMove(mapInstance);
}
let mapMountElement = document.querySelector("#some-element-id");
if (mapMountElement) {
mainInit(mapMountElement);
}
Функция initMap();
моя обертка над этим api возвращающая instance карт
Во всяком случае при отключении drag на карте и если она во весь экран вы оказываетесь в ловушке и не можете крутить не вверх не вниз
Кто-нибудь это реализовывал?