Merge pull request #1367 from umap-project/choropleth-import

Fix import of .umap file containing a choropleth layer
This commit is contained in:
Yohan Boniface 2023-10-12 10:12:10 +02:00 committed by GitHub
commit a77668a03c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -135,7 +135,10 @@ L.U.Layer.Choropleth = L.FeatureGroup.extend({
[],
this.datalayer.options.choropleth
)
this.datalayer.on('datachanged', this.redraw, this)
this.datalayer.onceDataLoaded(() => {
this.redraw()
this.datalayer.on('datachanged', this.redraw, this)
})
},
redraw: function () {
@ -161,7 +164,7 @@ L.U.Layer.Choropleth = L.FeatureGroup.extend({
}
let mode = this.datalayer.options.choropleth.mode,
classes = +this.datalayer.options.choropleth.classes || 5,
breaks = []
breaks
if (mode === 'manual') {
const manualBreaks = this.datalayer.options.choropleth.breaks
if (manualBreaks) {
@ -178,12 +181,12 @@ L.U.Layer.Choropleth = L.FeatureGroup.extend({
breaks = ss.ckmeans(values, classes).map((cluster) => cluster[0])
breaks.push(ss.max(values)) // Needed for computing the legend
}
this.options.breaks = breaks
this.options.breaks = breaks || []
this.datalayer.options.choropleth.breaks = this.options.breaks.map(b => +b.toFixed(2)).join(',')
const fillColor = this.datalayer.getOption('fillColor') || this.defaults.fillColor
let colorScheme = this.datalayer.options.choropleth.brewer
if (!colorbrewer[colorScheme]) colorScheme = 'Blues'
this.options.colors = colorbrewer[colorScheme][breaks.length - 1] || []
this.options.colors = colorbrewer[colorScheme][this.options.breaks.length - 1] || []
},
getColor: function (feature) {
@ -717,7 +720,7 @@ L.U.DataLayer = L.Evented.extend({
},
hasDataLoaded: function () {
return !this.umap_id || this._dataloaded
return this._dataloaded
},
setUmapId: function (id) {