diff --git a/ui/package-lock.json b/ui/package-lock.json index 84f64c627d..b683fef949 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -5239,14 +5239,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5261,20 +5259,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -5391,8 +5386,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -5404,7 +5398,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -5419,7 +5412,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -5427,14 +5419,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -5453,7 +5443,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -5534,8 +5523,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -5547,7 +5535,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -5669,7 +5656,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", diff --git a/ui/src/app/widget/lib/map-widget2.js b/ui/src/app/widget/lib/map-widget2.js index f330bd61bf..a8a252e331 100644 --- a/ui/src/app/widget/lib/map-widget2.js +++ b/ui/src/app/widget/lib/map-widget2.js @@ -81,7 +81,14 @@ export default class TbMapWidgetV2 { if (mapProvider === 'google-map') { this.map = new TbGoogleMap($element, this.utils, initCallback, this.defaultZoomLevel, this.dontFitMapBounds, minZoomLevel, settings.gmApiKey, settings.gmDefaultMapType); } else if (mapProvider === 'openstreet-map') { - this.map = new TbOpenStreetMap($element, this.utils, initCallback, this.defaultZoomLevel, this.dontFitMapBounds, minZoomLevel, settings.mapProvider); + let openStreetMapProvider = {}; + if (settings.useCustomProvider && settings.customProviderTileUrl) { + openStreetMapProvider.name = settings.customProviderTileUrl; + openStreetMapProvider.isCustom = true; + } else { + openStreetMapProvider.name = settings.mapProvider; + } + this.map = new TbOpenStreetMap($element, this.utils, initCallback, this.defaultZoomLevel, this.dontFitMapBounds, minZoomLevel, openStreetMapProvider); } else if (mapProvider === 'image-map') { this.map = new TbImageMap(this.ctx, $element, this.utils, initCallback, settings.mapImageUrl, @@ -800,7 +807,17 @@ const openstreetMapSettingsSchema = "title": "Map provider", "type": "string", "default": "OpenStreetMap.Mapnik" - } + }, + "useCustomProvider": { + "title": "Use custom provider", + "type": "boolean", + "default": false + }, + "customProviderTileUrl": { + "title": "Custom provider tile URL", + "type": "string", + "default": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" + } }, "required": [] }, @@ -839,7 +856,9 @@ const openstreetMapSettingsSchema = "label": "CartoDB.DarkMatter" } ] - } + }, + "useCustomProvider", + "customProviderTileUrl" ] }; diff --git a/ui/src/app/widget/lib/openstreet-map.js b/ui/src/app/widget/lib/openstreet-map.js index 33f9ae09e2..a0c4d7a0a3 100644 --- a/ui/src/app/widget/lib/openstreet-map.js +++ b/ui/src/app/widget/lib/openstreet-map.js @@ -28,12 +28,14 @@ export default class TbOpenStreetMap { this.tooltips = []; if (!mapProvider) { - mapProvider = "OpenStreetMap.Mapnik"; + mapProvider = { + name: "OpenStreetMap.Mapnik" + }; } this.map = L.map($containerElement[0]).setView([0, 0], this.defaultZoomLevel || 8); - var tileLayer = L.tileLayer.provider(mapProvider); + var tileLayer = mapProvider.isCustom ? L.tileLayer(mapProvider.name) : L.tileLayer.provider(mapProvider.name); tileLayer.addTo(this.map);