Клуб API Карт

Выделение участка карты с помощью мыши.

xsh
17 января 2012, 14:43

Задача: кликаешь по карте мышкой, запоминаются координаты клика, потом передвигаешь мышку - рисуется прямоугольник (начальные коорлинаты + текущие), опять кликаешь - прямоугольник остается. Т.е. такая вот система выделения участка карты.

 

Использую простой код:

 

<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

 

 

 

1 комментарий
Подписаться на комментарии к посту

Проблема решена, нужно обрабатывать клик на Polygon.