隐藏多边形

时间:2017-03-20 17:53:30

标签: javascript mapbox mapbox-gl-js mapbox-gl turfjs

我使用Mapbox GL和Turf.js使用以下代码在地图上屏蔽纽约市的自治市镇。首先,我获取了要展示的区域的边界框,使用turf.buffer()展开该框,然后使用turf.difference()来剪切'走出纽约市的形状,用纯色填充留下的正空间来制作我的面具。

虽然这个面具确实隐藏了'nyc-mask'中存在的功能。层,一些标签恰好延伸到未掩盖的空间。我希望能够隐藏发现自己在蒙面多边形内的所有特征。虽然这似乎有问题,因为一些道路和水道将存在于两个空间中,我希望可能存在的任何解决方案将允许我仅过滤文本特征。

nycBounds = turf.bbox(nycFeature)
nycPoly = turf.bboxPolygon(nycBounds)
nycBoundsBuffer = turf.buffer(nycPoly, 20, 'miles')
nycPolyBuffer = turf.buffer(nycPoly, 100, 'miles')
mask = turf.difference(nycPolyBuffer, nycFeature)
map.setMaxBounds(turf.bbox(nycBoundsBuffer))
map.addSource('nyc-mask', {
   'type': 'geojson',
   'data': mask
})
map.addLayer({
   'id': 'nyc-mask',
   'type': 'fill',
      'source': 'nyc-mask',
      'paint': {
         'fill-color': '#addef0'
         'fill-opacity': 0.999
      }
   }
})

这必须是可能的,我还没有找到任何东西开始前进......

0 个答案:

没有答案