Leaflet: Polígonos GeoJSON MultiPolygon sobrepostos não preenchidos

Criado em 21 ago. 2015  ·  3Comentários  ·  Fonte: Leaflet/Leaflet

Não tenho certeza se isso está relacionado ao # 3498, mas vamos lá:

Se você tiver dois polígonos parcialmente sobrepostos em um GeoJSON MultiPolygon no Folheto 0.7.3, a área de sobreposição será preenchida. Mas no mestre, a área de sobreposição não é preenchida enquanto a área de não sobreposição é.

Aqui está um exemplo 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": {}
}

Atenciosamente,
Jesper

bug

Comentários muito úteis

Tente definir fillRule: 'nonzero' nas opções de estilo do polígono. Veja também https://github.com/Leaflet/Leaflet/pull/2834 , https://developer.mozilla.org/docs/Web/SVG/Attribute/fill-rule e https://mourner.github.io/ Leaflet / reference.html # path -fillrule

Por favor, responda aqui depois de tentar isso.

Todos 3 comentários

Tente definir fillRule: 'nonzero' nas opções de estilo do polígono. Veja também https://github.com/Leaflet/Leaflet/pull/2834 , https://developer.mozilla.org/docs/Web/SVG/Attribute/fill-rule e https://mourner.github.io/ Leaflet / reference.html # path -fillrule

Por favor, responda aqui depois de tentar isso.

Obrigado pela ajuda Ivan. Adicionar fillRule: 'diferente de zero' corrigiu o problema.

Devo provavelmente também mencionar que também não é possível clicar nas áreas sobrepostas quando fillRule não é 'diferente de zero' (supondo que um ouvinte de evento esteja anexado à camada).

Não resolvi o problema, pois você pode querer considerar se fillRule: 'diferente de zero' é um padrão melhor do que 'evenodd' para recursos do tipo "multipolígono".

Atenciosamente,
Jesper

Vamos deixar 'evenodd' como o padrão por enquanto.

Esta página foi útil?
0 / 5 - 0 avaliações