Leaflet: Überlappende GeoJSON MultiPolygon-Polygone nicht gefüllt

Erstellt am 21. Aug. 2015  ·  3Kommentare  ·  Quelle: Leaflet/Leaflet

Ich bin mir nicht sicher, ob dies mit #3498 zusammenhängt, aber los gehts:

Wenn Sie zwei sich teilweise überlappende Polygone in einem GeoJSON MultiPolygon in Leaflet 0.7.3 haben, wird der überlappende Bereich gefüllt. Aber im Master wird der überlappende Bereich nicht gefüllt, während der nicht überlappende Bereich ist.

Hier ist ein Beispiel für 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": {}
}

Mit freundlichen Grüße,
Jesper

bug

Hilfreichster Kommentar

Versuchen Sie, fillRule: 'nonzero' in Ihren Polygon-Styling-Optionen einzustellen. Siehe auch https://github.com/Leaflet/Leaflet/pull/2834 , https://developer.mozilla.org/docs/Web/SVG/Attribute/fill-rule und https://mourner.github.io/ Leaflet/reference.html#path -fillrule

Bitte antworten Sie hier, nachdem Sie das versucht haben.

Alle 3 Kommentare

Versuchen Sie, fillRule: 'nonzero' in Ihren Polygon-Styling-Optionen einzustellen. Siehe auch https://github.com/Leaflet/Leaflet/pull/2834 , https://developer.mozilla.org/docs/Web/SVG/Attribute/fill-rule und https://mourner.github.io/ Leaflet/reference.html#path -fillrule

Bitte antworten Sie hier, nachdem Sie das versucht haben.

Danke für die Hilfe Ivan. Das Hinzufügen von fillRule: 'non zero' hat das Problem behoben.

Ich sollte wahrscheinlich auch erwähnen, dass es auch nicht möglich ist, auf die überlappenden Bereiche zu klicken, wenn fillRule nicht 'ungleich Null' ist (vorausgesetzt, dass ein Ereignis-Listener an den Layer angehängt ist).

Ich habe das Problem nicht geschlossen, da Sie möglicherweise überlegen möchten, ob fillRule: 'non zero' ein besserer Standard als 'evenodd' für Features vom Typ "Multipolygon" ist.

Mit freundlichen Grüßen,
Jesper

Wir werden 'evenodd' als Standard belassen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen