@edmoiseenkoff

Яндекс.Карты, пересечение полигонов: как?

Есть следующий код jsbin.com/feqal/1/edit
Вкратце суть: есть 2 полигона, сами по себе они черного цвета, если же они пересекаются, то они должны становится красного цвета (или хотя бы один из них).

Пользуюсь ymaps.geoQuery searchIntersect, вопрос в чем: если ребра полигона лежат друг на друге (т.е. одинаковые вершины), API считает, что полигоны пересекаются. Можно ли как-то такой случай считать не пересечением?

Спасибо большое.

var polyOptions = {
  fillColor:'#000000',
  strokeColor:'#000000', 
  strokeWidth: 2, 
  fillOpacity: 0.3
};

var bounds1 = [
  [
    [55.71661243639541, 37.45460571289062],
    [55.82344443031646, 37.542496337890604],
    [55.691797789925474, 37.59330810546872]
  ], []
];
var bounds2 = [
  [
    [55.82344443031646, 37.542496337890604],
    [55.691797789925474, 37.59330810546872],
    [55.701880648597864, 37.771835937499986],
    [55.81261980047947, 37.78007568359372]
  ], []
];
var polygon1;
var polygon2;

var map;
ymaps.ready(init);

function init () {
  map = new ymaps.Map('map', {
    center:[55.76, 37.64],
    zoom:10
  });
  
  map.events.add(['click'], function(e){
    console.log(e.get('coords'));
  });
  
  polygon1 = new ymaps.Polygon(bounds1, {}, polyOptions);
  polygon2 = new ymaps.Polygon(bounds2, {}, polyOptions);
  map.geoObjects.add(polygon1);
  map.geoObjects.add(polygon2);
  
  objects = ymaps.geoQuery(polygon1);
  var objectsInsideCircle = objects.searchIntersect(polygon2);
  objectsInsideCircle.setOptions('fillColor', '#FF0000');
  
}
  • Вопрос задан
  • 4302 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Graph
Ну они у вас пересекаются - есть же линия пересечения. Граница это это часть полигона. Апи работает правильно.
Ответ написан
Ваш ответ на вопрос

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

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