我是deck.gl的新手,并且有一些issues.Whenever,我尝试使用API作为数据,就像我尝试使用以下api一样。
data: 'https://envirocar.org/api/stable/measurements'但是它不能工作,或者如果我把api的数据放在一个json文件中,然后把它放在我当前的工作目录中,它就不能工作了,例如:
data:'../data_file.json'即使.csv文件也不能工作,但是当我使用像following这样的数组形式的数据时,它可以工作。我不知道为什么,如果有人知道,请帮助我。
data: [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
6.4847174678758375,
51.22546715521443
]
}
]我说的是_renderLayers()中的数据。
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);
}发布于 2020-04-16 15:06:22
我建议下载数据并将其保存在本地。
发布于 2020-05-09 01:32:29
您需要像这样添加dataTransform:
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的更改。
https://stackoverflow.com/questions/60597435
复制相似问题