I want to use a leaflet plugin called leaflet-geotiff (https://github.com/stuartmatthews/leaflet-geotiff) but I'm using leaflet react. Is it possible for me to convert this plugin to a leaflet-react version? Thank you guys.
Asked
Active
Viewed 2,272 times
1 Answers
5
Here is an instruction on how to utilize leaflet-geotiff
library in react-leaflet
:
1) install leaflet-geotiff
package
2) it is proposed to introduce the following custom components:
import React, { Component } from "react";
import { withLeaflet, MapLayer } from "react-leaflet";
import L from "leaflet";
import "leaflet-geotiff"
import "leaflet-geotiff/leaflet-geotiff-plotty"
import "leaflet-geotiff/leaflet-geotiff-vector-arrows"
class GeotiffLayer extends MapLayer {
createLeafletElement(props) {
const { url, options } = props;
return L.leafletGeotiff(url, options);
}
componentDidMount() {
const { map } = this.props.leaflet;
this.leafletElement.addTo(map);
}
}
export const PlottyGeotiffLayer = withLeaflet(props => {
const { options, layerRef } = props;
options.renderer = new L.LeafletGeotiff.Plotty(options);
return <GeotiffLayer ref={layerRef} {...props} />;
});
export const VectorArrowsGeotiffLayer = withLeaflet(props => {
const { options, layerRef } = props;
options.renderer = new L.LeafletGeotiff.VectorArrows(options);
return <GeotiffLayer ref={layerRef} {...props} />;
});
3) and finally add layers to the map
<Map
center={this.props.center}
zoom={this.props.zoom}
length={4}
>
<TileLayer
url="https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw"
attribution='<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>'
id="mapbox.streets"
/>
<PlottyGeotiffLayer
layerRef={this.windSpeedRef}
url={windSpeedUrl}
options={windSpeedOptions}
/>
<VectorArrowsGeotiffLayer
layerRef={this.windDirectionRef}
url={windDirectionUrl}
options={windDirectionOptions}
/>
</Map>
Result

Vadim Gremyachev
- 57,952
- 20
- 129
- 193
-
1Thank you this worked well, only problem is I cant actually see the layer of the geotiff. It isnt visible on the demo either – Ryan Jan 30 '19 at 09:17
-
@Ryan, surprisingly i could see both layers (vector arrows & plotty), see the updated answer – Vadim Gremyachev Jan 30 '19 at 09:25