examples/get-started/react/basic/app.js (58 lines of code) (raw):
import React from 'react';
import {render} from 'react-dom';
import DeckGL, {GeoJsonLayer, ArcLayer} from 'deck.gl';
// source: Natural Earth http://www.naturalearthdata.com/ via geojson.xyz
const COUNTRIES =
'https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_50m_admin_0_scale_rank.geojson'; //eslint-disable-line
const AIR_PORTS =
'https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_10m_airports.geojson';
const INITIAL_VIEW_STATE = {
latitude: 51.47,
longitude: 0.45,
zoom: 4,
bearing: 0,
pitch: 30
};
function Root() {
const onClick = info => {
if (info.object) {
// eslint-disable-next-line
alert(`${info.object.properties.name} (${info.object.properties.abbrev})`);
}
};
return (
<DeckGL controller={true} initialViewState={INITIAL_VIEW_STATE}>
<GeoJsonLayer
id="base-map"
data={COUNTRIES}
stroked={true}
filled={true}
lineWidthMinPixels={2}
opacity={0.4}
getLineColor={[60, 60, 60]}
getFillColor={[200, 200, 200]}
/>
<GeoJsonLayer
id="airports"
data={AIR_PORTS}
filled={true}
pointRadiusMinPixels={2}
pointRadiusScale={2000}
getRadius={f => 11 - f.properties.scalerank}
getFillColor={[200, 0, 80, 180]}
pickable={true}
autoHighlight={true}
onClick={onClick}
/>
<ArcLayer
id="arcs"
data={AIR_PORTS}
dataTransform={d => d.features.filter(f => f.properties.scalerank < 4)}
getSourcePosition={f => [-0.4531566, 51.4709959]}
getTargetPosition={f => f.geometry.coordinates}
getSourceColor={[0, 128, 200]}
getTargetColor={[200, 0, 80]}
getWidth={1}
/>
</DeckGL>
);
}
/* global document */
render(<Root />, document.body.appendChild(document.createElement('div')));