概要
plunkerでdeck.glやってみた。
ArcLayer、使ってみた。
写真
サンプルコード
const {Deck, ArcLayer, GeoJsonLayer, SolidPolygonLayer, _GlobeView} = deck;
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: 20,
longitude: 30,
zoom: 0
};
new Deck({
views: new _GlobeView(),
initialViewState: INITIAL_VIEW_STATE,
controller: true,
layers: [new SolidPolygonLayer({
id: 'background',
data: [
[[-180, 90], [0, 90], [180, 90], [180, -90], [0, -90], [-180, -90]]
],
opacity: 0.5,
getPolygon: d => d,
stroked: false,
filled: true,
getFillColor: [5, 10, 40]
}),
new GeoJsonLayer({
id: 'base-map',
data: COUNTRIES,
stroked: true,
filled: true,
lineWidthMinPixels: 2,
getLineColor: [5, 10, 40],
getFillColor: [15, 40, 80]
}),
new GeoJsonLayer({
id: 'airports',
data: AIR_PORTS,
filled: true,
pointRadiusMinPixels: 2,
pointRadiusScale: 2000,
getPointRadius: f => 11 - f.properties.scalerank,
getFillColor: [200, 0, 80, 180],
pickable: true,
autoHighlight: true,
onClick: info => info.object && alert(`${info.object.properties.name} (${info.object.properties.abbrev})`)
}),
new 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
})]
});
成果物
以上。
