【发布时间】:2020-07-21 15:08:06
【问题描述】:
我有想要在 Mapbox gl js 上渲染的点云数据。我找到了一个示例here,它使用deck gl 工具来实现这一点:
<html>
<head>
<title>Deckgl RGB PointCloud + Mapbox</title>
<script src="https://unpkg.com/deck.gl@^7.0.0/dist.min.js"></script>
<script src="https://api.tiles.mapbox.com/mapbox-gl-js/v0.54.0/mapbox-gl.js"></script>
<link rel="stylesheet" type="text/css" href="https://api.tiles.mapbox.com/mapbox-gl-js/v0.54.0/mapbox-gl.css">
<style>
body {
background-color: #000000;
margin: 0;
}
#map {
height: 100vh;
width: 100%;
margin: 0 auto;
}
</style>
</head>
<body>
<div id="map"></div>
</body>
<script type="text/javascript">
const { MapboxLayer, PointCloudLayer } = deck;
//REPLACE WITH YOUR MAPBOX ACCESS TOKEN
mapboxgl.accessToken = 'your token here';
const map = new mapboxgl.Map({
container: 'map',
//REPLACE THIS WITH THE MAPBOX STYLE URL OF YOUR CHOICE
style: 'mapbox://styles/allanwalker/cjpn18pta036u2roe5ootbwwp?fresh=true',
center: [-122.476622, 37.817516],
zoom: 15.40,
bearing: -34.40,
pitch: 60
});
map.on('style.load', () => {
map.addLayer(new MapboxLayer({
id: 'deckgl-PointCloudLayer',
type: PointCloudLayer,
//REPLACE THIS WITH THE URL OF THE FILE
data: 'array.json',
getPosition: d => [d[0], d[1], d[2]],
getColor: d => [d[3], d[4], d[5]],
sizeUnits: 'meters',
pointSize: 0.75,
opacity: 1
}));
});
</script>
</html>
但是这个例子的问题是导入的数据是json格式(代码在this article。滚动到底部查看最终结果)。
我拥有的数据是 .ply 和 .tif 格式。
我的问题是,使用给定的示例,我如何以 .ply 或 .tif 格式导入我的数据?
【问题讨论】:
-
试着改进你的问题,这样我就可以给你一些解决方案。你已经尝试过吗?你有一些代码吗?也许jsfiddle?你是否使用 ReactJs?
-
如果我们能在聊天室讨论它,我将不胜感激。我尝试与您创建一个,但由于某种原因,“与该用户开始新房间”选项不可用。
-
我不知道聊天室,但试着按照我已经说过的,添加一些信息:你是否在 React 中使用它?你尝试什么?在这种情况下,我无法发布答案。
标签: javascript mapbox deck.gl