@edmoiseenkoff

Как решить проблему с проверкой попадания маркера в полигон?

Доброго времени суток.

Есть такой код:
jsbin.com/isESifA/4/edit

Есть полигон, при клике на него, включается редактирование этого полигона. Можно изменять его вершины, добавлять и удалять. И ещё есть два маркера, которые находятся вне этого полигона.
Если при редактировании этого полигона, какой-то из маркеров попадает в границы полигона, то маркер должен поменять цвет, с красного на зелёный.

Если маркер не лежит в пределах полигона, и добавлять новую точку так, чтобы маркер попал в полигон, то все нормально срабатывает, и маркер меняет цвет.
Если же не добавлять новой точки, а перетаскивать существующую, так чтобы маркер был в полигоне, то маркер не меняет цвет, а поменяет цвет после следующего движения (как-бы отстает в один шаг).

Как можно решить эту проблему, чтоб не было этого отставания в один шаг, и маркер менял цвет.
Большое спасибо!
  • Вопрос задан
  • 4287 просмотров
Решения вопроса 1
dima_horror
@dima_horror
Еще пол часика и я нашел ответ. JSBIN
polygon.editor.geometry.events.add('pixelgeometrychange', function(e1){
    var objectsInsidePolygon = geoQuery.searchInside(e1.originalEvent.target);
    objectsInsidePolygon.setOptions('preset', 'islands#greenDotIcon');
    // Оставшиеся объекты - красными.
    geoQuery.remove(objectsInsidePolygon).setOptions('preset', 'islands#redDotIcon');
  });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы