A 3D globe for React featuring maps, imagery and terrain plus 2D map projections using the Web WorldWind virtual globe SDK from NASA and ESA.
npm install --save worldwind-react-globe
Create a Globe using the defaults.
import React, { Component } from 'react'
import Globe from 'worldwind-react-globe'
class App extends Component {
render () {
return (
<div>
<Globe />
</div>
)
}
}
Creates a Globe that fills the page.
- Adds layers to the Globe using layer type keys
defined in
Globe.layerTypes
- Sets the startup latitude and longitude coordinates (in decimal degrees)and the eye/camera altitude (in meters)
import React, { Component } from 'react'
import Globe from 'worldwind-react-globe'
import './App.css'
export default class App extends Component {
render() {
const layers = [
'eox-sentinal2-labels',
'coordinates',
'view-controls',
'stars',
'atmosphere-day-night'
];
return (
<div className='fullscreen'>
<Globe
ref={this.globeRef}
layers={layers}
latitude={34.2}
longitude={-119.2}
altitude={10e6}
/>
</div>
)
}
}
.fullscreen {
width: 100vw;
height: 100vh;
overflow: hidden;
}
Creates a Globe that fills the page.
- Adds layers to the Globe using layer type keys
defined in
Globe.layerTypes
- Sets and changes the globe's latitude and longitude coordinates and the eye/camera altitude via the component's state.
- Uses a
ref
object to get a references to the Globe
import React, { Component } from 'react'
import Globe from 'worldwind-react-globe'
import './App.css'
export default class App extends Component {
constructor(props) {
super(props)
this.state = {
lat: 34.2,
lon: -119.2,
alt: 10e6
}
this.globeRef = React.createRef();
}
render() {
const layers = [
'eox-sentinal2-labels',
'coordinates',
'view-controls',
'stars',
'atmosphere-day-night'
];
return (
<div className='fullscreen'>
<Globe
layers={layers}
latitude={this.state.lat}
longitude={this.state.lon}
altitude={this.state.alt}
/>
</div>
)
}
}
.fullscreen {
width: 100vw;
height: 100vh;
overflow: hidden;
}
Following is a list of the predefined layer type names available in Globe.layerTypes
.
Key | Value | Description |
---|---|---|
blue-marble | Blue Marble | Blue Marble Next Generation (BMNG) |
blue-marble-landsat | Blue Marble and LandSat | BMNG for oceans and seas with LandSat for land masses |
blue-marble-lowres | Background | Blue Marble low-resolution background image |
bing-aerial | Bing Aerial | Bing aerial imagery from Bing maps |
bing-aerial-labels | Bing Aerial with Labels | Bing aerial imagery with road and place name labels from Bing maps |
bing-roads | Bing Roads | Bing roads map from Bing maps |
eox-sentinal2 | EOX Sentinal-2 | Sentinal 2 imagery from EOX IT Services GmbH |
eox-sentinal2-labels | EOX Sentinal-2 with Labels | Sentinal 2 imagery with OpenStreetMap overlay from EOX IT Services GmbH |
eox-openstreetmap | EOX OpenStreetMap | OpenStreetMap from EOX IT Services GmbH |
usgs-topo | USGS Topographic | Topographic base map from the USGS |
usgs-imagery-topo | USGS Imagery Topographic | Imagery and topographic base map from the USGS |
renderables | Renderables | A general purpose layer for hosting shapes and markers |
compass | Compass | A compass displayed in upper right |
coordinates | Coordinates | View coordinates displayed on top or bottom of screen |
view-controls | View Controls | View controls displayed in bottom left |
atmosphere-day-night | Atmosphere and Day/Night | Atmosphere and day/night effects |
stars | Stars | Background star field |
tessellation | Tessellation | Shows terrain tessellation |
MIT © Bruce Schubert