首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在deck.gl中使用数据?

如何在deck.gl中使用数据?
EN

Stack Overflow用户
提问于 2020-03-09 17:08:50
回答 2查看 647关注 0票数 0

我是deck.gl的新手,并且有一些issues.Whenever,我尝试使用API作为数据,就像我尝试使用以下api一样。

代码语言:javascript
复制
data: 'https://envirocar.org/api/stable/measurements'

但是它不能工作,或者如果我把api的数据放在一个json文件中,然后把它放在我当前的工作目录中,它就不能工作了,例如:

代码语言:javascript
复制
data:'../data_file.json'

即使.csv文件也不能工作,但是当我使用像following这样的数组形式的数据时,它可以工作。我不知道为什么,如果有人知道,请帮助我。

代码语言:javascript
复制
data: [
   {
      "type": "Feature",
      "geometry": {
         "type": "Point",
         "coordinates": [
            6.4847174678758375,
            51.22546715521443
         ]
      }
]

我说的是_renderLayers()中的数据。

代码语言:javascript
复制
import React, {Component} from 'react';
import {render} from 'react-dom';
import {StaticMap} from 'react-map-gl';
import DeckGL from '@deck.gl/react';
import {ScatterplotLayer} from '@deck.gl/layers';

const MAPBOX_TOKEN = process.env.MapboxAccessToken; 
const INITIAL_VIEW_STATE = {
  longitude: 6.4847174678758375,
  latitude: 51.22546715521443,
  zoom: 11,
  maxZoom: 16,
  pitch: 0,
  bearing: 0
};

export default class App extends Component {
  _renderLayers() {
    return [
      new ScatterplotLayer({
        id: 'scatter-plot',
        data: 'https://envirocar.org/api/stable/measurements',
        radiusScale: 10,
        radiusMinPixels: 0.25,
        getPosition: d => (d.features.geometry.coordinates),
        getFillColor: [255,0,255],
      })
    ];
  }

  render() {
    const mapStyle = 'mapbox://styles/mapbox/light-v9';

    return (
      <DeckGL layers={this._renderLayers()} initialViewState={INITIAL_VIEW_STATE} controller={true}>
        <StaticMap
          reuseMaps
          mapStyle={mapStyle}
          preventStyleDiffing={true}
          mapboxApiAccessToken={MAPBOX_TOKEN}
        />
      </DeckGL>
    );
  }
}

export function renderToDOM(container) {
  render(<App />, container);
}
EN

回答 2

Stack Overflow用户

发布于 2020-04-16 15:06:22

我建议下载数据并将其保存在本地。

票数 0
EN

Stack Overflow用户

发布于 2020-05-09 01:32:29

您需要像这样添加dataTransform:

代码语言:javascript
复制
export default class App extends Component {
  _renderLayers() {
    return [
      new ScatterplotLayer({
        id: 'scatter-plot',
        data: 'https://envirocar.org/api/stable/measurements',
        dataTransform: d => d.features,
        radiusScale: 10,
        radiusMinPixels: 0.25,
        getPosition: d => d.geometry.coordinates,
        getFillColor: [255,0,255],
      })
    ];
  }

另外,请注意对getPosition的更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60597435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档