leaflet-geotiff
leaflet-geotiff copied to clipboard
Detect the GeoTIFF has been fully loaded
Hi,
is is possible to detect when the geotiff has been loaded to, for example, get the min and the max values from the main?
I mean: based on the version 2 of this library, I have added the lines that you can see in this snippet below, to get the min and the max values:
this.tiff = GeoTIFF.parse(arrayBuffer);
if (typeof(this.options.image)=='undefined') {
this.options.image = 0;
}
if (typeof(this.options.band)=='undefined') {
this.options.band = 0;
}
this.setBand(this.options.band);
// I have added these lines below to the original library
this.min = this.raster.data
.filter((val) => val !== this.options.noDataValue)
.reduce((a, b) => Math.min(a, b));
this.max = this.raster.data
.filter((val) => val !== this.options.noDataValue)
.reduce((a, b) => Math.max(a, b));
And on my main code I have this:
var windSpeed = L.leafletGeotiff(
url= filename,
options={
band: 0,
displayMin: 0,
displayMax: 30,
name: 'Wind speed',
colorScale: 'mycolorscale',
clampLow: false,
clampHigh: true,
//vector:true,
arrowSize: 20,
// opacity: 0.3
}
).addTo(mymap);
console.log(windSpeed.min);
console.log(windSpeed.max);
but I get 'undefined' from both of console.log() calls I guess because the AJAX request is asynchronous. Since I don't want to use a synchronous AJAX request, how can I get the min and max values?
Javier
Hi how can i change the lat lng bounds from australia to another location
Hi @tirengarfio, use async and await to fully load the tiff before doing something else. You can refer to https://geotiffjs.github.io/ for the latest update.