Leaflet: Перекрывающиеся многоугольники GeoJSON MultiPolygon не заполнены

Созданный на 21 авг. 2015  ·  3Комментарии  ·  Источник: Leaflet/Leaflet

Я не уверен, связано ли это с # 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

Пожалуйста, ответьте здесь после попытки.

Все 3 Комментарий

Попробуйте установить 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' .

Была ли эта страница полезной?
0 / 5 - 0 рейтинги