diff --git a/CHANGELOG.md b/CHANGELOG.md index c85f4f8..7381e70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # MapTiler Client Changelog +## 4.1.1 +- Constrain maxbounds on Leaflet to those of MapLibre / Maptiler ensure layers are reconclied in terms of position properly. Fixes [30](https://github.com/maptiler/leaflet-maptilersdk/issues/30) + ## 4.1.0 - Update @maptiler/sdk to the latest version diff --git a/package-lock.json b/package-lock.json index f248fcf..11fe437 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@maptiler/leaflet-maptilersdk", - "version": "4.1.0", + "version": "4.1.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@maptiler/leaflet-maptilersdk", - "version": "4.1.0", + "version": "4.1.1", "dependencies": { "@maptiler/sdk": "^3.2.3", "@types/leaflet": "^1.9.16", diff --git a/package.json b/package.json index 57c1aeb..63222df 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@maptiler/leaflet-maptilersdk", - "version": "4.1.0", + "version": "4.1.1", "description": "Vector tiles basemap plugin for Leaflet - multi-lingual basemaps using MapTiler SDK", "module": "dist/leaflet-maptilersdk.js", "type": "module", diff --git a/src/leaflet-maptilersdk.ts b/src/leaflet-maptilersdk.ts index ca69cab..8e15e4f 100644 --- a/src/leaflet-maptilersdk.ts +++ b/src/leaflet-maptilersdk.ts @@ -268,7 +268,25 @@ export const MaptilerLayer = L.Layer.extend({ _initMaptilerSDK: function () { const center = this._map.getCenter(); + const maxBounds = (() => { + if (this.options.maxBounds) { + return this.options.maxBounds; + } + + // Maplibre is LngLat + return [ + [Number.NEGATIVE_INFINITY, -90], + [Number.POSITIVE_INFINITY, 90], + ]; + })(); + + // Leaflet expects LatLng + this._map.setMaxBounds( + L.latLngBounds(L.latLng(maxBounds[0][1], maxBounds[0][0]), L.latLng(maxBounds[1][1], maxBounds[1][0])), + ); + const options = { + maxBounds, ...this.options, projection: "mercator", container: this._container,