Leaflet:反转/倒置多边形样式

8

我有一个以geojson格式呈现的省份边界多边形。我想在地图上显示该省份,使非省份区域变为灰色(不透明),而省份区域则不带样式。我该如何实现这一目标?

1个回答

17

根据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);

JSfiddle

或者将外部多边形设置为覆盖整个世界:

[[90, -180],
 [90, 180],
 [-90, 180],
 [-90, -180]]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接