【问题标题】:Mapbox GL JS - How to add a point cloud layerMapbox GL JS - 如何添加点云层
【发布时间】: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


【解决方案1】:

Mapboxlayer 中的数据属性不要使用文件名,而应该使用 json 对象。

mapboxlayer 无法直接读取您的 json 文件。供参考使用这个

https://www.youtube.com/watch?v=x6UcMcAWNMo&t=182s

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
猜你喜欢
  • 2019-08-27
  • 2018-09-24
  • 1970-01-01
  • 2018-12-03
  • 1970-01-01
  • 2021-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多