Я не уверен, связано ли это с # 3498, но начнем:
Если у вас есть два частично перекрывающихся полигона в GeoJSON MultiPolygon в Leaflet 0.7.3, перекрывающаяся область заполняется. Но в мастере область перекрытия не заполняется, а область неперекрытия заполняется.
Вот пример GeoJSON:
{
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[
11.96485,
55.8434
],
[
11.868584,
55.8284
],
[
11.837216,
55.8925
],
[
11.863167,
55.915432
],
[
11.936167,
55.896618
],
[
11.964784,
55.858032
]
]
],
[
[
[
11.868584,
55.8284
],
[
11.761567,
55.81378
],
[
11.726833,
55.896
],
[
11.782117,
55.928215
],
[
11.8749,
55.92655
],
[
11.863167,
55.915432
],
[
11.936167,
55.896618
],
[
11.964784,
55.858032
],
[
11.96485,
55.8434
]
]
]
]
},
"type": "Feature",
"properties": {}
}
С уважением,
Джеспер
Попробуйте установить fillRule: 'nonzero'
в параметрах стиля многоугольника. См. Также https://github.com/Leaflet/Leaflet/pull/2834 , https://developer.mozilla.org/docs/Web/SVG/Attribute/fill-rule и https://mourner.github.io/. Leaflet / reference.html # path -fillrule
Пожалуйста, ответьте здесь после попытки.
Спасибо за помощь, Иван. Добавление fillRule: 'nonzero' устранило проблему.
Я, вероятно, также должен упомянуть, что также невозможно щелкнуть перекрывающиеся области, когда fillRule не является «ненулевым» (при условии, что прослушиватель событий прикреплен к слою).
Я не закрыл этот вопрос, так как вы можете подумать, является ли fillRule: 'nonzero' лучшим значением по умолчанию, чем 'evenodd' для функций типа "multipolygon".
С наилучшими пожеланиями,
Джеспер
Пока мы оставим значение по умолчанию 'evenodd'
.
Самый полезный комментарий
Попробуйте установить
fillRule: 'nonzero'
в параметрах стиля многоугольника. См. Также https://github.com/Leaflet/Leaflet/pull/2834 , https://developer.mozilla.org/docs/Web/SVG/Attribute/fill-rule и https://mourner.github.io/. Leaflet / reference.html # path -fillruleПожалуйста, ответьте здесь после попытки.