6

geojson 形式の州境界ポリゴンがあります。私が望むのは、この州をマップ上に表示し、非州エリアをグレー表示 (不透明) し、州エリアをスタイルなしで表示することです。どうすればこれを達成できますか?

4

1 に答える 1

15

Polygon api ドキュメントから:

緯度経度の配列の配列を渡すことで、穴のある多角形を作成することもできます。最初の緯度経度配列は外部リングを表し、残りは内部の穴を表します。

これを使用して、外側のリング用に非常に大きなポリゴンを作成し、州を内側の穴として切り取ることができると思います。もちろん、大きなポリゴンよりも大きなレベルにズームすると、ぎこちなく見えます。おそらく、これが起こらないように最小ズーム レベルを設定するのが最善でしょう。

var polygon = L.polygon(
    [[[52, -1],
      [52, 1],
      [50, 1],
      [50, -1]], //outer ring
     [[51.509, -0.08],
      [51.503, -0.07], 
      [51.51, -0.047]]] // cutout
    ).addTo(map);

JSフィドル

または、世界全体をカバーするように外側のポリゴンを設定します。

[[90, -180],
 [90, 180],
 [-90, 180],
 [-90, -180]]
于 2013-08-07T15:44:21.143 に答える