A minimal React wrapper of OpenLayers 5+ written in TypeScript
npm install react-openlayers --save-dev
import {
interaction, layer, custom, control, //name spaces
Interactions, Overlays, Controls, //group
Map, Layers, Overlay, Util //objects
} from "react-openlayers";
Example
<Map view={{center: [0, 0], zoom: 2}} onClick={showPopup}>
<Layers>
<layer.Tile/>
<layer.Vector source={markers} style={markers.style} zIndex="1" />
</Layers>
<Overlays>
<Overlay
ref={comp => this.overlayComp = comp}
element="#popup" />
</Overlays>
<Controls attribution={false} zoom={true}>
<control.Rotate />
<control.ScaleLine />
<control.FullScreen />
<control.OverviewMap />
<control.ZoomSlider />
<control.ZoomToExtent />
<control.Zoom />
</Controls>
<Interactions>
<interaction.Select style={selectedMarkerStyle} />
<interaction.Draw source={markers} type='Point' />
<interaction.Modify features={markers.features} />
</Interactions>
</Map>
<custom.Popup ref={comp => this.popupComp = comp}>
</custom.Popup>
It strictly follows OpenLayers 3+ API documention
$ git clone https://github.com/Liquid-Zhangliquan/react-openlayers.git
$ cd react-openlayers
$ npm install
$ npm start
npm run
: List all available tasksnpm start
: Runapp
directory for development usingwebpack-dev-server
with port 9001npm run clean
: Remove dist foldernpm run clean:dist
: Clean up unnecessary dist folder within dist and app directorynpm run build:umd
: Build UMD modulereact-openlayers.umd.js
npm run build:app
: Buildapp/build/app.js
for runnable examplesnpm run build
: Build all(build:ngc, build:umc, build:app, and clean:dist)