Leaflet: Chevauchement des polygones GeoJSON MultiPolygon non remplis

Créé le 21 août 2015  ·  3Commentaires  ·  Source: Leaflet/Leaflet

Je ne sais pas si cela est lié à #3498 mais c'est parti :

Si vous avez deux polygones partiellement superposés dans un GeoJSON MultiPolygon dans Leaflet 0.7.3, la zone de chevauchement est remplie. Mais dans le master, la zone de chevauchement n'est pas remplie alors que la zone de non-chevauchement l'est.

Voici un exemple 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": {}
}

Sincères amitiés,
Jesper

bug

Commentaire le plus utile

Essayez de définir fillRule: 'nonzero' dans vos options de style de polygone. Voir aussi https://github.com/Leaflet/Leaflet/pull/2834 , https://developer.mozilla.org/docs/Web/SVG/Attribute/fill-rule et https://mourner.github.io/ Leaflet/reference.html#path -fillrule

Veuillez répondre ici après avoir essayé cela.

Tous les 3 commentaires

Essayez de définir fillRule: 'nonzero' dans vos options de style de polygone. Voir aussi https://github.com/Leaflet/Leaflet/pull/2834 , https://developer.mozilla.org/docs/Web/SVG/Attribute/fill-rule et https://mourner.github.io/ Leaflet/reference.html#path -fillrule

Veuillez répondre ici après avoir essayé cela.

Merci pour l'aide Ivan. L'ajout de fillRule : 'nonzero' a résolu le problème.

Je devrais probablement aussi mentionner qu'il n'est pas non plus possible de cliquer sur les zones de chevauchement lorsque fillRule n'est pas « non nul » (en supposant qu'un écouteur d'événement est attaché à la couche).

Je n'ai pas clos le problème car vous voudrez peut-être vous demander si fillRule: 'nonzero' est une meilleure valeur par défaut que 'evenodd' pour les fonctionnalités de type "multipolygon".

Meilleures salutations,
Jesper

Nous laisserons 'evenodd' par défaut pour le moment.

Cette page vous a été utile?
0 / 5 - 0 notes