[Maps] remove map.regionmap.* (#109896)

* remove regionmap config

* clean-up

* clean up docs and i18n cleanup

* telemetry check fixes

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Nathan Reese 2021-08-30 12:55:03 -06:00 committed by GitHub
parent a165067477
commit 9e1a4dda42
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 3 additions and 465 deletions

View file

@ -371,7 +371,7 @@ The size limit policy will perform a rollover when the log file reaches a maximu
The time interval policy will rotate the log file every given interval of time. *Default 24h*
| [[regionmap-ES-map]] `map.includeElasticMapsService:` {ess-icon}
| `map.includeElasticMapsService:` {ess-icon}
| Set to `false` to disable connections to Elastic Maps Service.
When `includeElasticMapsService` is turned off, only tile layer configured by <<tilemap-url, `map.tilemap.url`>> is available in <<maps, Maps>>. *Default: `true`*
@ -383,88 +383,6 @@ When `includeElasticMapsService` is turned off, only tile layer configured by <<
Set to `true` to proxy all <<maps, Maps application>> Elastic Maps Service
requests through the {kib} server. *Default: `false`*
| [[regionmap-settings]] `map.regionmap:` {ess-icon}
| deprecated:[7.14.0,"In 8.0 and later, this setting will no longer be supported."]
Specifies additional vector layers for
use in <<maps, Maps>> visualizations. Each layer
object points to an external vector file that contains a geojson
FeatureCollection. The file must use the
https://en.wikipedia.org/wiki/World_Geodetic_System[WGS84 coordinate reference system (ESPG:4326)]
and only include polygons. If the file is hosted on a separate domain from
{kib}, the server needs to be CORS-enabled so {kib} can download the file.
The following example shows a valid region map configuration.
|===
[source,text]
--
map.regionmap:
layers:
- name: "Departments of France"
url: "http://my.cors.enabled.server.org/france_departements.geojson"
attribution: "INRAP"
fields:
- name: "department"
description: "Full department name"
- name: "INSEE"
description: "INSEE numeric identifier"
--
[cols="2*<"]
|===
| [[regionmap-attribution]] `map.regionmap.layers[].attribution:` {ess-icon}
| deprecated:[7.14.0,"In 8.0 and later, this setting will no longer be supported."]
Optional. References the originating source of the geojson file.
| [[regionmap-fields]] `map.regionmap.layers[].fields[]:` {ess-icon}
| deprecated:[7.14.0,"In 8.0 and later, this setting will no longer be supported."]
Mandatory. Each layer
can contain multiple fields to indicate what properties from the geojson
features you wish to expose. The following shows how to define multiple
properties:
|===
[source,text]
--
map.regionmap:
layers:
- name: "Departments of France"
url: "http://my.cors.enabled.server.org/france_departements.geojson"
attribution: "INRAP"
fields:
- name: "department"
description: "Full department name"
- name: "INSEE"
description: "INSEE numeric identifier"
--
[cols="2*<"]
|===
| [[regionmap-field-description]] `map.regionmap.layers[].fields[].description:` {ess-icon}
| deprecated:[7.14.0,"In 8.0 and later, this setting will no longer be supported."]
Mandatory. The human readable text that is shown under the Options tab when
building the Region Map visualization.
| [[regionmap-field-name]] `map.regionmap.layers[].fields[].name:` {ess-icon}
| deprecated:[7.14.0,"In 8.0 and later, this setting will no longer be supported."]
Mandatory.
This value is used to do an inner-join between the document stored in
{es} and the geojson file. For example, if the field in the geojson is
called `Location` and has city names, there must be a field in {es}
that holds the same values that {kib} can then use to lookup for the geoshape
data.
| [[regionmap-name]] `map.regionmap.layers[].name:` {ess-icon}
| deprecated:[7.14.0,"In 8.0 and later, this setting will no longer be supported."]
Mandatory. A description of the map being provided.
| [[regionmap-url]] `map.regionmap.layers[].url:` {ess-icon}
| deprecated:[7.14.0,"In 8.0 and later, this setting will no longer be supported."]
Mandatory. The location of the geojson file as provided by a webserver.
| [[tilemap-settings]] `map.tilemap.options.attribution:` {ess-icon}
| The map attribution string.
*Default: `"© [Elastic Maps Service](https://www.elastic.co/elastic-maps-service)"`*

View file

@ -400,7 +400,6 @@
"tar": "4.4.13",
"tinycolor2": "1.4.1",
"tinygradient": "0.4.3",
"topojson-client": "3.1.0",
"tree-kill": "^1.2.2",
"ts-easing": "^0.2.0",
"tslib": "^2.0.0",

View file

@ -36,33 +36,7 @@ export const tilemapConfigSchema = schema.object({
options: tileMapConfigOptionsSchema,
});
const layerConfigSchema = schema.object({
url: schema.string(),
format: schema.object({
type: schema.string({ defaultValue: 'geojson' }),
}),
meta: schema.object({
feature_collection_path: schema.string({ defaultValue: 'data' }),
}),
attribution: schema.string(),
name: schema.string(),
fields: schema.arrayOf(
schema.object({
name: schema.string(),
description: schema.string(),
})
),
});
export type LayerConfig = TypeOf<typeof layerConfigSchema>;
const regionmapConfigSchema = schema.object({
includeElasticMapsService: schema.boolean({ defaultValue: true }),
layers: schema.arrayOf(layerConfigSchema, { defaultValue: [] }),
});
export const emsConfigSchema = schema.object({
regionmap: regionmapConfigSchema,
tilemap: tilemapConfigSchema,
includeElasticMapsService: schema.boolean({ defaultValue: true }),
proxyElasticMapsServiceInMaps: schema.boolean({ defaultValue: false }),

View file

@ -24,7 +24,7 @@ export function plugin(initializerContext: PluginInitializerContext) {
return new MapsEmsPlugin(initializerContext);
}
export type { MapsEmsConfig, LayerConfig } from '../config';
export type { MapsEmsConfig } from '../config';
export * from '../common';

View file

@ -16,7 +16,6 @@ import { MapsEmsConfig, emsConfigSchema } from '../config';
export const config: PluginConfigDescriptor<MapsEmsConfig> = {
exposeToBrowser: {
regionmap: true,
tilemap: true,
includeElasticMapsService: true,
proxyElasticMapsServiceInMaps: true,

View file

@ -92,7 +92,6 @@ export enum SOURCE_TYPES {
EMS_XYZ = 'EMS_XYZ', // identifies a custom TMS source. EMS-prefix in the name is a little unfortunate :(
WMS = 'WMS',
KIBANA_TILEMAP = 'KIBANA_TILEMAP',
REGIONMAP_FILE = 'REGIONMAP_FILE',
GEOJSON_FILE = 'GEOJSON_FILE',
MVT_SINGLE_LAYER = 'MVT_SINGLE_LAYER',
TABLE_SOURCE = 'TABLE_SOURCE',

View file

@ -112,10 +112,6 @@ export type ESTermSourceDescriptor = AbstractESAggSourceDescriptor & {
type: SOURCE_TYPES.ES_TERM_SOURCE;
};
export type KibanaRegionmapSourceDescriptor = AbstractSourceDescriptor & {
name: string;
};
// This is for symmetry with other sources only.
// It takes no additional configuration since all params are in the .yml.
export type KibanaTilemapSourceDescriptor = AbstractSourceDescriptor;

View file

@ -1,40 +0,0 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { IField, AbstractField } from './field';
import { KibanaRegionmapSource } from '../sources/kibana_regionmap_source/kibana_regionmap_source';
import { FIELD_ORIGIN } from '../../../common/constants';
import { IVectorSource } from '../sources/vector_source';
export class KibanaRegionField extends AbstractField implements IField {
private readonly _source: KibanaRegionmapSource;
constructor({
fieldName,
source,
origin,
}: {
fieldName: string;
source: KibanaRegionmapSource;
origin: FIELD_ORIGIN;
}) {
super({ fieldName, origin });
this._source = source;
}
getSource(): IVectorSource {
return this._source;
}
async getLabel(): Promise<string> {
const meta = await this._source.getVectorFileMeta();
// TODO remove any and @ts-ignore when vectorFileMeta type defined
// @ts-ignore
const field: any = meta.fields.find((f) => f.name === this.getName());
return field ? field.description : this.getName();
}
}

View file

@ -1,56 +0,0 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import _ from 'lodash';
import { i18n } from '@kbn/i18n';
import { FeatureCollection } from 'geojson';
import * as topojson from 'topojson-client';
import { GeometryCollection } from 'topojson-specification';
import fetch from 'node-fetch';
export enum FORMAT_TYPE {
GEOJSON = 'geojson',
TOPOJSON = 'topojson',
}
export async function fetchGeoJson(
fetchUrl: string,
format: FORMAT_TYPE,
featureCollectionPath: string
): Promise<FeatureCollection> {
let fetchedJson;
try {
const response = await fetch(fetchUrl);
if (!response.ok) {
throw new Error('Request failed');
}
fetchedJson = await response.json();
} catch (e) {
throw new Error(
i18n.translate('xpack.maps.util.requestFailedErrorMessage', {
defaultMessage: `Unable to fetch vector shapes from url: {fetchUrl}`,
values: { fetchUrl },
})
);
}
if (format === FORMAT_TYPE.GEOJSON) {
return fetchedJson;
}
if (format === FORMAT_TYPE.TOPOJSON) {
const features = _.get(fetchedJson, `objects.${featureCollectionPath}`) as GeometryCollection;
return topojson.feature(fetchedJson, features);
}
throw new Error(
i18n.translate('xpack.maps.util.formatErrorMessage', {
defaultMessage: `Unable to fetch vector shapes from url: {format}`,
values: { format },
})
);
}

View file

@ -1,8 +0,0 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
export { KibanaRegionmapSource } from './kibana_regionmap_source';

View file

@ -1,136 +0,0 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { i18n } from '@kbn/i18n';
import { AbstractVectorSource, GeoJsonWithMeta } from '../vector_source';
import { getRegionmapLayers } from '../../../kibana_services';
import { getDataSourceLabel } from '../../../../common/i18n_getters';
import { FIELD_ORIGIN, SOURCE_TYPES } from '../../../../common/constants';
import { KibanaRegionField } from '../../fields/kibana_region_field';
import { registerSource } from '../source_registry';
import { KibanaRegionmapSourceDescriptor } from '../../../../common/descriptor_types';
import { Adapters } from '../../../../../../../src/plugins/inspector/common/adapters';
import { IField } from '../../fields/field';
import type { LayerConfig } from '../../../../../../../src/plugins/maps_ems/public';
import { fetchGeoJson, FORMAT_TYPE } from './fetch_geojson';
const sourceTitle = i18n.translate('xpack.maps.source.kbnRegionMapTitle', {
defaultMessage: 'Configured GeoJSON',
});
export class KibanaRegionmapSource extends AbstractVectorSource {
readonly _descriptor: KibanaRegionmapSourceDescriptor;
static createDescriptor({ name }: { name: string }): KibanaRegionmapSourceDescriptor {
return {
type: SOURCE_TYPES.REGIONMAP_FILE,
name,
};
}
constructor(descriptor: KibanaRegionmapSourceDescriptor, inspectorAdapters?: Adapters) {
super(descriptor, inspectorAdapters);
this._descriptor = descriptor;
}
createField({ fieldName }: { fieldName: string }): KibanaRegionField {
return new KibanaRegionField({
fieldName,
source: this,
origin: FIELD_ORIGIN.SOURCE,
});
}
async getImmutableProperties() {
const vectorFileMeta = await this.getVectorFileMeta();
return [
{
label: getDataSourceLabel(),
value: sourceTitle,
},
{
label: i18n.translate('xpack.maps.source.kbnRegionMap.vectorLayerLabel', {
defaultMessage: 'Vector layer',
}),
value: this._descriptor.name,
},
{
label: i18n.translate('xpack.maps.source.kbnRegionMap.vectorLayerUrlLabel', {
defaultMessage: 'Vector layer url',
}),
value: vectorFileMeta.url,
},
];
}
async getVectorFileMeta(): Promise<LayerConfig> {
const regionList: LayerConfig[] = getRegionmapLayers();
const layerConfig: LayerConfig | undefined = regionList.find(
(regionConfig: LayerConfig) => regionConfig.name === this._descriptor.name
);
if (!layerConfig) {
throw new Error(
i18n.translate('xpack.maps.source.kbnRegionMap.noConfigErrorMessage', {
defaultMessage: `Unable to find map.regionmap configuration for {name}`,
values: {
name: this._descriptor.name,
},
})
);
}
return layerConfig;
}
async getGeoJsonWithMeta(): Promise<GeoJsonWithMeta> {
const vectorFileMeta = await this.getVectorFileMeta();
const featureCollection = await fetchGeoJson(
vectorFileMeta.url,
vectorFileMeta.format.type as FORMAT_TYPE,
vectorFileMeta.meta.feature_collection_path
);
return {
data: featureCollection,
meta: {},
};
}
async getLeftJoinFields(): Promise<IField[]> {
const vectorFileMeta: LayerConfig = await this.getVectorFileMeta();
return vectorFileMeta.fields.map(
(field): KibanaRegionField => {
return this.createField({ fieldName: field.name });
}
);
}
async getDisplayName(): Promise<string> {
return this._descriptor.name;
}
hasTooltipProperties() {
return true;
}
getSourceTooltipContent() {
return {
tooltipContent: i18n.translate('xpack.maps.source.kbnRegionMap.deprecationTooltipMessage', {
defaultMessage: `'Configured GeoJSON' layer is deprecated. 1) Use 'Upload GeoJSON' to upload '{vectorLayer}'. 2) Use Choropleth layer wizard to build a replacement layer. 3) Finally, delete this layer from your map.`,
values: {
vectorLayer: this._descriptor.name,
},
}),
areResultsTrimmed: false,
isDeprecated: true,
};
}
}
registerSource({
ConstructorFunction: KibanaRegionmapSource,
type: SOURCE_TYPES.REGIONMAP_FILE,
});

View file

@ -77,14 +77,6 @@ export const getEMSSettings = () => {
export const getEmsTileLayerId = () => getKibanaCommonConfig().emsTileLayerId;
export const getRegionmapLayers = () => {
const config = getKibanaCommonConfig();
if (config.regionmap && config.regionmap.layers) {
return config.regionmap.layers;
} else {
return [];
}
};
export const getTilemap = () => {
const config = getKibanaCommonConfig();
if (config.tilemap) {

View file

@ -11,7 +11,6 @@ import '../../../classes/sources/wms_source';
import '../../../classes/sources/ems_file_source';
import '../../../classes/sources/es_search_source';
import '../../../classes/sources/es_pew_pew_source';
import '../../../classes/sources/kibana_regionmap_source';
import '../../../classes/sources/es_geo_grid_source';
import '../../../classes/sources/xyz_tms_source';
import { getToasts } from '../../../kibana_services';

View file

@ -51,37 +51,6 @@ export const config: PluginConfigDescriptor<MapsXPackConfig> = {
});
return completeConfig;
},
(
completeConfig: Record<string, any>,
rootPath: string,
addDeprecation: AddConfigDeprecation
) => {
if (_.get(completeConfig, 'map.regionmap') === undefined) {
return completeConfig;
}
addDeprecation({
message: i18n.translate('xpack.maps.deprecation.regionmap.message', {
defaultMessage: 'map.regionmap is deprecated and is no longer used',
}),
correctiveActions: {
manualSteps: [
i18n.translate('xpack.maps.deprecation.regionmap.step1', {
defaultMessage:
'Remove "map.regionmap" in the Kibana config file, CLI flag, or environment variable (in Docker only).',
}),
i18n.translate('xpack.maps.deprecation.regionmap.step2', {
defaultMessage:
'Use "Upload GeoJSON" to upload each layer defined by "map.regionmap.layers".',
}),
i18n.translate('xpack.maps.deprecation.regionmap.step3', {
defaultMessage:
'Update all maps with "Configured GeoJSON" layers. Use Choropleth layer wizard to build a replacement layer. Delete "Configured GeoJSON" layer from your map.',
}),
],
},
});
return completeConfig;
},
],
};

View file

@ -127,18 +127,6 @@ export function registerMapsUsageCollector(usageCollection: UsageCollectionSetup
_meta: { description: 'total number of es track layers in cluster' },
},
},
kbn_region: {
min: { type: 'long', _meta: { description: 'min number of kbn region layers per map' } },
max: { type: 'long', _meta: { description: 'max number of kbn region layers per map' } },
avg: {
type: 'float',
_meta: { description: 'avg number of kbn region layers per map' },
},
total: {
type: 'long',
_meta: { description: 'total number of kbn region layers in cluster' },
},
},
kbn_tms_raster: {
min: { type: 'long', _meta: { description: 'min number of kbn tms layers per map' } },
max: { type: 'long', _meta: { description: 'max number of kbn tms layers per map' } },

View file

@ -29,7 +29,6 @@ export enum TELEMETRY_LAYER_TYPE {
ES_AGG_HEATMAP = 'es_agg_heatmap',
EMS_REGION = 'ems_region',
EMS_BASEMAP = 'ems_basemap',
KBN_REGION = 'kbn_region',
KBN_TMS_RASTER = 'kbn_tms_raster',
UX_TMS_RASTER = 'ux_tms_raster', // configured in the UX layer wizard of Maps
UX_TMS_MVT = 'ux_tms_mvt', // configured in the UX layer wizard of Maps
@ -111,10 +110,6 @@ export function getTelemetryLayerType(
return TELEMETRY_LAYER_TYPE.KBN_TMS_RASTER;
}
if (layerDescriptor.sourceDescriptor.type === SOURCE_TYPES.REGIONMAP_FILE) {
return TELEMETRY_LAYER_TYPE.KBN_REGION;
}
if (layerDescriptor.sourceDescriptor.type === SOURCE_TYPES.EMS_XYZ) {
return TELEMETRY_LAYER_TYPE.UX_TMS_RASTER;
}

View file

@ -3221,34 +3221,6 @@
}
}
},
"kbn_region": {
"properties": {
"min": {
"type": "long",
"_meta": {
"description": "min number of kbn region layers per map"
}
},
"max": {
"type": "long",
"_meta": {
"description": "max number of kbn region layers per map"
}
},
"avg": {
"type": "float",
"_meta": {
"description": "avg number of kbn region layers per map"
}
},
"total": {
"type": "long",
"_meta": {
"description": "total number of kbn region layers in cluster"
}
}
}
},
"kbn_tms_raster": {
"properties": {
"min": {

View file

@ -13863,10 +13863,6 @@
"xpack.maps.deprecation.proxyEMS.message": "map.proxyElasticMapsServiceInMapsは廃止予定であり、8.0で削除されます。",
"xpack.maps.deprecation.proxyEMS.step1": "Kibana構成ファイル、CLIフラグ、または環境変数 (Dockerのみ) で「map.proxyElasticMapsServiceInMaps」を削除します。",
"xpack.maps.deprecation.proxyEMS.step2": "Elastic Maps Serviceをローカルでホストします。",
"xpack.maps.deprecation.regionmap.message": "map.regionmapは廃止予定であり、8.0 では削除されます。",
"xpack.maps.deprecation.regionmap.step1": "Kibana構成ファイル、CLIフラグ、または環境変数 (Dockerのみ) で「map.regionmap」を削除します。",
"xpack.maps.deprecation.regionmap.step2": "GeoJSONのアップロードを使用して、「map.regionmap.layers」で定義された各レイヤーをアップロードします。",
"xpack.maps.deprecation.regionmap.step3": "「構成されたGeoJSON」レイヤーですべてのマップを更新します。Choroplethレイヤーウィザードを使用して、置換レイヤーを構築します。「構成されたGeoJSON」レイヤーをマップから削除します。",
"xpack.maps.discover.visualizeFieldLabel": "Mapsで可視化",
"xpack.maps.distanceFilterForm.filterLabelLabel": "ラベルでフィルタリング",
"xpack.maps.drawFeatureControl.invalidGeometry": "無効なジオメトリが検出されました",
@ -14233,11 +14229,6 @@
"xpack.maps.source.esTopHitsSearch.sortFieldLabel": "並べ替えフィールド",
"xpack.maps.source.esTopHitsSearch.sortOrderLabel": "並べ替え順",
"xpack.maps.source.geofieldLabel": "地理空間フィールド",
"xpack.maps.source.kbnRegionMap.deprecationTooltipMessage": "「構成されたGeoJSON」レイヤーは廃止予定です。1) GeoJSONのアップロードを使用して、'{vectorLayer}'をアップロードします。2) Choroplethレイヤーウィザードを使用して、置換レイヤーを構築します。3) 最後にこのレイヤーをマップから削除します。",
"xpack.maps.source.kbnRegionMap.noConfigErrorMessage": "{name} の map.regionmap 構成が見つかりません",
"xpack.maps.source.kbnRegionMap.vectorLayerLabel": "ベクターレイヤー",
"xpack.maps.source.kbnRegionMap.vectorLayerUrlLabel": "ベクターレイヤーURL",
"xpack.maps.source.kbnRegionMapTitle": "カスタムベクターシェイプ",
"xpack.maps.source.kbnTMS.kbnTMS.urlLabel": "タイルマップ URL",
"xpack.maps.source.kbnTMS.noConfigErrorMessage": "kibana.yml に map.tilemap.url 構成が見つかりません",
"xpack.maps.source.kbnTMS.noLayerAvailableHelptext": "タイルマップレイヤーが利用できません。システム管理者に、kibana.yml で「map.tilemap.url」を設定するよう依頼してください。",
@ -14420,8 +14411,6 @@
"xpack.maps.tutorials.ems.shortDescription": "Elastic Maps Service からの管理ベクターシェイプ。",
"xpack.maps.tutorials.ems.uploadStepText": "1.[Maps] ({newMapUrl}) を開きます。\n2.Add layerをクリックしてからUpload GeoJSONを選択します。\n3.GeoJSON ファイルをアップロードしてImport fileをクリックします。",
"xpack.maps.tutorials.ems.uploadStepTitle": "Elastic Maps Service境界のインデックス作成",
"xpack.maps.util.formatErrorMessage": "URL からベクターシェイプを取得できません:{format}",
"xpack.maps.util.requestFailedErrorMessage": "URL からベクターシェイプを取得できません:{fetchUrl}",
"xpack.maps.validatedNumberInput.invalidClampErrorMessage": "{min} と {max} の間でなければなりません",
"xpack.maps.validatedRange.rangeErrorMessage": "{min} と {max} の間でなければなりません",
"xpack.maps.vector.dualSize.unitLabel": "px",

View file

@ -14225,10 +14225,6 @@
"xpack.maps.deprecation.proxyEMS.message": "map.proxyElasticMapsServiceInMaps 已弃用,将在 8.0 中移除。",
"xpack.maps.deprecation.proxyEMS.step1": "在 Kibana 配置文件、CLI 标志或环境变量中中移除“map.proxyElasticMapsServiceInMaps”仅适用于 Docker。",
"xpack.maps.deprecation.proxyEMS.step2": "本地托管 Elastic Maps Service。",
"xpack.maps.deprecation.regionmap.message": "map.regionmap 已过时,将在 8.0 中移除。",
"xpack.maps.deprecation.regionmap.step1": "在 Kibana 配置文件、CLI 标志或环境变量中中移除“map.regionmap”仅适用于 Docker。",
"xpack.maps.deprecation.regionmap.step2": "使用“上传 GeoJSON”上传“map.regionmap.layers”定义的每个图层。",
"xpack.maps.deprecation.regionmap.step3": "使用“已配置 GeoJSON”图层更新所有地图。使用 Choropleth 图层向导构建替代图层。从您的图层中删除“已配置 GeoJSON”图层。",
"xpack.maps.discover.visualizeFieldLabel": "在 Maps 中可视化",
"xpack.maps.distanceFilterForm.filterLabelLabel": "筛选标签",
"xpack.maps.drawFeatureControl.invalidGeometry": "检测到无效的几何形状",
@ -14596,11 +14592,6 @@
"xpack.maps.source.esTopHitsSearch.sortFieldLabel": "排序字段",
"xpack.maps.source.esTopHitsSearch.sortOrderLabel": "排序顺序",
"xpack.maps.source.geofieldLabel": "地理空间字段",
"xpack.maps.source.kbnRegionMap.deprecationTooltipMessage": "“已配置 GeoJSON”图层已弃用。1) 请使用“上传 GeoJSON”上传“{vectorLayer}”。2) 请使用 Choropleth 图层向导构建替代图层。3) 最后,请从地图中删除此图层。",
"xpack.maps.source.kbnRegionMap.noConfigErrorMessage": "找不到 {name} 的 map.regionmap 配置",
"xpack.maps.source.kbnRegionMap.vectorLayerLabel": "矢量图层",
"xpack.maps.source.kbnRegionMap.vectorLayerUrlLabel": "矢量图层 URL",
"xpack.maps.source.kbnRegionMapTitle": "定制矢量形状",
"xpack.maps.source.kbnTMS.kbnTMS.urlLabel": "磁贴地图 URL",
"xpack.maps.source.kbnTMS.noConfigErrorMessage": "在 kibana.yml 中找不到 map.tilemap.url 配置",
"xpack.maps.source.kbnTMS.noLayerAvailableHelptext": "没有可用的磁贴地图图层。让您的系统管理员在 kibana.yml 中设置“map.tilemap.url”。",
@ -14783,8 +14774,6 @@
"xpack.maps.tutorials.ems.shortDescription": "来自 Elastic Maps Service 的管理边界。",
"xpack.maps.tutorials.ems.uploadStepText": "1.打开 [Maps]({newMapUrl}).\n2.单击`添加图层`,然后选择`上传 GeoJSON`。\n3.上传 GeoJSON 文件,然后单击`导入文件`。",
"xpack.maps.tutorials.ems.uploadStepTitle": "索引 Elastic Maps Service 边界",
"xpack.maps.util.formatErrorMessage": "无法从以下 URL 获取矢量形状:{format}",
"xpack.maps.util.requestFailedErrorMessage": "无法从以下 URL 获取矢量形状:{fetchUrl}",
"xpack.maps.validatedNumberInput.invalidClampErrorMessage": "必须介于 {min} 和 {max} 之间",
"xpack.maps.validatedRange.rangeErrorMessage": "必须介于 {min} 和 {max} 之间",
"xpack.maps.vector.dualSize.unitLabel": "px",

View file

@ -27212,7 +27212,7 @@ toidentifier@1.0.0:
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
topojson-client@3.1.0, topojson-client@^3.1.0:
topojson-client@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/topojson-client/-/topojson-client-3.1.0.tgz#22e8b1ed08a2b922feeb4af6f53b6ef09a467b99"
integrity sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==