これが#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": {}
}
敬具、
ジェスパー
ポリゴンスタイリングオプションで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
それを試した後、ここに返信してください。
Ivanの助けに感謝します。 fillRuleの追加: 'nonzero'で問題が修正されました。
また、fillRuleが「非ゼロ」でない場合(イベントリスナーがレイヤーに接続されていると仮定)、重複する領域をクリックすることもできないことにも言及する必要があります。
「multipolygon」タイプの機能では、fillRule:「nonzero」が「evenodd」よりも優れたデフォルトであるかどうかを検討する必要があるため、この問題は解決していません。
よろしくお願いします、
ジェスパー
今のところ、デフォルトとして'evenodd'
を残します。
最も参考になるコメント
ポリゴンスタイリングオプションで
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それを試した後、ここに返信してください。