Ответы пользователя по тегу Яндекс.Карты
  • Как отслеживать создание многоугольника на яндекс карте?

    @dmz9
    если присмотреться то в коде добавляется мониторинг состояния редактора полигона.
    var stateMonitor = new ymaps.Monitor(myPolygon.editor.state);
              stateMonitor.add("drawing", function (newValue) {
                  myPolygon.options.set("strokeColor", newValue ? '#FF0000' : '#0000FF');
              });

    мониторится "поле" state.
    к нему документация вот тут https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/refe...
    там где табличка с описанием написано справа что кроме "drawing" есть еще свойство "editing", т.е. состояние "редактируется", и оно булевого типа.
    в обработчиках которые вешаются на свойства, вроде как, передается не только newValue, но и должно передаваться oldValue, поставь его в вызов функции вторым аргументом и проверь так или нет.
    конец редактирования это если newValue==false, oldValue==true, это и будет по идее моментом окончания создания.
    Ответ написан
    1 комментарий
  • Как сделать, чтобы по клику на нужный адрес, карта показывала это место?

    @dmz9
    строго говоря нарушен принцип "не повторяйся".
    на сайте примере под каждый отдельный селектор тот же самый код, меняются только числа координат.
    само собой напрашивается вынесение этих соответсвий в отдельный js-объект вида
    var coords = {
    	'showMap_1':{
    		[55.66837606904998,37.484163499999944]
    	},
    	'showMap_2':{
    		[55.66266356906509,37.478000999999914]
    	},
    	...
    }

    что интересно - в странице подключен джиквери но скрипт использует ванильные селекторы.
    вобщем, вместо 10 обработчиков на каждом элементе - нужен один вот такой
    $('tr[id=^showMap]').click(function() {
        myMap.setZoom( 15 );
        myMap.panTo(coords[$(this).attr('id')],{flying:1});
        TweenMax.to(window, 0.5, {scrollTo:{y: document.getElementById("map").offsetTop-10}})
    });

    при клике берется идентификатор строки таблицы, по нему сразу получается соответствие из coords по ключу.
    само собой coords должен быть в области видимости рядом с функцией, либо в каком то глобальном объекте (если список координат каждый раз - динамический и пишется в коде страницы на сервере)
    Ответ написан
    Комментировать