diff --git a/components/ILIAS/Maps/classes/class.ilMapUtil.php b/components/ILIAS/Maps/classes/class.ilMapUtil.php index e54925f2fb82..137a687c4d1c 100755 --- a/components/ILIAS/Maps/classes/class.ilMapUtil.php +++ b/components/ILIAS/Maps/classes/class.ilMapUtil.php @@ -20,7 +20,7 @@ class ilMapUtil { - public const DEFAULT_TILE = "a.tile.openstreetmap.org b.tile.openstreetmap.org c.tile.openstreetmap.org"; + public const DEFAULT_TILE = "tile.openstreetmap.org"; public const DEFAULT_GEOLOCATION = null; public static ?ilSetting $_settings = null; diff --git a/components/ILIAS/Maps/js/src/ServiceOpenLayers.js b/components/ILIAS/Maps/js/src/ServiceOpenLayers.js index aef80149d619..a0703e6b312e 100755 --- a/components/ILIAS/Maps/js/src/ServiceOpenLayers.js +++ b/components/ILIAS/Maps/js/src/ServiceOpenLayers.js @@ -52,13 +52,14 @@ export default class ServiceOpenLayers { let zoom = map[2]; let central_marker = map[3]; let replace_marker = map[5]; + let tile_servers = map[6]; let geo = map[7]; let pos = this.posToOSM([map[1], map[0]]); this.geolocationURL = geo; this.initView(id, pos, zoom); - this.initMap(id, replace_marker); + this.initMap(id, replace_marker, tile_servers); this.initUserMarkers(id, pos, replace_marker, central_marker); } } @@ -92,14 +93,18 @@ export default class ServiceOpenLayers { * * @param {string} id * @param {boolean} replace_marker + * @param {array} tile_servers * @return {void} */ - initMap(id, replace_marker) { + initMap(id, replace_marker, tile_servers) { + let source = new OSM(); + source.setUrls(tile_servers.map((server) => 'https://' + server + '/{z}/{x}/{y}.png')); + this.map = new OLMap({ layers: [ new TileLayer({ preload: 4, - source: new OSM() + source: source }), ], target: id, diff --git a/components/ILIAS/Maps/resources/ServiceOpenLayers.js b/components/ILIAS/Maps/resources/ServiceOpenLayers.js index 119025f939c4..d4e599ec2d37 100644 --- a/components/ILIAS/Maps/resources/ServiceOpenLayers.js +++ b/components/ILIAS/Maps/resources/ServiceOpenLayers.js @@ -21234,13 +21234,14 @@ class ServiceOpenLayers { let zoom = map[2]; let central_marker = map[3]; let replace_marker = map[5]; + let tile_servers = map[6]; let geo = map[7]; let pos = this.posToOSM([map[1], map[0]]); this.geolocationURL = geo; this.initView(id, pos, zoom); - this.initMap(id, replace_marker); + this.initMap(id, replace_marker, tile_servers); this.initUserMarkers(id, pos, replace_marker, central_marker); } } @@ -21274,14 +21275,18 @@ class ServiceOpenLayers { * * @param {string} id * @param {boolean} replace_marker + * @param {array} tile_servers * @return {void} */ - initMap(id, replace_marker) { + initMap(id, replace_marker, tile_servers) { + let source = new OSM(); + source.setUrls(tile_servers.map((server) => 'https://' + server + '/{z}/{x}/{y}.png')); + this.map = new OLMap({ layers: [ new TileLayer({ preload: 4, - source: new OSM() + source: source }), ], target: id,