Есть способ сделать это с помощью mapbox-gl-js, используя fill-extrusion
и расширяя линейную линию так, чтобы она действовала как действительно тонкий многоугольник.Вы можете использовать lineToPolygon
из @turf/line-to-polygon
, чтобы преобразовать lineStrings в многоугольник, чтобы получить GeoJSON с возможностью заполнения:
<Source
id="linestr"
geoJsonSource={{
type: "geojson",
data: geojson
}}
/>
<Layer
id="linestr"
sourceId="linestr"
type="fill-extrusion"
paint={{
"fill-extrusion-color": "#f00",
"fill-extrusion-base": 0.5,
"fill-extrusion-opacity": 0.5,
"fill-extrusion-height": ["get", "height"]
}}
/>
Вот полный пример: https://codesandbox.io/s/trusting-currying-fpbqf