diff --git a/src/cli/serve/legacy_config.js b/src/cli/serve/legacy_config.js index 75fbb4e407eacf..591a4fd1a6f8c0 100644 --- a/src/cli/serve/legacy_config.js +++ b/src/cli/serve/legacy_config.js @@ -30,6 +30,11 @@ export const legacySettings = { request_timeout: 'elasticsearch.requestTimeout', shard_timeout: 'elasticsearch.shardTimeout', startup_timeout: 'elasticsearch.startupTimeout', + tilemap_url: 'tilemap.url', + tilemap_min_zoom: 'tilemap.options.minZoom', + tilemap_max_zoom: 'tilemap.options.maxZoom', + tilemap_attribution: 'tilemap.options.attribution', + tilemap_subdomains: 'tilemap.options.subdomains', verify_ssl: 'elasticsearch.ssl.verify', }; diff --git a/src/core_plugins/tests_bundle/tests_entry_template.js b/src/core_plugins/tests_bundle/tests_entry_template.js index eda06891bb2a8d..544890c6d350dc 100644 --- a/src/core_plugins/tests_bundle/tests_entry_template.js +++ b/src/core_plugins/tests_bundle/tests_entry_template.js @@ -29,7 +29,7 @@ window.__KBN__ = { esApiVersion: '2.0', esRequestTimeout: '300000', tilemap: { - url: 'https://tiles.elastic.co/v1/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana', + url: 'https://tiles.elastic.co/v1/default/{z}/{x}/{y}.png?my_app_name=kibana&my_app_version=1.2.3&elastic_tile_service_tos=agree', options: { minZoom: 0, maxZoom: 7, diff --git a/src/server/config/schema.js b/src/server/config/schema.js index 988d0dde5b8da3..be05940c083917 100644 --- a/src/server/config/schema.js +++ b/src/server/config/schema.js @@ -8,6 +8,8 @@ import os from 'os'; import { fromRoot } from '../../utils'; import { getData } from '../path'; +import pkg from '../../../src/utils/package_json'; + module.exports = () => Joi.object({ pkg: Joi.object({ version: Joi.string().default(Joi.ref('$version')), @@ -133,10 +135,10 @@ module.exports = () => Joi.object({ }).default(), tilemap: Joi.object({ - url: Joi.string().default('https://tiles.elastic.co/v1/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana'), + url: Joi.string().default(`https://tiles.elastic.co/v1/default/{z}/{x}/{y}.png?my_app_name=kibana&my_app_version=${pkg.version}&elastic_tile_service_tos=agree`), options: Joi.object({ - attribution: Joi.string().default('© [Elastic Tile Service](https://www.elastic.co/elastic_tile_service)'), - minZoom: Joi.number().default(0), + attribution: Joi.string().default('© [Elastic Tile Service](https://www.elastic.co/elastic-tile-service)'), + minZoom: Joi.number().min(1, 'Must not be less than 1').default(1), maxZoom: Joi.number().default(7), tileSize: Joi.number().optional(), subdomains: Joi.array().items(Joi.string()).single().optional(), diff --git a/src/ui/public/vislib/visualizations/_map.js b/src/ui/public/vislib/visualizations/_map.js index 15cb9091712c26..d9c4218ff46b12 100644 --- a/src/ui/public/vislib/visualizations/_map.js +++ b/src/ui/public/vislib/visualizations/_map.js @@ -278,6 +278,13 @@ export default function MapFactory(Private, tilemap) { TileMapMap.prototype._createMap = function (mapOptions) { if (this.map) this.destroy(); + if (this._attr.wms.enabled) { + _.assign(mapOptions, { + minZoom: 1, + maxZoom: 18 + }); + } + // add map tiles layer, using the mapTiles object settings if (this._attr.wms && this._attr.wms.enabled) { this._tileLayer = L.tileLayer.wms(this._attr.wms.url, this._attr.wms.options);