Leaflet: 重複するGeoJSONMultiPolygonポリゴンが塗りつぶされていません

作成日 2015年08月21日  ·  3コメント  ·  ソース: Leaflet/Leaflet

これが#3498に関連しているかどうかはわかりませんが、ここで説明します。

Leaflet0.7.3のGeoJSONMultiPolygonに2つの部分的にオーバーラップしているポリゴンがある場合、オーバーラップしている領域が塗りつぶされます。 ただし、マスターでは、重なり合う領域は埋められませんが、重なり合わない領域は埋められます。

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

敬具、
ジェスパー

bug

最も参考になるコメント

ポリゴンスタイリングオプションでfillRule: 'nonzero'を設定してみてください。 参照してくださいhttps://github.com/Leaflet/Leaflet/pull/2834https://developer.mozilla.org/docs/Web/SVG/Attribute/fill-rulehttps://mourner.github.io/ Leaflet / reference.html#path -fillrule

それを試した後、ここに返信してください。

全てのコメント3件

ポリゴンスタイリングオプションでfillRule: 'nonzero'を設定してみてください。 参照してくださいhttps://github.com/Leaflet/Leaflet/pull/2834https://developer.mozilla.org/docs/Web/SVG/Attribute/fill-rulehttps://mourner.github.io/ Leaflet / reference.html#path -fillrule

それを試した後、ここに返信してください。

Ivanの助けに感謝します。 fillRuleの追加: 'nonzero'で問題が修正されました。

また、fillRuleが「非ゼロ」でない場合(イベントリスナーがレイヤーに接続されていると仮定)、重複する領域をクリックすることもできないことにも言及する必要があります。

「multipolygon」タイプの機能では、fillRule:「nonzero」が「evenodd」よりも優れたデフォルトであるかどうかを検討する必要があるため、この問題は解決していません。

よろしくお願いします、
ジェスパー

今のところ、デフォルトとして'evenodd'を残します。

このページは役に立ちましたか?
0 / 5 - 0 評価