Задача: кликаешь по карте мышкой, запоминаются координаты клика, потом передвигаешь мышку - рисуется прямоугольник (начальные коорлинаты + текущие), опять кликаешь - прямоугольник остается. Т.е. такая вот система выделения участка карты.
Использую простой код:
<script type="text/javascript">
var x1,x2,y1,y2; //Координаты области
var st; //Если true, то сейчас идет выделение
var polygon; //Полигон
YMaps.jQuery(function () {
var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]
map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 9);
YMaps.Events.observe(map, map.Events.Click, function (map, mEvent) {
if (!st){
x1 = mEvent.getGeoPoint().getX(x2 = x1;
y1 = mEvent.getGeoPoint().getY(y2 = y1;
}else{
alert("Click!");
}
st = !st;
}
YMaps.Events.observe(map, map.Events.MouseMove, function (map, mEvent) {
if (st){
x2 = mEvent.getGeoPoint().getX(
y2 = mEvent.getGeoPoint().getY(
paintYandex(
}
}
function paintYandex()
{
map.removeOverlay(polygon);
polygon = new YMaps.Polygon([
new YMaps.GeoPoint(x1,y1),
new YMaps.GeoPoint(x1,y2),
new YMaps.GeoPoint(x2,y2),
new YMaps.GeoPoint(x2,y1),
new YMaps.GeoPoint(x1,y1)
]
map.addOverlay(polygon);
}
}
</script>
Проблема в том, что click не срабатывает (соответственно alert не всплывает). Т.е. когда идет перемещение мышки, совпровождающие рисование многоугольника, событие click на карте не обрабатывается: если кликнуть, когда происходит рисование многоугольника, то просто всплывает пустое окно (инфо).
Пожалуйста, помогите разобраться. Пример на сайте: http://shastox.com/test.html