На карте круговая область, которую можно перетаскивать и изменять радиус круга. С отрисовкой и перетаскиванием проблем не возникает, остается только щелкнуть - потянуть, чтобы кружок отрабатывал движение мыши или пальца (центр в месте где щелкнули, край - где отпустили). Пока сделал по двум щелчкам: первый задает центр, второй радиус, отсчитывая от центра. Обновление после второго щелчка:
map.events
.add('click', function (e) {
if (prev_position == undefined) {
prev_position = e.get('coords');
}
else {
var d = ymaps.coordSystem.geo.getDistance(prev_position, e.get('coords'));
circle.geometry.setRadius(d);
circle.geometry.setCoordinates(prev_position);
prev_position = undefined;
}
});
Только в интерактивной версии могут возникнуть проблемы с перемещением по карте (а оно нужно и делается как раз движением нажал-потянул), тогда можно было бы задавать круг правой кнопкой мыши, но нужны и планшеты, поэтому как лучше сделать я не придумал)). Может подскажете как лучше реализовать такое? Есть одна мысль: городить кнопку на карте: "Задать круг". Ее нажимаешь и тогда пользователь в режиме редактирования.
Если тут будет замешано событие mousemove, то как определить зажата ли клавиша?