Можно ли нарисовать LineString с возвышением (высотой) с Mapbox? - PullRequest
0 голосов
/ 19 сентября 2019

Я использую response-mapbox-gl и пытался передать LineString с координатами дерева [[[58.7541522, 55.7444, 10], [48.7041522, 55.7444, 80]]] в GeoJSONLayer и в строку- Layer

 <GeoJSONLayer
                data={feature}
                linePaint={{
                    'line-color': '#3bb2d0',
                    'line-width': 2,
                }}
/>

Но это не работает

1 Ответ

1 голос
/ 20 сентября 2019

Есть способ сделать это с помощью 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

...