Внутренний контур полигона вырезается, только если добавлять его как одиночный объект
Если полигон с внутренним контуром добавляю на карту так:
var myGeoObject = new ymaps.GeoObject({
geometry: {
type: "Polygon",
coordinates: [
[
[53.34, 43.07], [65.92, 81.91], [50.40, 98.90]
],
[
[53.50, 82.48], [58.42, 87.57], [58.05, 75.04]
]
]
}
});
myMap.geoObjects.add(myGeoObject);
То он отображается правильно (с внутренним вырезанным контуром).
Если же добавляю его через ObjectManager, то внутренний контур не вырезается:
objectManagerSourses.add({
type: 'Feature',
id: 7777,
geometry: {
type: 'Polygon',
coordinates: [
[
[53.34, 43.07], [65.92, 81.91], [50.40, 98.90]
],
[
[53.34, 43.07], [65.92, 81.91], [50.40, 98.90]
]
]
}
});
myMap.geoObjects.add(objectManagerSourses);
Как можно добавить на карту большое количество подобных полигонов?
Ответы (1 шт):
Автор решения: YaCor'
→ Ссылка
Прописывайте полигонам fillRule как evenOdd. Для обычных полигонов API Яндекс Карт это значение и так задаётся по умолчанию, но в ObjectManager оно по дефолту почему-то nonZero.
objectManagerSourses.add({
type: 'Feature',
id: 7777,
geometry: {
type: 'Polygon',
coordinates: [
[[53.34, 43.07], [65.92, 81.91], [50.40, 98.90]],
[[53.34, 43.07], [65.92, 81.91], [50.40, 98.90]]
],
fillRule: "evenOdd"
}
});
По работе же с большим числом объектов у Яндекса в документации описано несколько возможных вариантов - выбирайте, какой вам реализовать будет удобней.