Maps 是否可以使用Mapbox绘制带有高程(高度)的线串?
我正在使用react mapbox gl,试图将带有树坐标的LineString传递到Maps 是否可以使用Mapbox绘制带有高程(高度)的线串?,maps,mapbox,mapbox-gl-js,mapbox-gl,Maps,Mapbox,Mapbox Gl Js,Mapbox Gl,我正在使用react mapbox gl,试图将带有树坐标的LineString传递到[[58.7541522,55.7444,10],[48.7041522,55.7444,80]]到GeoJSONLayer和line-层 <GeoJSONLayer data={feature} linePaint={{ 'line-color': '#3bb2d0',
[[58.7541522,55.7444,10],[48.7041522,55.7444,80]]
到GeoJSONLayer
和line-层
<GeoJSONLayer
data={feature}
linePaint={{
'line-color': '#3bb2d0',
'line-width': 2,
}}
/>
但是它不起作用有一种方法可以使用mapbox gl js,使用
填充拉伸
并扩展线串,使其表现得像一个非常薄的多边形。
您可以使用lineToPolygon
from@turp/line to polygon
将线串转换为多边形,以获得可填充的GeoJSON,如下所示:
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"height":40},"geometry":{"type":"Polygon","coordinates":[[[58.7541522,55.7444],[48.7041522,55.7444],[48.704152205,55.744405],[58.754152205,55.744405],[58.7541522,55.7444]]]}}]}
然后使用填充拉伸
图层类型将其添加到地图
<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"]
}}
/>
下面是完整的示例:这在Mapbox GL JS中还不受支持。DeckGL似乎确实如此。有一种方法可以使用填充拉伸将线串转换为非常薄的多边形来完成此操作。Thanx@ManishRaj!你能添加一个指向这个代码沙盒页面的链接吗?添加了@GregoryOrlov