如何在 mapbox 顶部添加 three.js 对象
How to add three.js object on top of mapbox
我目前正在使用 React、react-map-gl 和 three.js。我想渲染一个我在 react-map-gl 之上的 .obj。
如果 deck.gl code/react-map-gl 代码被注释掉,我目前通过以下方式成功地将我的 .obj 显示在屏幕上:
并在 render()
中:
<div
className='component-app'
data-test='component-app'>
<DeckGL
layers={this._renderLayers()}
controller={controller}
initialViewState={INITIAL_VIEW_STATE}
viewState={viewState}
onViewStateChange={this._onViewStateChange}>
{baseMap && (
<StaticMap
width={width}
height={height}
reuseMaps
mapStyle="mapbox://styles/mapbox/dark-v9"
preventStyleDiffing={true}
mapboxApiAccessToken={MAPBOX_TOKEN} />
)}
</DeckGL>
{this._loadObj()}
</div>
然而,有了这个,我的 .obj 文件总是被地图隐藏了。我想把它放在地图的顶部。我试过为所有这些组件编辑 z-index,但无济于事。将不胜感激。
知道了,答案在于简单地为我的车添加一个 ID canvas 然后增加 z-index:
app.js:
renderer.domElement.id = 'object-canvas';
css:
#object-canvas {
position: absolute;
z-index: 10;
}
我目前正在使用 React、react-map-gl 和 three.js。我想渲染一个我在 react-map-gl 之上的 .obj。
如果 deck.gl code/react-map-gl 代码被注释掉,我目前通过以下方式成功地将我的 .obj 显示在屏幕上:
并在 render()
中:
<div
className='component-app'
data-test='component-app'>
<DeckGL
layers={this._renderLayers()}
controller={controller}
initialViewState={INITIAL_VIEW_STATE}
viewState={viewState}
onViewStateChange={this._onViewStateChange}>
{baseMap && (
<StaticMap
width={width}
height={height}
reuseMaps
mapStyle="mapbox://styles/mapbox/dark-v9"
preventStyleDiffing={true}
mapboxApiAccessToken={MAPBOX_TOKEN} />
)}
</DeckGL>
{this._loadObj()}
</div>
然而,有了这个,我的 .obj 文件总是被地图隐藏了。我想把它放在地图的顶部。我试过为所有这些组件编辑 z-index,但无济于事。将不胜感激。
知道了,答案在于简单地为我的车添加一个 ID canvas 然后增加 z-index:
app.js:
renderer.domElement.id = 'object-canvas';
css:
#object-canvas {
position: absolute;
z-index: 10;
}