@antv/l7-layers 2.9.7 → 2.9.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2017 Alipay.inc
3
+ Copyright (c) 2018 AntV team
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -113,17 +113,43 @@ var FeatureScalePlugin = (_dec = injectable(), _dec2 = inject(TYPES.IGlobalConfi
113
113
  })) {
114
114
  attributeScale.type = StyleScaleType.VARIABLE;
115
115
  scales.forEach(function (scale) {
116
- if (!attributeScale.callback) {
117
- var _scale$option, _scale$option2, _scale$option3, _scale$option4, _scale$option5;
118
-
119
- if (attributeScale.values && attributeScale.values !== 'text' && ((_scale$option = scale.option) === null || _scale$option === void 0 ? void 0 : _scale$option.type) !== ScaleTypes.DIVERGING && ((_scale$option2 = scale.option) === null || _scale$option2 === void 0 ? void 0 : _scale$option2.type) !== ScaleTypes.SEQUENTIAL) {
120
- scale.scale.range(attributeScale.values);
121
- } else if (((_scale$option3 = scale.option) === null || _scale$option3 === void 0 ? void 0 : _scale$option3.type) === ScaleTypes.CAT) {
122
- scale.scale.range(scale.option.domain);
123
- } else if (((_scale$option4 = scale.option) === null || _scale$option4 === void 0 ? void 0 : _scale$option4.type) === ScaleTypes.DIVERGING || ((_scale$option5 = scale.option) === null || _scale$option5 === void 0 ? void 0 : _scale$option5.type) === ScaleTypes.SEQUENTIAL) {
124
- scale.scale.interpolator(d3interpolate.interpolateRgbBasis(attributeScale.values));
116
+ var _scale$option;
117
+
118
+ if (!attributeScale.callback && attributeScale.values !== 'text') {
119
+ switch ((_scale$option = scale.option) === null || _scale$option === void 0 ? void 0 : _scale$option.type) {
120
+ case ScaleTypes.LOG:
121
+ case ScaleTypes.LINEAR:
122
+ case ScaleTypes.POWER:
123
+ if (attributeScale.values && attributeScale.values.length > 2) {
124
+ var tick = scale.scale.ticks(attributeScale.values.length);
125
+ scale.scale.domain(tick);
126
+ }
127
+
128
+ attributeScale.values ? scale.scale.range(attributeScale.values) : scale.scale.range(scale.option.domain);
129
+ break;
130
+
131
+ case ScaleTypes.QUANTILE:
132
+ case ScaleTypes.QUANTIZE:
133
+ case ScaleTypes.THRESHOLD:
134
+ scale.scale.range(attributeScale.values);
135
+ break;
136
+
137
+ case ScaleTypes.CAT:
138
+ attributeScale.values ? scale.scale.range(attributeScale.values) : scale.scale.range(scale.option.domain);
139
+ break;
140
+
141
+ case ScaleTypes.DIVERGING:
142
+ case ScaleTypes.SEQUENTIAL:
143
+ scale.scale.interpolator(d3interpolate.interpolateRgbBasis(attributeScale.values));
144
+ break;
125
145
  }
126
146
  }
147
+
148
+ if (attributeScale.values === 'text') {
149
+ var _scale$option2;
150
+
151
+ scale.scale.range((_scale$option2 = scale.option) === null || _scale$option2 === void 0 ? void 0 : _scale$option2.domain);
152
+ }
127
153
  });
128
154
  } else {
129
155
  attributeScale.type = StyleScaleType.CONSTANT;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/FeatureScalePlugin.ts"],"names":["ScaleTypes","StyleScaleType","TYPES","extent","d3interpolate","d3","inject","injectable","dateRegex","scaleMap","LINEAR","scaleLinear","POWER","scalePow","LOG","scaleLog","IDENTITY","scaleIdentity","SEQUENTIAL","scaleSequential","TIME","scaleTime","QUANTILE","scaleQuantile","QUANTIZE","scaleQuantize","THRESHOLD","scaleThreshold","CAT","scaleOrdinal","DIVERGING","scaleDiverging","FeatureScalePlugin","IGlobalConfigService","layer","styleAttributeService","hooks","init","tap","scaleOptions","getScaleOptions","attributes","getLayerStyleAttributes","dataArray","getSource","data","length","caculateScalesForAttributes","beforeRenderData","layerModelNeedUpdate","beforeRender","attributesToRescale","filter","attribute","needRescale","n","isNaN","parseFloat","isFinite","scaleCache","forEach","scale","attributeScale","type","name","names","parseFields","field","scales","push","createScale","values","some","VARIABLE","callback","option","range","domain","interpolator","interpolateRgbBasis","CONSTANT","defaultValues","map","index","scalers","func","Array","isArray","split","scaleOption","styleScale","undefined","createDefaultScale","firstValue","find","d","isNumber","getDefaultType","cfg","createScaleConfig","test","item","minMax","neutral","unknown","clamp","nice"],"mappings":"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","sourcesContent":["import {\n IGlobalConfigService,\n ILayer,\n ILayerPlugin,\n IScale,\n IScaleOptions,\n IStyleAttribute,\n IStyleAttributeService,\n IStyleScale,\n ScaleTypeName,\n ScaleTypes,\n StyleScaleType,\n TYPES,\n} from '@antv/l7-core';\nimport { IParseDataItem } from '@antv/l7-source';\nimport { extent, ticks } from 'd3-array';\nimport * as d3interpolate from 'd3-interpolate';\nimport * as d3 from 'd3-scale';\nimport { inject, injectable } from 'inversify';\nimport { isNil, isString, uniq } from 'lodash';\nimport 'reflect-metadata';\n\nconst dateRegex = /^(?:(?!0000)[0-9]{4}([-/.]+)(?:(?:0?[1-9]|1[0-2])\\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\\1(?:29|30)|(?:0?[13578]|1[02])\\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\\2(?:29))(\\s+([01]|([01][0-9]|2[0-3])):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]))?$/;\n\nconst scaleMap = {\n [ScaleTypes.LINEAR]: d3.scaleLinear,\n [ScaleTypes.POWER]: d3.scalePow,\n [ScaleTypes.LOG]: d3.scaleLog,\n [ScaleTypes.IDENTITY]: d3.scaleIdentity,\n [ScaleTypes.SEQUENTIAL]: d3.scaleSequential,\n [ScaleTypes.TIME]: d3.scaleTime,\n [ScaleTypes.QUANTILE]: d3.scaleQuantile,\n [ScaleTypes.QUANTIZE]: d3.scaleQuantize,\n [ScaleTypes.THRESHOLD]: d3.scaleThreshold,\n [ScaleTypes.CAT]: d3.scaleOrdinal,\n [ScaleTypes.DIVERGING]: d3.scaleDiverging,\n};\n\n/**\n * 根据 Source 原始数据为指定字段创建 Scale,保存在 StyleAttribute 上,供下游插件使用\n */\n@injectable()\nexport default class FeatureScalePlugin implements ILayerPlugin {\n @inject(TYPES.IGlobalConfigService)\n private readonly configService: IGlobalConfigService;\n // key = field_attribute name\n private scaleCache: {\n [field: string]: IStyleScale;\n } = {};\n\n private scaleOptions: IScaleOptions = {};\n\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('FeatureScalePlugin', () => {\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n const { dataArray } = layer.getSource().data;\n if (dataArray.length === 0) {\n return;\n }\n this.caculateScalesForAttributes(attributes || [], dataArray);\n });\n\n // 检测数据是否需要更新\n layer.hooks.beforeRenderData.tap('FeatureScalePlugin', () => {\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n const { dataArray } = layer.getSource().data;\n this.caculateScalesForAttributes(attributes || [], dataArray);\n layer.layerModelNeedUpdate = true;\n return true;\n });\n\n layer.hooks.beforeRender.tap('FeatureScalePlugin', () => {\n if (layer.layerModelNeedUpdate) {\n return;\n }\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n if (attributes) {\n const { dataArray } = layer.getSource().data;\n if (dataArray.length === 0) {\n return;\n }\n const attributesToRescale = attributes.filter(\n (attribute) => attribute.needRescale,\n );\n if (attributesToRescale.length) {\n this.caculateScalesForAttributes(attributesToRescale, dataArray);\n }\n }\n });\n }\n private isNumber(n: any) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n private caculateScalesForAttributes(\n attributes: IStyleAttribute[],\n dataArray: IParseDataItem[],\n ) {\n this.scaleCache = {};\n attributes.forEach((attribute) => {\n if (attribute.scale) {\n // 创建Scale\n const attributeScale = attribute.scale;\n const type = attribute.name;\n attributeScale.names = this.parseFields(attribute!.scale!.field || []);\n const scales: IStyleScale[] = [];\n // 为每个字段创建 Scale\n attributeScale.names.forEach((field: string | number) => {\n scales.push(\n this.createScale(\n field,\n attribute.name,\n attribute.scale?.values,\n dataArray,\n ),\n );\n });\n\n // 为scales 设置值区间 Range\n if (scales.some((scale) => scale.type === StyleScaleType.VARIABLE)) {\n attributeScale.type = StyleScaleType.VARIABLE;\n scales.forEach((scale) => {\n // 如果设置了回调, 这不需要设置range\n if (!attributeScale.callback) {\n if (\n attributeScale.values &&\n attributeScale.values !== 'text' &&\n scale.option?.type !== ScaleTypes.DIVERGING &&\n scale.option?.type !== ScaleTypes.SEQUENTIAL\n ) {\n scale.scale.range(attributeScale.values); // 判断常量, 默认值\n } else if (scale.option?.type === ScaleTypes.CAT) {\n // 如果没有设置初值且 类型为cat,range ==domain;\n scale.scale.range(scale.option.domain);\n } else if (\n scale.option?.type === ScaleTypes.DIVERGING ||\n scale.option?.type === ScaleTypes.SEQUENTIAL\n ) {\n scale.scale.interpolator(\n // @ts-ignore\n d3interpolate.interpolateRgbBasis(attributeScale.values),\n );\n }\n }\n });\n } else {\n // 设置attribute 常量值 常量直接在value取值\n attributeScale.type = StyleScaleType.CONSTANT;\n attributeScale.defaultValues = scales.map((scale, index) => {\n return scale.scale(attributeScale.names[index]);\n });\n }\n attributeScale.scalers = scales.map((scale: IStyleScale) => {\n return {\n field: scale.field,\n func: scale.scale,\n option: scale.option,\n };\n });\n\n attribute.needRescale = false;\n }\n });\n }\n\n /**\n * @example\n * 'w*h' => ['w', 'h']\n * 'w' => ['w']\n */\n private parseFields(\n field: string[] | string | number[] | number,\n ): string[] | number[] {\n if (Array.isArray(field)) {\n return field;\n }\n if (isString(field)) {\n return field.split('*');\n }\n return [field];\n }\n\n private createScale(\n field: string | number,\n name: string,\n values: unknown[] | string | undefined,\n data?: IParseDataItem[],\n ): IStyleScale {\n // scale 支持根据视觉通道和字段\n const scaleOption: IScale | undefined =\n this.scaleOptions[name] && this.scaleOptions[name]?.field === field\n ? this.scaleOptions[name] // TODO zi\n : this.scaleOptions[field];\n const styleScale: IStyleScale = {\n field,\n scale: undefined,\n type: StyleScaleType.VARIABLE,\n option: scaleOption,\n };\n\n if (!data || !data.length) {\n if (scaleOption && scaleOption.type) {\n styleScale.scale = this.createDefaultScale(scaleOption);\n } else {\n styleScale.scale = d3.scaleOrdinal([field]);\n styleScale.type = StyleScaleType.CONSTANT;\n }\n return styleScale;\n }\n const firstValue = data!.find((d) => !isNil(d[field]))?.[field];\n // 常量 Scale\n if (this.isNumber(field) || (isNil(firstValue) && !scaleOption)) {\n styleScale.scale = d3.scaleOrdinal([field]);\n styleScale.type = StyleScaleType.CONSTANT;\n } else {\n // 根据数据类型判断 默认等分位,时间,和枚举类型\n let type =\n (scaleOption && scaleOption.type) || this.getDefaultType(firstValue);\n if (values === 'text') {\n // text 为内置变 如果是文本则为cat\n type = ScaleTypes.CAT;\n }\n const cfg = this.createScaleConfig(type, field, scaleOption, data);\n\n styleScale.scale = this.createDefaultScale(cfg);\n styleScale.option = cfg;\n }\n return styleScale;\n }\n\n private getDefaultType(firstValue: unknown) {\n let type = ScaleTypes.LINEAR;\n if (typeof firstValue === 'string') {\n type = dateRegex.test(firstValue) ? ScaleTypes.TIME : ScaleTypes.CAT;\n }\n return type;\n }\n // 生成Scale 默认配置\n private createScaleConfig(\n type: ScaleTypeName,\n field: string | number,\n scaleOption: IScale | undefined,\n data?: IParseDataItem[],\n ) {\n const cfg: IScale = {\n type,\n };\n const values = data?.map((item) => item[field]) || [];\n if (scaleOption?.domain) {\n cfg.domain = scaleOption?.domain;\n }\n // 默认类型为 Quantile Scales https://github.com/d3/d3-scale#quantile-scales\n else if (\n type !== ScaleTypes.CAT &&\n type !== ScaleTypes.QUANTILE &&\n type !== ScaleTypes.DIVERGING\n ) {\n // linear/\n cfg.domain = extent(values);\n } else if (type === ScaleTypes.CAT) {\n cfg.domain = uniq(values);\n } else if (type === ScaleTypes.QUANTILE) {\n cfg.domain = values;\n } else if (type === ScaleTypes.DIVERGING) {\n const minMax = extent(values);\n const neutral =\n scaleOption?.neutral !== undefined\n ? scaleOption?.neutral\n : (minMax[0] + minMax[1]) / 2;\n cfg.domain = [minMax[0], neutral, minMax[1]];\n }\n return { ...cfg, ...scaleOption };\n }\n\n // 创建Scale 实例\n private createDefaultScale({ type, domain, unknown, clamp, nice }: IScale) {\n // @ts-ignore\n const scale = scaleMap[type]();\n if (domain && scale.domain) {\n scale.domain(domain);\n }\n if (unknown) {\n scale.unknown(unknown);\n }\n if (clamp !== undefined && scale.clamp) {\n scale.clamp(clamp);\n }\n if (nice !== undefined && scale.nice) {\n scale.nice(nice);\n }\n // TODO 其他属性支持\n return scale;\n }\n}\n"],"file":"FeatureScalePlugin.js"}
1
+ {"version":3,"sources":["../../src/plugins/FeatureScalePlugin.ts"],"names":["ScaleTypes","StyleScaleType","TYPES","extent","d3interpolate","d3","inject","injectable","dateRegex","scaleMap","LINEAR","scaleLinear","POWER","scalePow","LOG","scaleLog","IDENTITY","scaleIdentity","SEQUENTIAL","scaleSequential","TIME","scaleTime","QUANTILE","scaleQuantile","QUANTIZE","scaleQuantize","THRESHOLD","scaleThreshold","CAT","scaleOrdinal","DIVERGING","scaleDiverging","FeatureScalePlugin","IGlobalConfigService","layer","styleAttributeService","hooks","init","tap","scaleOptions","getScaleOptions","attributes","getLayerStyleAttributes","dataArray","getSource","data","length","caculateScalesForAttributes","beforeRenderData","layerModelNeedUpdate","beforeRender","attributesToRescale","filter","attribute","needRescale","n","isNaN","parseFloat","isFinite","scaleCache","forEach","scale","attributeScale","type","name","names","parseFields","field","scales","push","createScale","values","some","VARIABLE","callback","option","tick","ticks","domain","range","interpolator","interpolateRgbBasis","CONSTANT","defaultValues","map","index","scalers","func","Array","isArray","split","scaleOption","styleScale","undefined","createDefaultScale","firstValue","find","d","isNumber","getDefaultType","cfg","createScaleConfig","test","item","minMax","neutral","unknown","clamp","nice"],"mappings":"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","sourcesContent":["import {\n IGlobalConfigService,\n ILayer,\n ILayerPlugin,\n IScale,\n IScaleOptions,\n IStyleAttribute,\n IStyleAttributeService,\n IStyleScale,\n ScaleTypeName,\n ScaleTypes,\n StyleScaleType,\n TYPES,\n} from '@antv/l7-core';\nimport { IParseDataItem } from '@antv/l7-source';\nimport { extent, ticks } from 'd3-array';\nimport * as d3interpolate from 'd3-interpolate';\nimport * as d3 from 'd3-scale';\nimport { inject, injectable } from 'inversify';\nimport { isNil, isString, uniq } from 'lodash';\nimport 'reflect-metadata';\n\nconst dateRegex = /^(?:(?!0000)[0-9]{4}([-/.]+)(?:(?:0?[1-9]|1[0-2])\\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\\1(?:29|30)|(?:0?[13578]|1[02])\\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\\2(?:29))(\\s+([01]|([01][0-9]|2[0-3])):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]))?$/;\n\nconst scaleMap = {\n [ScaleTypes.LINEAR]: d3.scaleLinear,\n [ScaleTypes.POWER]: d3.scalePow,\n [ScaleTypes.LOG]: d3.scaleLog,\n [ScaleTypes.IDENTITY]: d3.scaleIdentity,\n [ScaleTypes.SEQUENTIAL]: d3.scaleSequential,\n [ScaleTypes.TIME]: d3.scaleTime,\n [ScaleTypes.QUANTILE]: d3.scaleQuantile,\n [ScaleTypes.QUANTIZE]: d3.scaleQuantize,\n [ScaleTypes.THRESHOLD]: d3.scaleThreshold,\n [ScaleTypes.CAT]: d3.scaleOrdinal,\n [ScaleTypes.DIVERGING]: d3.scaleDiverging,\n};\n\n/**\n * 根据 Source 原始数据为指定字段创建 Scale,保存在 StyleAttribute 上,供下游插件使用\n */\n@injectable()\nexport default class FeatureScalePlugin implements ILayerPlugin {\n @inject(TYPES.IGlobalConfigService)\n private readonly configService: IGlobalConfigService;\n // key = field_attribute name\n private scaleCache: {\n [field: string]: IStyleScale;\n } = {};\n\n private scaleOptions: IScaleOptions = {};\n\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('FeatureScalePlugin', () => {\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n const { dataArray } = layer.getSource().data;\n if (dataArray.length === 0) {\n return;\n }\n this.caculateScalesForAttributes(attributes || [], dataArray);\n });\n\n // 检测数据是否需要更新\n layer.hooks.beforeRenderData.tap('FeatureScalePlugin', () => {\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n const { dataArray } = layer.getSource().data;\n this.caculateScalesForAttributes(attributes || [], dataArray);\n layer.layerModelNeedUpdate = true;\n return true;\n });\n\n layer.hooks.beforeRender.tap('FeatureScalePlugin', () => {\n if (layer.layerModelNeedUpdate) {\n return;\n }\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n if (attributes) {\n const { dataArray } = layer.getSource().data;\n if (dataArray.length === 0) {\n return;\n }\n const attributesToRescale = attributes.filter(\n (attribute) => attribute.needRescale,\n );\n if (attributesToRescale.length) {\n this.caculateScalesForAttributes(attributesToRescale, dataArray);\n }\n }\n });\n }\n private isNumber(n: any) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n private caculateScalesForAttributes(\n attributes: IStyleAttribute[],\n dataArray: IParseDataItem[],\n ) {\n this.scaleCache = {};\n attributes.forEach((attribute) => {\n if (attribute.scale) {\n // 创建Scale\n const attributeScale = attribute.scale;\n const type = attribute.name;\n attributeScale.names = this.parseFields(attribute!.scale!.field || []);\n const scales: IStyleScale[] = [];\n // 为每个字段创建 Scale\n attributeScale.names.forEach((field: string | number) => {\n scales.push(\n this.createScale(\n field,\n attribute.name,\n attribute.scale?.values,\n dataArray,\n ),\n );\n });\n\n // 为scales 设置值区间 Range\n if (scales.some((scale) => scale.type === StyleScaleType.VARIABLE)) {\n attributeScale.type = StyleScaleType.VARIABLE;\n scales.forEach((scale) => {\n // 如果设置了回调, 这不需要设置range\n if (!attributeScale.callback && attributeScale.values !== 'text') {\n switch (scale.option?.type) {\n case ScaleTypes.LOG:\n case ScaleTypes.LINEAR:\n case ScaleTypes.POWER:\n if (\n attributeScale.values &&\n attributeScale.values.length > 2\n ) {\n const tick = scale.scale.ticks(\n attributeScale.values.length,\n );\n scale.scale.domain(tick);\n }\n attributeScale.values\n ? scale.scale.range(attributeScale.values)\n : scale.scale.range(scale.option.domain);\n break;\n case ScaleTypes.QUANTILE:\n case ScaleTypes.QUANTIZE:\n case ScaleTypes.THRESHOLD:\n scale.scale.range(attributeScale.values); //\n break;\n case ScaleTypes.CAT:\n attributeScale.values\n ? scale.scale.range(attributeScale.values)\n : scale.scale.range(scale.option.domain);\n break;\n case ScaleTypes.DIVERGING:\n case ScaleTypes.SEQUENTIAL:\n scale.scale.interpolator(\n // @ts-ignore\n d3interpolate.interpolateRgbBasis(attributeScale.values),\n );\n break;\n }\n }\n if (attributeScale.values === 'text') {\n scale.scale.range(scale.option?.domain);\n }\n });\n } else {\n // 设置attribute 常量值 常量直接在value取值\n attributeScale.type = StyleScaleType.CONSTANT;\n attributeScale.defaultValues = scales.map((scale, index) => {\n return scale.scale(attributeScale.names[index]);\n });\n }\n attributeScale.scalers = scales.map((scale: IStyleScale) => {\n return {\n field: scale.field,\n func: scale.scale,\n option: scale.option,\n };\n });\n\n attribute.needRescale = false;\n }\n });\n }\n\n /**\n * @example\n * 'w*h' => ['w', 'h']\n * 'w' => ['w']\n */\n private parseFields(\n field: string[] | string | number[] | number,\n ): string[] | number[] {\n if (Array.isArray(field)) {\n return field;\n }\n if (isString(field)) {\n return field.split('*');\n }\n return [field];\n }\n\n private createScale(\n field: string | number,\n name: string,\n values: unknown[] | string | undefined,\n data?: IParseDataItem[],\n ): IStyleScale {\n // scale 支持根据视觉通道和字段\n const scaleOption: IScale | undefined =\n this.scaleOptions[name] && this.scaleOptions[name]?.field === field\n ? this.scaleOptions[name] // TODO zi\n : this.scaleOptions[field];\n const styleScale: IStyleScale = {\n field,\n scale: undefined,\n type: StyleScaleType.VARIABLE,\n option: scaleOption,\n };\n\n if (!data || !data.length) {\n if (scaleOption && scaleOption.type) {\n styleScale.scale = this.createDefaultScale(scaleOption);\n } else {\n styleScale.scale = d3.scaleOrdinal([field]);\n styleScale.type = StyleScaleType.CONSTANT;\n }\n return styleScale;\n }\n const firstValue = data!.find((d) => !isNil(d[field]))?.[field];\n // 常量 Scale\n if (this.isNumber(field) || (isNil(firstValue) && !scaleOption)) {\n styleScale.scale = d3.scaleOrdinal([field]);\n styleScale.type = StyleScaleType.CONSTANT;\n } else {\n // 根据数据类型判断 默认等分位,时间,和枚举类型\n let type =\n (scaleOption && scaleOption.type) || this.getDefaultType(firstValue);\n if (values === 'text') {\n // text 为内置变 如果是文本则为cat\n type = ScaleTypes.CAT;\n }\n const cfg = this.createScaleConfig(type, field, scaleOption, data);\n\n styleScale.scale = this.createDefaultScale(cfg);\n styleScale.option = cfg;\n }\n return styleScale;\n }\n\n private getDefaultType(firstValue: unknown) {\n let type = ScaleTypes.LINEAR;\n if (typeof firstValue === 'string') {\n type = dateRegex.test(firstValue) ? ScaleTypes.TIME : ScaleTypes.CAT;\n }\n return type;\n }\n // 生成Scale 默认配置\n private createScaleConfig(\n type: ScaleTypeName,\n field: string | number,\n scaleOption: IScale | undefined,\n data?: IParseDataItem[],\n ) {\n const cfg: IScale = {\n type,\n };\n const values = data?.map((item) => item[field]) || [];\n if (scaleOption?.domain) {\n cfg.domain = scaleOption?.domain;\n }\n // 默认类型为 Quantile Scales https://github.com/d3/d3-scale#quantile-scales\n else if (\n type !== ScaleTypes.CAT &&\n type !== ScaleTypes.QUANTILE &&\n type !== ScaleTypes.DIVERGING\n ) {\n // linear/\n cfg.domain = extent(values);\n } else if (type === ScaleTypes.CAT) {\n cfg.domain = uniq(values);\n } else if (type === ScaleTypes.QUANTILE) {\n cfg.domain = values;\n } else if (type === ScaleTypes.DIVERGING) {\n const minMax = extent(values);\n const neutral =\n scaleOption?.neutral !== undefined\n ? scaleOption?.neutral\n : (minMax[0] + minMax[1]) / 2;\n cfg.domain = [minMax[0], neutral, minMax[1]];\n }\n return { ...cfg, ...scaleOption };\n }\n\n // 创建Scale 实例\n private createDefaultScale({ type, domain, unknown, clamp, nice }: IScale) {\n // @ts-ignore\n const scale = scaleMap[type]();\n if (domain && scale.domain) {\n scale.domain(domain);\n }\n if (unknown) {\n scale.unknown(unknown);\n }\n if (clamp !== undefined && scale.clamp) {\n scale.clamp(clamp);\n }\n if (nice !== undefined && scale.nice) {\n scale.nice(nice);\n }\n // TODO 其他属性支持\n return scale;\n }\n}\n"],"file":"FeatureScalePlugin.js"}
@@ -41,6 +41,7 @@ export default class BaseTileLayer implements ITileLayer {
41
41
  private selectFeature;
42
42
  private bindSubLayerEvent;
43
43
  private initTileSetManager;
44
+ private mapchange;
44
45
  private bindTilesetEvent;
45
46
  private getCurrentView;
46
47
  }
@@ -321,6 +321,48 @@ var BaseTileLayer = function () {
321
321
 
322
322
  (_this$tilesetManager = this.tilesetManager) === null || _this$tilesetManager === void 0 ? void 0 : _this$tilesetManager.update(zoom, latLonBounds);
323
323
  }
324
+ }, {
325
+ key: "mapchange",
326
+ value: function mapchange() {
327
+ var _this$tilesetManager2;
328
+
329
+ var _this$getCurrentView2 = this.getCurrentView(),
330
+ latLonBounds = _this$getCurrentView2.latLonBounds,
331
+ zoom = _this$getCurrentView2.zoom;
332
+
333
+ if (this.mapService.version === 'GAODE1.x') {
334
+ var _this$parent$getLayer = this.parent.getLayerConfig(),
335
+ visible = _this$parent$getLayer.visible;
336
+
337
+ if (zoom < 3 && visible) {
338
+ this.parent.updateLayerConfig({
339
+ visible: false
340
+ });
341
+ this.layerService.updateLayerRenderList();
342
+ } else if (zoom >= 3 && !visible) {
343
+ this.parent.updateLayerConfig({
344
+ visible: true
345
+ });
346
+ this.layerService.updateLayerRenderList();
347
+ }
348
+ }
349
+
350
+ if (this.lastViewStates && this.lastViewStates.zoom === zoom && this.lastViewStates.latLonBounds.toString() === latLonBounds.toString()) {
351
+ return;
352
+ }
353
+
354
+ this.lastViewStates = {
355
+ zoom: zoom,
356
+ latLonBounds: latLonBounds
357
+ };
358
+
359
+ if (this.timer) {
360
+ clearTimeout(this.timer);
361
+ this.timer = null;
362
+ }
363
+
364
+ (_this$tilesetManager2 = this.tilesetManager) === null || _this$tilesetManager2 === void 0 ? void 0 : _this$tilesetManager2.update(zoom, latLonBounds);
365
+ }
324
366
  }, {
325
367
  key: "bindTilesetEvent",
326
368
  value: function bindTilesetEvent() {
@@ -340,47 +382,11 @@ var BaseTileLayer = function () {
340
382
  this.tilesetManager.on('tile-update', function () {
341
383
  _this7.tileUpdate();
342
384
  });
343
- this.mapService.on('mapchange', function (e) {
344
- var _this7$tilesetManager;
345
-
346
- var _this7$getCurrentView = _this7.getCurrentView(),
347
- latLonBounds = _this7$getCurrentView.latLonBounds,
348
- zoom = _this7$getCurrentView.zoom;
349
-
350
- if (_this7.mapService.version === 'GAODE1.x') {
351
- var _this7$parent$getLaye = _this7.parent.getLayerConfig(),
352
- visible = _this7$parent$getLaye.visible;
353
-
354
- if (zoom < 3 && visible) {
355
- _this7.parent.updateLayerConfig({
356
- visible: false
357
- });
358
-
359
- _this7.layerService.updateLayerRenderList();
360
- } else if (zoom >= 3 && !visible) {
361
- _this7.parent.updateLayerConfig({
362
- visible: true
363
- });
364
-
365
- _this7.layerService.updateLayerRenderList();
366
- }
367
- }
368
-
369
- if (_this7.lastViewStates && _this7.lastViewStates.zoom === zoom && _this7.lastViewStates.latLonBounds.toString() === latLonBounds.toString()) {
370
- return;
371
- }
372
-
373
- _this7.lastViewStates = {
374
- zoom: zoom,
375
- latLonBounds: latLonBounds
376
- };
377
-
378
- if (_this7.timer) {
379
- clearTimeout(_this7.timer);
380
- _this7.timer = null;
381
- }
382
-
383
- (_this7$tilesetManager = _this7.tilesetManager) === null || _this7$tilesetManager === void 0 ? void 0 : _this7$tilesetManager.update(zoom, latLonBounds);
385
+ this.mapService.on('zoomend', function () {
386
+ return _this7.mapchange();
387
+ });
388
+ this.mapService.on('moveend', function () {
389
+ return _this7.mapchange();
384
390
  });
385
391
  }
386
392
  }, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tile/tileLayer/baseTileLayer.ts"],"names":["decodePickingColor","TileLayerManager","BaseTileLayer","parent","rendererService","mapService","layerService","pickingService","select","active","parentSource","getSource","data","tilesetOptions","sourceLayer","coords","featureId","tileLayerManager","initTileSetManager","bindSubLayerEvent","bindSubLayerPick","scaleField","getScaleOptions","children","render","type","tilePickManager","clearPick","filter","child","inited","isVisible","getCurrentSelectedId","map","selectFeature","Uint8Array","setCurrentSelectedId","target","pickLayers","tile","error","console","warn","removeChilds","layerIDList","tilesetManager","tiles","isLoaded","length","createTile","layers","addChilds","isVisibleChange","getChilds","updateLayersConfig","emit","currentTiles","pickColors","selectedId","layer","hooks","beforeHighlight","call","setCurrentPickId","on","e","pickedColors","r","g","b","restLayers","isVector","setSelect","setHighlight","pickId","getPickID","setPickID","renderList","getRenderList","needPick","beforeSelect","source","tileset","initedTileset","bindTilesetEvent","getCurrentView","latLonBounds","zoom","update","tileUnLoad","tileError","tileUpdate","version","getLayerConfig","visible","updateLayerConfig","updateLayerRenderList","lastViewStates","toString","timer","clearTimeout","bounds","getBounds","getZoom"],"mappings":"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","sourcesContent":["import {\n IInteractionTarget,\n ILayer,\n ILayerService,\n IMapService,\n IScale,\n IScaleOptions,\n ISource,\n ITileLayer,\n ITileLayerManager,\n ITileLayerOPtions,\n} from '@antv/l7-core';\nimport { decodePickingColor, Tile, TilesetManager } from '@antv/l7-utils';\nimport { TileLayerManager } from '../manager/tileLayerManager';\n\nexport default class BaseTileLayer implements ITileLayer {\n public get children() {\n return this.tileLayerManager.children;\n }\n public type: string = 'baseTile';\n public sourceLayer: string;\n public parent: ILayer;\n // 瓦片是否加载成功\n public initedTileset: boolean = false;\n // 瓦片数据管理器\n public tilesetManager: TilesetManager | undefined;\n public tileLayerManager: ITileLayerManager;\n public scaleField: any;\n\n private lastViewStates: {\n zoom: number;\n latLonBounds: [number, number, number, number];\n };\n\n private timer: any;\n private mapService: IMapService;\n private layerService: ILayerService;\n private pickColors: {\n select: any;\n active: any;\n } = {\n select: null,\n active: null,\n };\n\n constructor({\n parent,\n rendererService,\n mapService,\n layerService,\n pickingService,\n }: ITileLayerOPtions) {\n const parentSource = parent.getSource();\n const { sourceLayer, coords, featureId } =\n parentSource?.data?.tilesetOptions || {};\n this.sourceLayer = sourceLayer;\n this.parent = parent;\n this.mapService = mapService;\n this.layerService = layerService;\n\n this.tileLayerManager = new TileLayerManager(\n parent,\n mapService,\n rendererService,\n pickingService,\n layerService,\n );\n\n this.initTileSetManager();\n this.bindSubLayerEvent();\n this.bindSubLayerPick();\n\n this.scaleField = this.parent.getScaleOptions();\n }\n\n /**\n * 渲染瓦片的图层\n */\n public render() {\n if (this.tileLayerManager) {\n this.tileLayerManager.render();\n }\n }\n\n public clearPick(type: string) {\n if (type === 'mousemove') {\n this.tileLayerManager.tilePickManager.clearPick();\n }\n }\n\n /**\n * 清除 select 的选中状态\n */\n public clearPickState() {\n this.children\n .filter((child) => child.inited && child.isVisible())\n .filter((child) => child.getCurrentSelectedId() !== null)\n .map((child) => {\n this.selectFeature(child, new Uint8Array([0, 0, 0, 0]));\n child.setCurrentSelectedId(null);\n });\n }\n\n /**\n * 瓦片图层独立的拾取逻辑\n * @param target\n * @returns\n */\n public pickLayers(target: IInteractionTarget) {\n return this.tileLayerManager.pickLayers(target);\n }\n\n public tileLoaded(tile: Tile) {\n //\n }\n\n public tileError(error: Error) {\n console.warn('error:', error);\n }\n\n public tileUnLoad(tile: Tile) {\n this.tileLayerManager.removeChilds(tile.layerIDList, false);\n }\n\n public tileUpdate() {\n // Base Function\n if (!this.tilesetManager) {\n return;\n }\n\n this.tilesetManager.tiles\n .filter((tile) => tile.isLoaded)\n .map((tile) => {\n if (tile.layerIDList.length === 0) {\n const { layers, layerIDList } = this.tileLayerManager.createTile(\n tile,\n );\n tile.layerIDList = layerIDList;\n this.tileLayerManager.addChilds(layers);\n } else {\n if (!tile.isVisibleChange) {\n return;\n }\n const layers = this.tileLayerManager.getChilds(tile.layerIDList);\n this.tileLayerManager.updateLayersConfig(\n layers,\n 'visible',\n tile.isVisible,\n );\n }\n });\n\n if (this.tilesetManager.isLoaded) {\n // 将事件抛出,图层上可以使用瓦片\n this.parent.emit('tiles-loaded', this.tilesetManager.currentTiles);\n }\n }\n\n protected setPickState(layers: ILayer[]) {\n if (this.pickColors.select) {\n const selectedId = decodePickingColor(this.pickColors.select);\n layers.map((layer) => {\n this.selectFeature(layer, this.pickColors.select);\n layer.setCurrentSelectedId(selectedId);\n });\n }\n\n if (this.pickColors.active) {\n const selectedId = decodePickingColor(this.pickColors.active);\n layers\n .filter((layer) => layer.inited && layer.isVisible())\n .map((layer) => {\n layer.hooks.beforeHighlight.call(this.pickColors.active);\n layer.setCurrentPickId(selectedId);\n });\n }\n }\n\n private bindSubLayerPick() {\n this.tileLayerManager.tilePickManager.on('pick', (e) => {\n // @ts-ignore\n const [r, g, b] = e.pickedColors;\n\n if (e.type === 'click') {\n const restLayers = this.children\n .filter(\n (child) => child.inited && child.isVisible() && child.isVector,\n )\n .filter((child) => child !== e.layer);\n this.setSelect(restLayers, [r, g, b]);\n } else {\n this.setHighlight([r, g, b]);\n }\n });\n\n this.tileLayerManager.tilePickManager.on('unpick', () => {\n this.pickColors.active = null;\n });\n }\n\n private setHighlight(pickedColors: any) {\n const pickId = decodePickingColor(pickedColors);\n this.pickColors.active = pickedColors;\n this.children\n .filter((child) => child.inited && child.isVisible() && child.isVector)\n // Tip: 使用 vectorLayer 上的 pickID 优化高亮操作(过滤重复操作)\n // @ts-ignore\n .filter((child) => child.getPickID() !== pickId)\n .map((child) => {\n // @ts-ignore\n child.setPickID(pickId);\n child.hooks.beforeHighlight.call(pickedColors);\n });\n }\n\n private setSelect(layers: ILayer[], pickedColors: any) {\n const selectedId = decodePickingColor(pickedColors);\n layers.map((layer) => {\n if (\n layer.getCurrentSelectedId() === null ||\n selectedId !== layer.getCurrentSelectedId()\n ) {\n this.selectFeature(layer, pickedColors);\n layer.setCurrentSelectedId(selectedId);\n this.pickColors.select = pickedColors;\n } else {\n this.selectFeature(layer, new Uint8Array([0, 0, 0, 0])); // toggle select\n layer.setCurrentSelectedId(null);\n this.pickColors.select = null;\n }\n });\n // unselect normal layer\n const renderList = this.layerService.getRenderList();\n renderList\n .filter(\n (layer) =>\n layer.inited &&\n !layer.isVector &&\n layer.isVisible() &&\n layer.needPick('click'),\n )\n .filter((layer) => layer.getCurrentSelectedId() !== null)\n .map((layer) => {\n this.selectFeature(layer, new Uint8Array([0, 0, 0, 0]));\n layer.setCurrentSelectedId(null);\n });\n }\n\n private selectFeature(layer: ILayer, pickedColors: Uint8Array | undefined) {\n // @ts-ignore\n const [r, g, b] = pickedColors;\n layer.hooks.beforeSelect.call([r, g, b]);\n }\n\n private bindSubLayerEvent() {\n /**\n * layer.on('click', (ev) => {}); // 鼠标左键点击图层事件\n * layer.on('mouseenter', (ev) => {}); // 鼠标进入图层要素\n * layer.on('mousemove', (ev) => {}); // 鼠标在图层上移动时触发\n * layer.on('mouseout', (ev) => {}); // 鼠标移出图层要素时触发\n * layer.on('mouseup', (ev) => {}); // 鼠标在图层上单击抬起时触发\n * layer.on('mousedown', (ev) => {}); // 鼠标在图层上单击按下时触发\n * layer.on('contextmenu', (ev) => {}); // 图层要素点击右键菜单\n *\n * 鼠标在图层外的事件\n * layer.on('unclick', (ev) => {}); // 图层外点击\n * layer.on('unmousemove', (ev) => {}); // 图层外移动\n * layer.on('unmouseup', (ev) => {}); // 图层外鼠标抬起\n * layer.on('unmousedown', (ev) => {}); // 图层外单击按下时触发\n * layer.on('uncontextmenu', (ev) => {}); // 图层外点击右键\n * layer.on('unpick', (ev) => {}); // 图层外的操作的所有事件\n */\n this.parent.on('subLayerClick', (e) => {\n this.parent.emit('click', { ...e });\n });\n this.parent.on('subLayerMouseMove', (e) =>\n this.parent.emit('mousemove', { ...e }),\n );\n this.parent.on('subLayerMouseUp', (e) =>\n this.parent.emit('mouseup', { ...e }),\n );\n this.parent.on('subLayerMouseEnter', (e) =>\n this.parent.emit('mouseenter', { ...e }),\n );\n this.parent.on('subLayerMouseOut', (e) =>\n this.parent.emit('mouseout', { ...e }),\n );\n this.parent.on('subLayerMouseDown', (e) =>\n this.parent.emit('mousedown', { ...e }),\n );\n this.parent.on('subLayerContextmenu', (e) =>\n this.parent.emit('contextmenu', { ...e }),\n );\n\n // vector layer 图层外事件\n this.parent.on('subLayerUnClick', (e) =>\n this.parent.emit('unclick', { ...e }),\n );\n this.parent.on('subLayerUnMouseMove', (e) =>\n this.parent.emit('unmousemove', { ...e }),\n );\n this.parent.on('subLayerUnMouseUp', (e) =>\n this.parent.emit('unmouseup', { ...e }),\n );\n this.parent.on('subLayerUnMouseDown', (e) =>\n this.parent.emit('unmousedown', { ...e }),\n );\n this.parent.on('subLayerUnContextmenu', (e) =>\n this.parent.emit('uncontextmenu', { ...e }),\n );\n }\n\n private initTileSetManager() {\n const source: ISource = this.parent.getSource();\n this.tilesetManager = source.tileset as TilesetManager;\n\n if (!this.initedTileset) {\n this.bindTilesetEvent();\n this.initedTileset = true;\n }\n\n const { latLonBounds, zoom } = this.getCurrentView();\n this.tilesetManager?.update(zoom, latLonBounds);\n }\n\n private bindTilesetEvent() {\n if (!this.tilesetManager) {\n return;\n }\n // 瓦片数据加载成功\n this.tilesetManager.on('tile-loaded', (tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n });\n\n // 瓦片数据从缓存删除或被执行重新加载\n this.tilesetManager.on('tile-unload', (tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n this.tileUnLoad(tile);\n });\n\n // 瓦片数据加载失败\n this.tilesetManager.on('tile-error', (error, tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n this.tileError(error);\n });\n\n // 瓦片显隐状态更新\n this.tilesetManager.on('tile-update', () => {\n this.tileUpdate();\n });\n\n // 地图视野发生改变\n this.mapService.on('mapchange', (e) => {\n const { latLonBounds, zoom } = this.getCurrentView();\n\n if (this.mapService.version === 'GAODE1.x') {\n const { visible } = this.parent.getLayerConfig();\n if (zoom < 3 && visible) {\n this.parent.updateLayerConfig({ visible: false });\n this.layerService.updateLayerRenderList();\n } else if (zoom >= 3 && !visible) {\n this.parent.updateLayerConfig({ visible: true });\n this.layerService.updateLayerRenderList();\n }\n }\n\n if (\n this.lastViewStates &&\n this.lastViewStates.zoom === zoom &&\n this.lastViewStates.latLonBounds.toString() === latLonBounds.toString()\n ) {\n return;\n }\n this.lastViewStates = { zoom, latLonBounds };\n\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n\n // this.timer = setTimeout(() => {\n this.tilesetManager?.update(zoom, latLonBounds);\n // }, 250);\n });\n }\n\n private getCurrentView() {\n const bounds = this.mapService.getBounds();\n const latLonBounds: [number, number, number, number] = [\n bounds[0][0],\n bounds[0][1],\n bounds[1][0],\n bounds[1][1],\n ];\n const zoom = this.mapService.getZoom();\n\n return { latLonBounds, zoom };\n }\n}\n"],"file":"baseTileLayer.js"}
1
+ {"version":3,"sources":["../../../src/tile/tileLayer/baseTileLayer.ts"],"names":["decodePickingColor","TileLayerManager","BaseTileLayer","parent","rendererService","mapService","layerService","pickingService","select","active","parentSource","getSource","data","tilesetOptions","sourceLayer","coords","featureId","tileLayerManager","initTileSetManager","bindSubLayerEvent","bindSubLayerPick","scaleField","getScaleOptions","children","render","type","tilePickManager","clearPick","filter","child","inited","isVisible","getCurrentSelectedId","map","selectFeature","Uint8Array","setCurrentSelectedId","target","pickLayers","tile","error","console","warn","removeChilds","layerIDList","tilesetManager","tiles","isLoaded","length","createTile","layers","addChilds","isVisibleChange","getChilds","updateLayersConfig","emit","currentTiles","pickColors","selectedId","layer","hooks","beforeHighlight","call","setCurrentPickId","on","e","pickedColors","r","g","b","restLayers","isVector","setSelect","setHighlight","pickId","getPickID","setPickID","renderList","getRenderList","needPick","beforeSelect","source","tileset","initedTileset","bindTilesetEvent","getCurrentView","latLonBounds","zoom","update","version","getLayerConfig","visible","updateLayerConfig","updateLayerRenderList","lastViewStates","toString","timer","clearTimeout","tileUnLoad","tileError","tileUpdate","mapchange","bounds","getBounds","getZoom"],"mappings":"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","sourcesContent":["import {\n IInteractionTarget,\n ILayer,\n ILayerService,\n IMapService,\n IScale,\n IScaleOptions,\n ISource,\n ITileLayer,\n ITileLayerManager,\n ITileLayerOPtions,\n} from '@antv/l7-core';\nimport { decodePickingColor, Tile, TilesetManager } from '@antv/l7-utils';\nimport { TileLayerManager } from '../manager/tileLayerManager';\n\nexport default class BaseTileLayer implements ITileLayer {\n public get children() {\n return this.tileLayerManager.children;\n }\n public type: string = 'baseTile';\n public sourceLayer: string;\n public parent: ILayer;\n // 瓦片是否加载成功\n public initedTileset: boolean = false;\n // 瓦片数据管理器\n public tilesetManager: TilesetManager | undefined;\n public tileLayerManager: ITileLayerManager;\n public scaleField: any;\n\n private lastViewStates: {\n zoom: number;\n latLonBounds: [number, number, number, number];\n };\n\n private timer: any;\n private mapService: IMapService;\n private layerService: ILayerService;\n private pickColors: {\n select: any;\n active: any;\n } = {\n select: null,\n active: null,\n };\n\n constructor({\n parent,\n rendererService,\n mapService,\n layerService,\n pickingService,\n }: ITileLayerOPtions) {\n const parentSource = parent.getSource();\n const { sourceLayer, coords, featureId } =\n parentSource?.data?.tilesetOptions || {};\n this.sourceLayer = sourceLayer;\n this.parent = parent;\n this.mapService = mapService;\n this.layerService = layerService;\n\n this.tileLayerManager = new TileLayerManager(\n parent,\n mapService,\n rendererService,\n pickingService,\n layerService,\n );\n\n this.initTileSetManager();\n this.bindSubLayerEvent();\n this.bindSubLayerPick();\n\n this.scaleField = this.parent.getScaleOptions();\n }\n\n /**\n * 渲染瓦片的图层\n */\n public render() {\n if (this.tileLayerManager) {\n this.tileLayerManager.render();\n }\n }\n\n public clearPick(type: string) {\n if (type === 'mousemove') {\n this.tileLayerManager.tilePickManager.clearPick();\n }\n }\n\n /**\n * 清除 select 的选中状态\n */\n public clearPickState() {\n this.children\n .filter((child) => child.inited && child.isVisible())\n .filter((child) => child.getCurrentSelectedId() !== null)\n .map((child) => {\n this.selectFeature(child, new Uint8Array([0, 0, 0, 0]));\n child.setCurrentSelectedId(null);\n });\n }\n\n /**\n * 瓦片图层独立的拾取逻辑\n * @param target\n * @returns\n */\n public pickLayers(target: IInteractionTarget) {\n return this.tileLayerManager.pickLayers(target);\n }\n\n public tileLoaded(tile: Tile) {\n //\n }\n\n public tileError(error: Error) {\n console.warn('error:', error);\n }\n\n public tileUnLoad(tile: Tile) {\n this.tileLayerManager.removeChilds(tile.layerIDList, false);\n }\n\n public tileUpdate() {\n // Base Function\n if (!this.tilesetManager) {\n return;\n }\n\n this.tilesetManager.tiles\n .filter((tile) => tile.isLoaded)\n .map((tile) => {\n if (tile.layerIDList.length === 0) {\n const { layers, layerIDList } = this.tileLayerManager.createTile(\n tile,\n );\n tile.layerIDList = layerIDList;\n this.tileLayerManager.addChilds(layers);\n } else {\n if (!tile.isVisibleChange) {\n return;\n }\n const layers = this.tileLayerManager.getChilds(tile.layerIDList);\n this.tileLayerManager.updateLayersConfig(\n layers,\n 'visible',\n tile.isVisible,\n );\n }\n });\n\n if (this.tilesetManager.isLoaded) {\n // 将事件抛出,图层上可以使用瓦片\n this.parent.emit('tiles-loaded', this.tilesetManager.currentTiles);\n }\n }\n\n protected setPickState(layers: ILayer[]) {\n if (this.pickColors.select) {\n const selectedId = decodePickingColor(this.pickColors.select);\n layers.map((layer) => {\n this.selectFeature(layer, this.pickColors.select);\n layer.setCurrentSelectedId(selectedId);\n });\n }\n\n if (this.pickColors.active) {\n const selectedId = decodePickingColor(this.pickColors.active);\n layers\n .filter((layer) => layer.inited && layer.isVisible())\n .map((layer) => {\n layer.hooks.beforeHighlight.call(this.pickColors.active);\n layer.setCurrentPickId(selectedId);\n });\n }\n }\n\n private bindSubLayerPick() {\n this.tileLayerManager.tilePickManager.on('pick', (e) => {\n // @ts-ignore\n const [r, g, b] = e.pickedColors;\n\n if (e.type === 'click') {\n const restLayers = this.children\n .filter(\n (child) => child.inited && child.isVisible() && child.isVector,\n )\n .filter((child) => child !== e.layer);\n this.setSelect(restLayers, [r, g, b]);\n } else {\n this.setHighlight([r, g, b]);\n }\n });\n\n this.tileLayerManager.tilePickManager.on('unpick', () => {\n this.pickColors.active = null;\n });\n }\n\n private setHighlight(pickedColors: any) {\n const pickId = decodePickingColor(pickedColors);\n this.pickColors.active = pickedColors;\n this.children\n .filter((child) => child.inited && child.isVisible() && child.isVector)\n // Tip: 使用 vectorLayer 上的 pickID 优化高亮操作(过滤重复操作)\n // @ts-ignore\n .filter((child) => child.getPickID() !== pickId)\n .map((child) => {\n // @ts-ignore\n child.setPickID(pickId);\n child.hooks.beforeHighlight.call(pickedColors);\n });\n }\n\n private setSelect(layers: ILayer[], pickedColors: any) {\n const selectedId = decodePickingColor(pickedColors);\n layers.map((layer) => {\n if (\n layer.getCurrentSelectedId() === null ||\n selectedId !== layer.getCurrentSelectedId()\n ) {\n this.selectFeature(layer, pickedColors);\n layer.setCurrentSelectedId(selectedId);\n this.pickColors.select = pickedColors;\n } else {\n this.selectFeature(layer, new Uint8Array([0, 0, 0, 0])); // toggle select\n layer.setCurrentSelectedId(null);\n this.pickColors.select = null;\n }\n });\n // unselect normal layer\n const renderList = this.layerService.getRenderList();\n renderList\n .filter(\n (layer) =>\n layer.inited &&\n !layer.isVector &&\n layer.isVisible() &&\n layer.needPick('click'),\n )\n .filter((layer) => layer.getCurrentSelectedId() !== null)\n .map((layer) => {\n this.selectFeature(layer, new Uint8Array([0, 0, 0, 0]));\n layer.setCurrentSelectedId(null);\n });\n }\n\n private selectFeature(layer: ILayer, pickedColors: Uint8Array | undefined) {\n // @ts-ignore\n const [r, g, b] = pickedColors;\n layer.hooks.beforeSelect.call([r, g, b]);\n }\n\n private bindSubLayerEvent() {\n /**\n * layer.on('click', (ev) => {}); // 鼠标左键点击图层事件\n * layer.on('mouseenter', (ev) => {}); // 鼠标进入图层要素\n * layer.on('mousemove', (ev) => {}); // 鼠标在图层上移动时触发\n * layer.on('mouseout', (ev) => {}); // 鼠标移出图层要素时触发\n * layer.on('mouseup', (ev) => {}); // 鼠标在图层上单击抬起时触发\n * layer.on('mousedown', (ev) => {}); // 鼠标在图层上单击按下时触发\n * layer.on('contextmenu', (ev) => {}); // 图层要素点击右键菜单\n *\n * 鼠标在图层外的事件\n * layer.on('unclick', (ev) => {}); // 图层外点击\n * layer.on('unmousemove', (ev) => {}); // 图层外移动\n * layer.on('unmouseup', (ev) => {}); // 图层外鼠标抬起\n * layer.on('unmousedown', (ev) => {}); // 图层外单击按下时触发\n * layer.on('uncontextmenu', (ev) => {}); // 图层外点击右键\n * layer.on('unpick', (ev) => {}); // 图层外的操作的所有事件\n */\n this.parent.on('subLayerClick', (e) => {\n this.parent.emit('click', { ...e });\n });\n this.parent.on('subLayerMouseMove', (e) =>\n this.parent.emit('mousemove', { ...e }),\n );\n this.parent.on('subLayerMouseUp', (e) =>\n this.parent.emit('mouseup', { ...e }),\n );\n this.parent.on('subLayerMouseEnter', (e) =>\n this.parent.emit('mouseenter', { ...e }),\n );\n this.parent.on('subLayerMouseOut', (e) =>\n this.parent.emit('mouseout', { ...e }),\n );\n this.parent.on('subLayerMouseDown', (e) =>\n this.parent.emit('mousedown', { ...e }),\n );\n this.parent.on('subLayerContextmenu', (e) =>\n this.parent.emit('contextmenu', { ...e }),\n );\n\n // vector layer 图层外事件\n this.parent.on('subLayerUnClick', (e) =>\n this.parent.emit('unclick', { ...e }),\n );\n this.parent.on('subLayerUnMouseMove', (e) =>\n this.parent.emit('unmousemove', { ...e }),\n );\n this.parent.on('subLayerUnMouseUp', (e) =>\n this.parent.emit('unmouseup', { ...e }),\n );\n this.parent.on('subLayerUnMouseDown', (e) =>\n this.parent.emit('unmousedown', { ...e }),\n );\n this.parent.on('subLayerUnContextmenu', (e) =>\n this.parent.emit('uncontextmenu', { ...e }),\n );\n }\n\n private initTileSetManager() {\n const source: ISource = this.parent.getSource();\n this.tilesetManager = source.tileset as TilesetManager;\n\n if (!this.initedTileset) {\n this.bindTilesetEvent();\n this.initedTileset = true;\n }\n\n const { latLonBounds, zoom } = this.getCurrentView();\n this.tilesetManager?.update(zoom, latLonBounds);\n }\n\n private mapchange() {\n const { latLonBounds, zoom } = this.getCurrentView();\n\n if (this.mapService.version === 'GAODE1.x') {\n const { visible } = this.parent.getLayerConfig();\n if (zoom < 3 && visible) {\n this.parent.updateLayerConfig({ visible: false });\n this.layerService.updateLayerRenderList();\n } else if (zoom >= 3 && !visible) {\n this.parent.updateLayerConfig({ visible: true });\n this.layerService.updateLayerRenderList();\n }\n }\n\n if (\n this.lastViewStates &&\n this.lastViewStates.zoom === zoom &&\n this.lastViewStates.latLonBounds.toString() === latLonBounds.toString()\n ) {\n return;\n }\n this.lastViewStates = { zoom, latLonBounds };\n\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n\n // this.timer = setTimeout(() => {\n this.tilesetManager?.update(zoom, latLonBounds);\n // }, 250);\n }\n\n private bindTilesetEvent() {\n if (!this.tilesetManager) {\n return;\n }\n // 瓦片数据加载成功\n this.tilesetManager.on('tile-loaded', (tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n });\n\n // 瓦片数据从缓存删除或被执行重新加载\n this.tilesetManager.on('tile-unload', (tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n this.tileUnLoad(tile);\n });\n\n // 瓦片数据加载失败\n this.tilesetManager.on('tile-error', (error, tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n this.tileError(error);\n });\n\n // 瓦片显隐状态更新\n this.tilesetManager.on('tile-update', () => {\n this.tileUpdate();\n });\n\n // 地图视野发生改变\n this.mapService.on('zoomend', () => this.mapchange());\n this.mapService.on('moveend', () => this.mapchange());\n }\n\n private getCurrentView() {\n const bounds = this.mapService.getBounds();\n const latLonBounds: [number, number, number, number] = [\n bounds[0][0],\n bounds[0][1],\n bounds[1][0],\n bounds[1][1],\n ];\n const zoom = this.mapService.getZoom();\n\n return { latLonBounds, zoom };\n }\n}\n"],"file":"baseTileLayer.js"}
@@ -139,17 +139,43 @@ var FeatureScalePlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inve
139
139
  })) {
140
140
  attributeScale.type = _l7Core.StyleScaleType.VARIABLE;
141
141
  scales.forEach(function (scale) {
142
- if (!attributeScale.callback) {
143
- var _scale$option, _scale$option2, _scale$option3, _scale$option4, _scale$option5;
144
-
145
- if (attributeScale.values && attributeScale.values !== 'text' && ((_scale$option = scale.option) === null || _scale$option === void 0 ? void 0 : _scale$option.type) !== _l7Core.ScaleTypes.DIVERGING && ((_scale$option2 = scale.option) === null || _scale$option2 === void 0 ? void 0 : _scale$option2.type) !== _l7Core.ScaleTypes.SEQUENTIAL) {
146
- scale.scale.range(attributeScale.values);
147
- } else if (((_scale$option3 = scale.option) === null || _scale$option3 === void 0 ? void 0 : _scale$option3.type) === _l7Core.ScaleTypes.CAT) {
148
- scale.scale.range(scale.option.domain);
149
- } else if (((_scale$option4 = scale.option) === null || _scale$option4 === void 0 ? void 0 : _scale$option4.type) === _l7Core.ScaleTypes.DIVERGING || ((_scale$option5 = scale.option) === null || _scale$option5 === void 0 ? void 0 : _scale$option5.type) === _l7Core.ScaleTypes.SEQUENTIAL) {
150
- scale.scale.interpolator(d3interpolate.interpolateRgbBasis(attributeScale.values));
142
+ var _scale$option;
143
+
144
+ if (!attributeScale.callback && attributeScale.values !== 'text') {
145
+ switch ((_scale$option = scale.option) === null || _scale$option === void 0 ? void 0 : _scale$option.type) {
146
+ case _l7Core.ScaleTypes.LOG:
147
+ case _l7Core.ScaleTypes.LINEAR:
148
+ case _l7Core.ScaleTypes.POWER:
149
+ if (attributeScale.values && attributeScale.values.length > 2) {
150
+ var tick = scale.scale.ticks(attributeScale.values.length);
151
+ scale.scale.domain(tick);
152
+ }
153
+
154
+ attributeScale.values ? scale.scale.range(attributeScale.values) : scale.scale.range(scale.option.domain);
155
+ break;
156
+
157
+ case _l7Core.ScaleTypes.QUANTILE:
158
+ case _l7Core.ScaleTypes.QUANTIZE:
159
+ case _l7Core.ScaleTypes.THRESHOLD:
160
+ scale.scale.range(attributeScale.values);
161
+ break;
162
+
163
+ case _l7Core.ScaleTypes.CAT:
164
+ attributeScale.values ? scale.scale.range(attributeScale.values) : scale.scale.range(scale.option.domain);
165
+ break;
166
+
167
+ case _l7Core.ScaleTypes.DIVERGING:
168
+ case _l7Core.ScaleTypes.SEQUENTIAL:
169
+ scale.scale.interpolator(d3interpolate.interpolateRgbBasis(attributeScale.values));
170
+ break;
151
171
  }
152
172
  }
173
+
174
+ if (attributeScale.values === 'text') {
175
+ var _scale$option2;
176
+
177
+ scale.scale.range((_scale$option2 = scale.option) === null || _scale$option2 === void 0 ? void 0 : _scale$option2.domain);
178
+ }
153
179
  });
154
180
  } else {
155
181
  attributeScale.type = _l7Core.StyleScaleType.CONSTANT;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/FeatureScalePlugin.ts"],"names":["dateRegex","scaleMap","ScaleTypes","LINEAR","d3","scaleLinear","POWER","scalePow","LOG","scaleLog","IDENTITY","scaleIdentity","SEQUENTIAL","scaleSequential","TIME","scaleTime","QUANTILE","scaleQuantile","QUANTIZE","scaleQuantize","THRESHOLD","scaleThreshold","CAT","scaleOrdinal","DIVERGING","scaleDiverging","FeatureScalePlugin","TYPES","IGlobalConfigService","layer","styleAttributeService","hooks","init","tap","scaleOptions","getScaleOptions","attributes","getLayerStyleAttributes","dataArray","getSource","data","length","caculateScalesForAttributes","beforeRenderData","layerModelNeedUpdate","beforeRender","attributesToRescale","filter","attribute","needRescale","n","isNaN","parseFloat","isFinite","scaleCache","forEach","scale","attributeScale","type","name","names","parseFields","field","scales","push","createScale","values","some","StyleScaleType","VARIABLE","callback","option","range","domain","interpolator","d3interpolate","interpolateRgbBasis","CONSTANT","defaultValues","map","index","scalers","func","Array","isArray","split","scaleOption","styleScale","undefined","createDefaultScale","firstValue","find","d","isNumber","getDefaultType","cfg","createScaleConfig","test","item","minMax","neutral","unknown","clamp","nice"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAeA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;;;AAEA,IAAMA,SAAS,GAAG,sTAAlB;AAEA,IAAMC,QAAQ,6DACXC,mBAAWC,MADA,EACSC,EAAE,CAACC,WADZ,4CAEXH,mBAAWI,KAFA,EAEQF,EAAE,CAACG,QAFX,4CAGXL,mBAAWM,GAHA,EAGMJ,EAAE,CAACK,QAHT,4CAIXP,mBAAWQ,QAJA,EAIWN,EAAE,CAACO,aAJd,4CAKXT,mBAAWU,UALA,EAKaR,EAAE,CAACS,eALhB,4CAMXX,mBAAWY,IANA,EAMOV,EAAE,CAACW,SANV,4CAOXb,mBAAWc,QAPA,EAOWZ,EAAE,CAACa,aAPd,4CAQXf,mBAAWgB,QARA,EAQWd,EAAE,CAACe,aARd,4CASXjB,mBAAWkB,SATA,EASYhB,EAAE,CAACiB,cATf,4CAUXnB,mBAAWoB,GAVA,EAUMlB,EAAE,CAACmB,YAVT,4CAWXrB,mBAAWsB,SAXA,EAWYpB,EAAE,CAACqB,cAXf,aAAd;IAkBqBC,kB,WADpB,4B,UAEE,uBAAOC,cAAMC,oBAAb,C;;;;sDAKG,E;wDAEkC,E;;;;;WAEtC,eACEC,KADF,QAKE;AAAA;;AAAA,UAFEC,qBAEF,QAFEA,qBAEF;AACAD,MAAAA,KAAK,CAACE,KAAN,CAAYC,IAAZ,CAAiBC,GAAjB,CAAqB,oBAArB,EAA2C,YAAM;AAC/C,QAAA,KAAI,CAACC,YAAL,GAAoBL,KAAK,CAACM,eAAN,EAApB;AACA,YAAMC,UAAU,GAAGN,qBAAqB,CAACO,uBAAtB,EAAnB;AACA,YAAQC,SAAR,GAAsBT,KAAK,CAACU,SAAN,GAAkBC,IAAxC,CAAQF,SAAR;;AACA,YAAIA,SAAS,CAACG,MAAV,KAAqB,CAAzB,EAA4B;AAC1B;AACD;;AACD,QAAA,KAAI,CAACC,2BAAL,CAAiCN,UAAU,IAAI,EAA/C,EAAmDE,SAAnD;AACD,OARD;AAWAT,MAAAA,KAAK,CAACE,KAAN,CAAYY,gBAAZ,CAA6BV,GAA7B,CAAiC,oBAAjC,EAAuD,YAAM;AAC3D,QAAA,KAAI,CAACC,YAAL,GAAoBL,KAAK,CAACM,eAAN,EAApB;AACA,YAAMC,UAAU,GAAGN,qBAAqB,CAACO,uBAAtB,EAAnB;AACA,YAAQC,SAAR,GAAsBT,KAAK,CAACU,SAAN,GAAkBC,IAAxC,CAAQF,SAAR;;AACA,QAAA,KAAI,CAACI,2BAAL,CAAiCN,UAAU,IAAI,EAA/C,EAAmDE,SAAnD;;AACAT,QAAAA,KAAK,CAACe,oBAAN,GAA6B,IAA7B;AACA,eAAO,IAAP;AACD,OAPD;AASAf,MAAAA,KAAK,CAACE,KAAN,CAAYc,YAAZ,CAAyBZ,GAAzB,CAA6B,oBAA7B,EAAmD,YAAM;AACvD,YAAIJ,KAAK,CAACe,oBAAV,EAAgC;AAC9B;AACD;;AACD,QAAA,KAAI,CAACV,YAAL,GAAoBL,KAAK,CAACM,eAAN,EAApB;AACA,YAAMC,UAAU,GAAGN,qBAAqB,CAACO,uBAAtB,EAAnB;;AACA,YAAID,UAAJ,EAAgB;AACd,cAAQE,SAAR,GAAsBT,KAAK,CAACU,SAAN,GAAkBC,IAAxC,CAAQF,SAAR;;AACA,cAAIA,SAAS,CAACG,MAAV,KAAqB,CAAzB,EAA4B;AAC1B;AACD;;AACD,cAAMK,mBAAmB,GAAGV,UAAU,CAACW,MAAX,CAC1B,UAACC,SAAD;AAAA,mBAAeA,SAAS,CAACC,WAAzB;AAAA,WAD0B,CAA5B;;AAGA,cAAIH,mBAAmB,CAACL,MAAxB,EAAgC;AAC9B,YAAA,KAAI,CAACC,2BAAL,CAAiCI,mBAAjC,EAAsDR,SAAtD;AACD;AACF;AACF,OAlBD;AAmBD;;;WACD,kBAAiBY,CAAjB,EAAyB;AACvB,aAAO,CAACC,KAAK,CAACC,UAAU,CAACF,CAAD,CAAX,CAAN,IAAyBG,QAAQ,CAACH,CAAD,CAAxC;AACD;;;WAED,qCACEd,UADF,EAEEE,SAFF,EAGE;AAAA;;AACA,WAAKgB,UAAL,GAAkB,EAAlB;AACAlB,MAAAA,UAAU,CAACmB,OAAX,CAAmB,UAACP,SAAD,EAAe;AAChC,YAAIA,SAAS,CAACQ,KAAd,EAAqB;AAEnB,cAAMC,cAAc,GAAGT,SAAS,CAACQ,KAAjC;AACA,cAAME,IAAI,GAAGV,SAAS,CAACW,IAAvB;AACAF,UAAAA,cAAc,CAACG,KAAf,GAAuB,MAAI,CAACC,WAAL,CAAiBb,SAAS,CAAEQ,KAAX,CAAkBM,KAAlB,IAA2B,EAA5C,CAAvB;AACA,cAAMC,MAAqB,GAAG,EAA9B;AAEAN,UAAAA,cAAc,CAACG,KAAf,CAAqBL,OAArB,CAA6B,UAACO,KAAD,EAA4B;AAAA;;AACvDC,YAAAA,MAAM,CAACC,IAAP,CACE,MAAI,CAACC,WAAL,CACEH,KADF,EAEEd,SAAS,CAACW,IAFZ,sBAGEX,SAAS,CAACQ,KAHZ,qDAGE,iBAAiBU,MAHnB,EAIE5B,SAJF,CADF;AAQD,WATD;;AAYA,cAAIyB,MAAM,CAACI,IAAP,CAAY,UAACX,KAAD;AAAA,mBAAWA,KAAK,CAACE,IAAN,KAAeU,uBAAeC,QAAzC;AAAA,WAAZ,CAAJ,EAAoE;AAClEZ,YAAAA,cAAc,CAACC,IAAf,GAAsBU,uBAAeC,QAArC;AACAN,YAAAA,MAAM,CAACR,OAAP,CAAe,UAACC,KAAD,EAAW;AAExB,kBAAI,CAACC,cAAc,CAACa,QAApB,EAA8B;AAAA;;AAC5B,oBACEb,cAAc,CAACS,MAAf,IACAT,cAAc,CAACS,MAAf,KAA0B,MAD1B,IAEA,kBAAAV,KAAK,CAACe,MAAN,gEAAcb,IAAd,MAAuBxD,mBAAWsB,SAFlC,IAGA,mBAAAgC,KAAK,CAACe,MAAN,kEAAcb,IAAd,MAAuBxD,mBAAWU,UAJpC,EAKE;AACA4C,kBAAAA,KAAK,CAACA,KAAN,CAAYgB,KAAZ,CAAkBf,cAAc,CAACS,MAAjC;AACD,iBAPD,MAOO,IAAI,mBAAAV,KAAK,CAACe,MAAN,kEAAcb,IAAd,MAAuBxD,mBAAWoB,GAAtC,EAA2C;AAEhDkC,kBAAAA,KAAK,CAACA,KAAN,CAAYgB,KAAZ,CAAkBhB,KAAK,CAACe,MAAN,CAAaE,MAA/B;AACD,iBAHM,MAGA,IACL,mBAAAjB,KAAK,CAACe,MAAN,kEAAcb,IAAd,MAAuBxD,mBAAWsB,SAAlC,IACA,mBAAAgC,KAAK,CAACe,MAAN,kEAAcb,IAAd,MAAuBxD,mBAAWU,UAF7B,EAGL;AACA4C,kBAAAA,KAAK,CAACA,KAAN,CAAYkB,YAAZ,CAEEC,aAAa,CAACC,mBAAd,CAAkCnB,cAAc,CAACS,MAAjD,CAFF;AAID;AACF;AACF,aAvBD;AAwBD,WA1BD,MA0BO;AAELT,YAAAA,cAAc,CAACC,IAAf,GAAsBU,uBAAeS,QAArC;AACApB,YAAAA,cAAc,CAACqB,aAAf,GAA+Bf,MAAM,CAACgB,GAAP,CAAW,UAACvB,KAAD,EAAQwB,KAAR,EAAkB;AAC1D,qBAAOxB,KAAK,CAACA,KAAN,CAAYC,cAAc,CAACG,KAAf,CAAqBoB,KAArB,CAAZ,CAAP;AACD,aAF8B,CAA/B;AAGD;;AACDvB,UAAAA,cAAc,CAACwB,OAAf,GAAyBlB,MAAM,CAACgB,GAAP,CAAW,UAACvB,KAAD,EAAwB;AAC1D,mBAAO;AACLM,cAAAA,KAAK,EAAEN,KAAK,CAACM,KADR;AAELoB,cAAAA,IAAI,EAAE1B,KAAK,CAACA,KAFP;AAGLe,cAAAA,MAAM,EAAEf,KAAK,CAACe;AAHT,aAAP;AAKD,WANwB,CAAzB;AAQAvB,UAAAA,SAAS,CAACC,WAAV,GAAwB,KAAxB;AACD;AACF,OA/DD;AAgED;;;WAOD,qBACEa,KADF,EAEuB;AACrB,UAAIqB,KAAK,CAACC,OAAN,CAActB,KAAd,CAAJ,EAA0B;AACxB,eAAOA,KAAP;AACD;;AACD,UAAI,wBAASA,KAAT,CAAJ,EAAqB;AACnB,eAAOA,KAAK,CAACuB,KAAN,CAAY,GAAZ,CAAP;AACD;;AACD,aAAO,CAACvB,KAAD,CAAP;AACD;;;WAED,qBACEA,KADF,EAEEH,IAFF,EAGEO,MAHF,EAIE1B,IAJF,EAKe;AAAA;;AAEb,UAAM8C,WAA+B,GACnC,KAAKpD,YAAL,CAAkByB,IAAlB,KAA2B,+BAAKzB,YAAL,CAAkByB,IAAlB,iFAAyBG,KAAzB,MAAmCA,KAA9D,GACI,KAAK5B,YAAL,CAAkByB,IAAlB,CADJ,GAEI,KAAKzB,YAAL,CAAkB4B,KAAlB,CAHN;AAIA,UAAMyB,UAAuB,GAAG;AAC9BzB,QAAAA,KAAK,EAALA,KAD8B;AAE9BN,QAAAA,KAAK,EAAEgC,SAFuB;AAG9B9B,QAAAA,IAAI,EAAEU,uBAAeC,QAHS;AAI9BE,QAAAA,MAAM,EAAEe;AAJsB,OAAhC;;AAOA,UAAI,CAAC9C,IAAD,IAAS,CAACA,IAAI,CAACC,MAAnB,EAA2B;AACzB,YAAI6C,WAAW,IAAIA,WAAW,CAAC5B,IAA/B,EAAqC;AACnC6B,UAAAA,UAAU,CAAC/B,KAAX,GAAmB,KAAKiC,kBAAL,CAAwBH,WAAxB,CAAnB;AACD,SAFD,MAEO;AACLC,UAAAA,UAAU,CAAC/B,KAAX,GAAmBpD,EAAE,CAACmB,YAAH,CAAgB,CAACuC,KAAD,CAAhB,CAAnB;AACAyB,UAAAA,UAAU,CAAC7B,IAAX,GAAkBU,uBAAeS,QAAjC;AACD;;AACD,eAAOU,UAAP;AACD;;AACD,UAAMG,UAAU,YAAGlD,IAAI,CAAEmD,IAAN,CAAW,UAACC,CAAD;AAAA,eAAO,CAAC,qBAAMA,CAAC,CAAC9B,KAAD,CAAP,CAAR;AAAA,OAAX,CAAH,0CAAG,MAAsCA,KAAtC,CAAnB;;AAEA,UAAI,KAAK+B,QAAL,CAAc/B,KAAd,KAAyB,qBAAM4B,UAAN,KAAqB,CAACJ,WAAnD,EAAiE;AAC/DC,QAAAA,UAAU,CAAC/B,KAAX,GAAmBpD,EAAE,CAACmB,YAAH,CAAgB,CAACuC,KAAD,CAAhB,CAAnB;AACAyB,QAAAA,UAAU,CAAC7B,IAAX,GAAkBU,uBAAeS,QAAjC;AACD,OAHD,MAGO;AAEL,YAAInB,IAAI,GACL4B,WAAW,IAAIA,WAAW,CAAC5B,IAA5B,IAAqC,KAAKoC,cAAL,CAAoBJ,UAApB,CADvC;;AAEA,YAAIxB,MAAM,KAAK,MAAf,EAAuB;AAErBR,UAAAA,IAAI,GAAGxD,mBAAWoB,GAAlB;AACD;;AACD,YAAMyE,GAAG,GAAG,KAAKC,iBAAL,CAAuBtC,IAAvB,EAA6BI,KAA7B,EAAoCwB,WAApC,EAAiD9C,IAAjD,CAAZ;AAEA+C,QAAAA,UAAU,CAAC/B,KAAX,GAAmB,KAAKiC,kBAAL,CAAwBM,GAAxB,CAAnB;AACAR,QAAAA,UAAU,CAAChB,MAAX,GAAoBwB,GAApB;AACD;;AACD,aAAOR,UAAP;AACD;;;WAED,wBAAuBG,UAAvB,EAA4C;AAC1C,UAAIhC,IAAI,GAAGxD,mBAAWC,MAAtB;;AACA,UAAI,OAAOuF,UAAP,KAAsB,QAA1B,EAAoC;AAClChC,QAAAA,IAAI,GAAG1D,SAAS,CAACiG,IAAV,CAAeP,UAAf,IAA6BxF,mBAAWY,IAAxC,GAA+CZ,mBAAWoB,GAAjE;AACD;;AACD,aAAOoC,IAAP;AACD;;;WAED,2BACEA,IADF,EAEEI,KAFF,EAGEwB,WAHF,EAIE9C,IAJF,EAKE;AACA,UAAMuD,GAAW,GAAG;AAClBrC,QAAAA,IAAI,EAAJA;AADkB,OAApB;AAGA,UAAMQ,MAAM,GAAG,CAAA1B,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAEuC,GAAN,CAAU,UAACmB,IAAD;AAAA,eAAUA,IAAI,CAACpC,KAAD,CAAd;AAAA,OAAV,MAAoC,EAAnD;;AACA,UAAIwB,WAAJ,aAAIA,WAAJ,eAAIA,WAAW,CAAEb,MAAjB,EAAyB;AACvBsB,QAAAA,GAAG,CAACtB,MAAJ,GAAaa,WAAb,aAAaA,WAAb,uBAAaA,WAAW,CAAEb,MAA1B;AACD,OAFD,MAIK,IACHf,IAAI,KAAKxD,mBAAWoB,GAApB,IACAoC,IAAI,KAAKxD,mBAAWc,QADpB,IAEA0C,IAAI,KAAKxD,mBAAWsB,SAHjB,EAIH;AAEAuE,QAAAA,GAAG,CAACtB,MAAJ,GAAa,qBAAOP,MAAP,CAAb;AACD,OAPI,MAOE,IAAIR,IAAI,KAAKxD,mBAAWoB,GAAxB,EAA6B;AAClCyE,QAAAA,GAAG,CAACtB,MAAJ,GAAa,oBAAKP,MAAL,CAAb;AACD,OAFM,MAEA,IAAIR,IAAI,KAAKxD,mBAAWc,QAAxB,EAAkC;AACvC+E,QAAAA,GAAG,CAACtB,MAAJ,GAAaP,MAAb;AACD,OAFM,MAEA,IAAIR,IAAI,KAAKxD,mBAAWsB,SAAxB,EAAmC;AACxC,YAAM2E,MAAM,GAAG,qBAAOjC,MAAP,CAAf;AACA,YAAMkC,OAAO,GACX,CAAAd,WAAW,SAAX,IAAAA,WAAW,WAAX,YAAAA,WAAW,CAAEc,OAAb,MAAyBZ,SAAzB,GACIF,WADJ,aACIA,WADJ,uBACIA,WAAW,CAAEc,OADjB,GAEI,CAACD,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAnB,IAA0B,CAHhC;AAIAJ,QAAAA,GAAG,CAACtB,MAAJ,GAAa,CAAC0B,MAAM,CAAC,CAAD,CAAP,EAAYC,OAAZ,EAAqBD,MAAM,CAAC,CAAD,CAA3B,CAAb;AACD;;AACD,6CAAYJ,GAAZ,GAAoBT,WAApB;AACD;;;WAGD,mCAA2E;AAAA,UAA9C5B,IAA8C,SAA9CA,IAA8C;AAAA,UAAxCe,MAAwC,SAAxCA,MAAwC;AAAA,UAAhC4B,OAAgC,SAAhCA,OAAgC;AAAA,UAAvBC,KAAuB,SAAvBA,KAAuB;AAAA,UAAhBC,IAAgB,SAAhBA,IAAgB;AAEzE,UAAM/C,KAAK,GAAGvD,QAAQ,CAACyD,IAAD,CAAR,EAAd;;AACA,UAAIe,MAAM,IAAIjB,KAAK,CAACiB,MAApB,EAA4B;AAC1BjB,QAAAA,KAAK,CAACiB,MAAN,CAAaA,MAAb;AACD;;AACD,UAAI4B,OAAJ,EAAa;AACX7C,QAAAA,KAAK,CAAC6C,OAAN,CAAcA,OAAd;AACD;;AACD,UAAIC,KAAK,KAAKd,SAAV,IAAuBhC,KAAK,CAAC8C,KAAjC,EAAwC;AACtC9C,QAAAA,KAAK,CAAC8C,KAAN,CAAYA,KAAZ;AACD;;AACD,UAAIC,IAAI,KAAKf,SAAT,IAAsBhC,KAAK,CAAC+C,IAAhC,EAAsC;AACpC/C,QAAAA,KAAK,CAAC+C,IAAN,CAAWA,IAAX;AACD;;AAED,aAAO/C,KAAP;AACD","sourcesContent":["import {\n IGlobalConfigService,\n ILayer,\n ILayerPlugin,\n IScale,\n IScaleOptions,\n IStyleAttribute,\n IStyleAttributeService,\n IStyleScale,\n ScaleTypeName,\n ScaleTypes,\n StyleScaleType,\n TYPES,\n} from '@antv/l7-core';\nimport { IParseDataItem } from '@antv/l7-source';\nimport { extent, ticks } from 'd3-array';\nimport * as d3interpolate from 'd3-interpolate';\nimport * as d3 from 'd3-scale';\nimport { inject, injectable } from 'inversify';\nimport { isNil, isString, uniq } from 'lodash';\nimport 'reflect-metadata';\n\nconst dateRegex = /^(?:(?!0000)[0-9]{4}([-/.]+)(?:(?:0?[1-9]|1[0-2])\\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\\1(?:29|30)|(?:0?[13578]|1[02])\\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\\2(?:29))(\\s+([01]|([01][0-9]|2[0-3])):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]))?$/;\n\nconst scaleMap = {\n [ScaleTypes.LINEAR]: d3.scaleLinear,\n [ScaleTypes.POWER]: d3.scalePow,\n [ScaleTypes.LOG]: d3.scaleLog,\n [ScaleTypes.IDENTITY]: d3.scaleIdentity,\n [ScaleTypes.SEQUENTIAL]: d3.scaleSequential,\n [ScaleTypes.TIME]: d3.scaleTime,\n [ScaleTypes.QUANTILE]: d3.scaleQuantile,\n [ScaleTypes.QUANTIZE]: d3.scaleQuantize,\n [ScaleTypes.THRESHOLD]: d3.scaleThreshold,\n [ScaleTypes.CAT]: d3.scaleOrdinal,\n [ScaleTypes.DIVERGING]: d3.scaleDiverging,\n};\n\n/**\n * 根据 Source 原始数据为指定字段创建 Scale,保存在 StyleAttribute 上,供下游插件使用\n */\n@injectable()\nexport default class FeatureScalePlugin implements ILayerPlugin {\n @inject(TYPES.IGlobalConfigService)\n private readonly configService: IGlobalConfigService;\n // key = field_attribute name\n private scaleCache: {\n [field: string]: IStyleScale;\n } = {};\n\n private scaleOptions: IScaleOptions = {};\n\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('FeatureScalePlugin', () => {\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n const { dataArray } = layer.getSource().data;\n if (dataArray.length === 0) {\n return;\n }\n this.caculateScalesForAttributes(attributes || [], dataArray);\n });\n\n // 检测数据是否需要更新\n layer.hooks.beforeRenderData.tap('FeatureScalePlugin', () => {\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n const { dataArray } = layer.getSource().data;\n this.caculateScalesForAttributes(attributes || [], dataArray);\n layer.layerModelNeedUpdate = true;\n return true;\n });\n\n layer.hooks.beforeRender.tap('FeatureScalePlugin', () => {\n if (layer.layerModelNeedUpdate) {\n return;\n }\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n if (attributes) {\n const { dataArray } = layer.getSource().data;\n if (dataArray.length === 0) {\n return;\n }\n const attributesToRescale = attributes.filter(\n (attribute) => attribute.needRescale,\n );\n if (attributesToRescale.length) {\n this.caculateScalesForAttributes(attributesToRescale, dataArray);\n }\n }\n });\n }\n private isNumber(n: any) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n private caculateScalesForAttributes(\n attributes: IStyleAttribute[],\n dataArray: IParseDataItem[],\n ) {\n this.scaleCache = {};\n attributes.forEach((attribute) => {\n if (attribute.scale) {\n // 创建Scale\n const attributeScale = attribute.scale;\n const type = attribute.name;\n attributeScale.names = this.parseFields(attribute!.scale!.field || []);\n const scales: IStyleScale[] = [];\n // 为每个字段创建 Scale\n attributeScale.names.forEach((field: string | number) => {\n scales.push(\n this.createScale(\n field,\n attribute.name,\n attribute.scale?.values,\n dataArray,\n ),\n );\n });\n\n // 为scales 设置值区间 Range\n if (scales.some((scale) => scale.type === StyleScaleType.VARIABLE)) {\n attributeScale.type = StyleScaleType.VARIABLE;\n scales.forEach((scale) => {\n // 如果设置了回调, 这不需要设置range\n if (!attributeScale.callback) {\n if (\n attributeScale.values &&\n attributeScale.values !== 'text' &&\n scale.option?.type !== ScaleTypes.DIVERGING &&\n scale.option?.type !== ScaleTypes.SEQUENTIAL\n ) {\n scale.scale.range(attributeScale.values); // 判断常量, 默认值\n } else if (scale.option?.type === ScaleTypes.CAT) {\n // 如果没有设置初值且 类型为cat,range ==domain;\n scale.scale.range(scale.option.domain);\n } else if (\n scale.option?.type === ScaleTypes.DIVERGING ||\n scale.option?.type === ScaleTypes.SEQUENTIAL\n ) {\n scale.scale.interpolator(\n // @ts-ignore\n d3interpolate.interpolateRgbBasis(attributeScale.values),\n );\n }\n }\n });\n } else {\n // 设置attribute 常量值 常量直接在value取值\n attributeScale.type = StyleScaleType.CONSTANT;\n attributeScale.defaultValues = scales.map((scale, index) => {\n return scale.scale(attributeScale.names[index]);\n });\n }\n attributeScale.scalers = scales.map((scale: IStyleScale) => {\n return {\n field: scale.field,\n func: scale.scale,\n option: scale.option,\n };\n });\n\n attribute.needRescale = false;\n }\n });\n }\n\n /**\n * @example\n * 'w*h' => ['w', 'h']\n * 'w' => ['w']\n */\n private parseFields(\n field: string[] | string | number[] | number,\n ): string[] | number[] {\n if (Array.isArray(field)) {\n return field;\n }\n if (isString(field)) {\n return field.split('*');\n }\n return [field];\n }\n\n private createScale(\n field: string | number,\n name: string,\n values: unknown[] | string | undefined,\n data?: IParseDataItem[],\n ): IStyleScale {\n // scale 支持根据视觉通道和字段\n const scaleOption: IScale | undefined =\n this.scaleOptions[name] && this.scaleOptions[name]?.field === field\n ? this.scaleOptions[name] // TODO zi\n : this.scaleOptions[field];\n const styleScale: IStyleScale = {\n field,\n scale: undefined,\n type: StyleScaleType.VARIABLE,\n option: scaleOption,\n };\n\n if (!data || !data.length) {\n if (scaleOption && scaleOption.type) {\n styleScale.scale = this.createDefaultScale(scaleOption);\n } else {\n styleScale.scale = d3.scaleOrdinal([field]);\n styleScale.type = StyleScaleType.CONSTANT;\n }\n return styleScale;\n }\n const firstValue = data!.find((d) => !isNil(d[field]))?.[field];\n // 常量 Scale\n if (this.isNumber(field) || (isNil(firstValue) && !scaleOption)) {\n styleScale.scale = d3.scaleOrdinal([field]);\n styleScale.type = StyleScaleType.CONSTANT;\n } else {\n // 根据数据类型判断 默认等分位,时间,和枚举类型\n let type =\n (scaleOption && scaleOption.type) || this.getDefaultType(firstValue);\n if (values === 'text') {\n // text 为内置变 如果是文本则为cat\n type = ScaleTypes.CAT;\n }\n const cfg = this.createScaleConfig(type, field, scaleOption, data);\n\n styleScale.scale = this.createDefaultScale(cfg);\n styleScale.option = cfg;\n }\n return styleScale;\n }\n\n private getDefaultType(firstValue: unknown) {\n let type = ScaleTypes.LINEAR;\n if (typeof firstValue === 'string') {\n type = dateRegex.test(firstValue) ? ScaleTypes.TIME : ScaleTypes.CAT;\n }\n return type;\n }\n // 生成Scale 默认配置\n private createScaleConfig(\n type: ScaleTypeName,\n field: string | number,\n scaleOption: IScale | undefined,\n data?: IParseDataItem[],\n ) {\n const cfg: IScale = {\n type,\n };\n const values = data?.map((item) => item[field]) || [];\n if (scaleOption?.domain) {\n cfg.domain = scaleOption?.domain;\n }\n // 默认类型为 Quantile Scales https://github.com/d3/d3-scale#quantile-scales\n else if (\n type !== ScaleTypes.CAT &&\n type !== ScaleTypes.QUANTILE &&\n type !== ScaleTypes.DIVERGING\n ) {\n // linear/\n cfg.domain = extent(values);\n } else if (type === ScaleTypes.CAT) {\n cfg.domain = uniq(values);\n } else if (type === ScaleTypes.QUANTILE) {\n cfg.domain = values;\n } else if (type === ScaleTypes.DIVERGING) {\n const minMax = extent(values);\n const neutral =\n scaleOption?.neutral !== undefined\n ? scaleOption?.neutral\n : (minMax[0] + minMax[1]) / 2;\n cfg.domain = [minMax[0], neutral, minMax[1]];\n }\n return { ...cfg, ...scaleOption };\n }\n\n // 创建Scale 实例\n private createDefaultScale({ type, domain, unknown, clamp, nice }: IScale) {\n // @ts-ignore\n const scale = scaleMap[type]();\n if (domain && scale.domain) {\n scale.domain(domain);\n }\n if (unknown) {\n scale.unknown(unknown);\n }\n if (clamp !== undefined && scale.clamp) {\n scale.clamp(clamp);\n }\n if (nice !== undefined && scale.nice) {\n scale.nice(nice);\n }\n // TODO 其他属性支持\n return scale;\n }\n}\n"],"file":"FeatureScalePlugin.js"}
1
+ {"version":3,"sources":["../../src/plugins/FeatureScalePlugin.ts"],"names":["dateRegex","scaleMap","ScaleTypes","LINEAR","d3","scaleLinear","POWER","scalePow","LOG","scaleLog","IDENTITY","scaleIdentity","SEQUENTIAL","scaleSequential","TIME","scaleTime","QUANTILE","scaleQuantile","QUANTIZE","scaleQuantize","THRESHOLD","scaleThreshold","CAT","scaleOrdinal","DIVERGING","scaleDiverging","FeatureScalePlugin","TYPES","IGlobalConfigService","layer","styleAttributeService","hooks","init","tap","scaleOptions","getScaleOptions","attributes","getLayerStyleAttributes","dataArray","getSource","data","length","caculateScalesForAttributes","beforeRenderData","layerModelNeedUpdate","beforeRender","attributesToRescale","filter","attribute","needRescale","n","isNaN","parseFloat","isFinite","scaleCache","forEach","scale","attributeScale","type","name","names","parseFields","field","scales","push","createScale","values","some","StyleScaleType","VARIABLE","callback","option","tick","ticks","domain","range","interpolator","d3interpolate","interpolateRgbBasis","CONSTANT","defaultValues","map","index","scalers","func","Array","isArray","split","scaleOption","styleScale","undefined","createDefaultScale","firstValue","find","d","isNumber","getDefaultType","cfg","createScaleConfig","test","item","minMax","neutral","unknown","clamp","nice"],"mappings":"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","sourcesContent":["import {\n IGlobalConfigService,\n ILayer,\n ILayerPlugin,\n IScale,\n IScaleOptions,\n IStyleAttribute,\n IStyleAttributeService,\n IStyleScale,\n ScaleTypeName,\n ScaleTypes,\n StyleScaleType,\n TYPES,\n} from '@antv/l7-core';\nimport { IParseDataItem } from '@antv/l7-source';\nimport { extent, ticks } from 'd3-array';\nimport * as d3interpolate from 'd3-interpolate';\nimport * as d3 from 'd3-scale';\nimport { inject, injectable } from 'inversify';\nimport { isNil, isString, uniq } from 'lodash';\nimport 'reflect-metadata';\n\nconst dateRegex = /^(?:(?!0000)[0-9]{4}([-/.]+)(?:(?:0?[1-9]|1[0-2])\\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\\1(?:29|30)|(?:0?[13578]|1[02])\\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\\2(?:29))(\\s+([01]|([01][0-9]|2[0-3])):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]))?$/;\n\nconst scaleMap = {\n [ScaleTypes.LINEAR]: d3.scaleLinear,\n [ScaleTypes.POWER]: d3.scalePow,\n [ScaleTypes.LOG]: d3.scaleLog,\n [ScaleTypes.IDENTITY]: d3.scaleIdentity,\n [ScaleTypes.SEQUENTIAL]: d3.scaleSequential,\n [ScaleTypes.TIME]: d3.scaleTime,\n [ScaleTypes.QUANTILE]: d3.scaleQuantile,\n [ScaleTypes.QUANTIZE]: d3.scaleQuantize,\n [ScaleTypes.THRESHOLD]: d3.scaleThreshold,\n [ScaleTypes.CAT]: d3.scaleOrdinal,\n [ScaleTypes.DIVERGING]: d3.scaleDiverging,\n};\n\n/**\n * 根据 Source 原始数据为指定字段创建 Scale,保存在 StyleAttribute 上,供下游插件使用\n */\n@injectable()\nexport default class FeatureScalePlugin implements ILayerPlugin {\n @inject(TYPES.IGlobalConfigService)\n private readonly configService: IGlobalConfigService;\n // key = field_attribute name\n private scaleCache: {\n [field: string]: IStyleScale;\n } = {};\n\n private scaleOptions: IScaleOptions = {};\n\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('FeatureScalePlugin', () => {\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n const { dataArray } = layer.getSource().data;\n if (dataArray.length === 0) {\n return;\n }\n this.caculateScalesForAttributes(attributes || [], dataArray);\n });\n\n // 检测数据是否需要更新\n layer.hooks.beforeRenderData.tap('FeatureScalePlugin', () => {\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n const { dataArray } = layer.getSource().data;\n this.caculateScalesForAttributes(attributes || [], dataArray);\n layer.layerModelNeedUpdate = true;\n return true;\n });\n\n layer.hooks.beforeRender.tap('FeatureScalePlugin', () => {\n if (layer.layerModelNeedUpdate) {\n return;\n }\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n if (attributes) {\n const { dataArray } = layer.getSource().data;\n if (dataArray.length === 0) {\n return;\n }\n const attributesToRescale = attributes.filter(\n (attribute) => attribute.needRescale,\n );\n if (attributesToRescale.length) {\n this.caculateScalesForAttributes(attributesToRescale, dataArray);\n }\n }\n });\n }\n private isNumber(n: any) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n private caculateScalesForAttributes(\n attributes: IStyleAttribute[],\n dataArray: IParseDataItem[],\n ) {\n this.scaleCache = {};\n attributes.forEach((attribute) => {\n if (attribute.scale) {\n // 创建Scale\n const attributeScale = attribute.scale;\n const type = attribute.name;\n attributeScale.names = this.parseFields(attribute!.scale!.field || []);\n const scales: IStyleScale[] = [];\n // 为每个字段创建 Scale\n attributeScale.names.forEach((field: string | number) => {\n scales.push(\n this.createScale(\n field,\n attribute.name,\n attribute.scale?.values,\n dataArray,\n ),\n );\n });\n\n // 为scales 设置值区间 Range\n if (scales.some((scale) => scale.type === StyleScaleType.VARIABLE)) {\n attributeScale.type = StyleScaleType.VARIABLE;\n scales.forEach((scale) => {\n // 如果设置了回调, 这不需要设置range\n if (!attributeScale.callback && attributeScale.values !== 'text') {\n switch (scale.option?.type) {\n case ScaleTypes.LOG:\n case ScaleTypes.LINEAR:\n case ScaleTypes.POWER:\n if (\n attributeScale.values &&\n attributeScale.values.length > 2\n ) {\n const tick = scale.scale.ticks(\n attributeScale.values.length,\n );\n scale.scale.domain(tick);\n }\n attributeScale.values\n ? scale.scale.range(attributeScale.values)\n : scale.scale.range(scale.option.domain);\n break;\n case ScaleTypes.QUANTILE:\n case ScaleTypes.QUANTIZE:\n case ScaleTypes.THRESHOLD:\n scale.scale.range(attributeScale.values); //\n break;\n case ScaleTypes.CAT:\n attributeScale.values\n ? scale.scale.range(attributeScale.values)\n : scale.scale.range(scale.option.domain);\n break;\n case ScaleTypes.DIVERGING:\n case ScaleTypes.SEQUENTIAL:\n scale.scale.interpolator(\n // @ts-ignore\n d3interpolate.interpolateRgbBasis(attributeScale.values),\n );\n break;\n }\n }\n if (attributeScale.values === 'text') {\n scale.scale.range(scale.option?.domain);\n }\n });\n } else {\n // 设置attribute 常量值 常量直接在value取值\n attributeScale.type = StyleScaleType.CONSTANT;\n attributeScale.defaultValues = scales.map((scale, index) => {\n return scale.scale(attributeScale.names[index]);\n });\n }\n attributeScale.scalers = scales.map((scale: IStyleScale) => {\n return {\n field: scale.field,\n func: scale.scale,\n option: scale.option,\n };\n });\n\n attribute.needRescale = false;\n }\n });\n }\n\n /**\n * @example\n * 'w*h' => ['w', 'h']\n * 'w' => ['w']\n */\n private parseFields(\n field: string[] | string | number[] | number,\n ): string[] | number[] {\n if (Array.isArray(field)) {\n return field;\n }\n if (isString(field)) {\n return field.split('*');\n }\n return [field];\n }\n\n private createScale(\n field: string | number,\n name: string,\n values: unknown[] | string | undefined,\n data?: IParseDataItem[],\n ): IStyleScale {\n // scale 支持根据视觉通道和字段\n const scaleOption: IScale | undefined =\n this.scaleOptions[name] && this.scaleOptions[name]?.field === field\n ? this.scaleOptions[name] // TODO zi\n : this.scaleOptions[field];\n const styleScale: IStyleScale = {\n field,\n scale: undefined,\n type: StyleScaleType.VARIABLE,\n option: scaleOption,\n };\n\n if (!data || !data.length) {\n if (scaleOption && scaleOption.type) {\n styleScale.scale = this.createDefaultScale(scaleOption);\n } else {\n styleScale.scale = d3.scaleOrdinal([field]);\n styleScale.type = StyleScaleType.CONSTANT;\n }\n return styleScale;\n }\n const firstValue = data!.find((d) => !isNil(d[field]))?.[field];\n // 常量 Scale\n if (this.isNumber(field) || (isNil(firstValue) && !scaleOption)) {\n styleScale.scale = d3.scaleOrdinal([field]);\n styleScale.type = StyleScaleType.CONSTANT;\n } else {\n // 根据数据类型判断 默认等分位,时间,和枚举类型\n let type =\n (scaleOption && scaleOption.type) || this.getDefaultType(firstValue);\n if (values === 'text') {\n // text 为内置变 如果是文本则为cat\n type = ScaleTypes.CAT;\n }\n const cfg = this.createScaleConfig(type, field, scaleOption, data);\n\n styleScale.scale = this.createDefaultScale(cfg);\n styleScale.option = cfg;\n }\n return styleScale;\n }\n\n private getDefaultType(firstValue: unknown) {\n let type = ScaleTypes.LINEAR;\n if (typeof firstValue === 'string') {\n type = dateRegex.test(firstValue) ? ScaleTypes.TIME : ScaleTypes.CAT;\n }\n return type;\n }\n // 生成Scale 默认配置\n private createScaleConfig(\n type: ScaleTypeName,\n field: string | number,\n scaleOption: IScale | undefined,\n data?: IParseDataItem[],\n ) {\n const cfg: IScale = {\n type,\n };\n const values = data?.map((item) => item[field]) || [];\n if (scaleOption?.domain) {\n cfg.domain = scaleOption?.domain;\n }\n // 默认类型为 Quantile Scales https://github.com/d3/d3-scale#quantile-scales\n else if (\n type !== ScaleTypes.CAT &&\n type !== ScaleTypes.QUANTILE &&\n type !== ScaleTypes.DIVERGING\n ) {\n // linear/\n cfg.domain = extent(values);\n } else if (type === ScaleTypes.CAT) {\n cfg.domain = uniq(values);\n } else if (type === ScaleTypes.QUANTILE) {\n cfg.domain = values;\n } else if (type === ScaleTypes.DIVERGING) {\n const minMax = extent(values);\n const neutral =\n scaleOption?.neutral !== undefined\n ? scaleOption?.neutral\n : (minMax[0] + minMax[1]) / 2;\n cfg.domain = [minMax[0], neutral, minMax[1]];\n }\n return { ...cfg, ...scaleOption };\n }\n\n // 创建Scale 实例\n private createDefaultScale({ type, domain, unknown, clamp, nice }: IScale) {\n // @ts-ignore\n const scale = scaleMap[type]();\n if (domain && scale.domain) {\n scale.domain(domain);\n }\n if (unknown) {\n scale.unknown(unknown);\n }\n if (clamp !== undefined && scale.clamp) {\n scale.clamp(clamp);\n }\n if (nice !== undefined && scale.nice) {\n scale.nice(nice);\n }\n // TODO 其他属性支持\n return scale;\n }\n}\n"],"file":"FeatureScalePlugin.js"}
@@ -320,6 +320,48 @@ var BaseTileLayer = function () {
320
320
 
321
321
  (_this$tilesetManager = this.tilesetManager) === null || _this$tilesetManager === void 0 ? void 0 : _this$tilesetManager.update(zoom, latLonBounds);
322
322
  }
323
+ }, {
324
+ key: "mapchange",
325
+ value: function mapchange() {
326
+ var _this$tilesetManager2;
327
+
328
+ var _this$getCurrentView2 = this.getCurrentView(),
329
+ latLonBounds = _this$getCurrentView2.latLonBounds,
330
+ zoom = _this$getCurrentView2.zoom;
331
+
332
+ if (this.mapService.version === 'GAODE1.x') {
333
+ var _this$parent$getLayer = this.parent.getLayerConfig(),
334
+ visible = _this$parent$getLayer.visible;
335
+
336
+ if (zoom < 3 && visible) {
337
+ this.parent.updateLayerConfig({
338
+ visible: false
339
+ });
340
+ this.layerService.updateLayerRenderList();
341
+ } else if (zoom >= 3 && !visible) {
342
+ this.parent.updateLayerConfig({
343
+ visible: true
344
+ });
345
+ this.layerService.updateLayerRenderList();
346
+ }
347
+ }
348
+
349
+ if (this.lastViewStates && this.lastViewStates.zoom === zoom && this.lastViewStates.latLonBounds.toString() === latLonBounds.toString()) {
350
+ return;
351
+ }
352
+
353
+ this.lastViewStates = {
354
+ zoom: zoom,
355
+ latLonBounds: latLonBounds
356
+ };
357
+
358
+ if (this.timer) {
359
+ clearTimeout(this.timer);
360
+ this.timer = null;
361
+ }
362
+
363
+ (_this$tilesetManager2 = this.tilesetManager) === null || _this$tilesetManager2 === void 0 ? void 0 : _this$tilesetManager2.update(zoom, latLonBounds);
364
+ }
323
365
  }, {
324
366
  key: "bindTilesetEvent",
325
367
  value: function bindTilesetEvent() {
@@ -339,47 +381,11 @@ var BaseTileLayer = function () {
339
381
  this.tilesetManager.on('tile-update', function () {
340
382
  _this7.tileUpdate();
341
383
  });
342
- this.mapService.on('mapchange', function (e) {
343
- var _this7$tilesetManager;
344
-
345
- var _this7$getCurrentView = _this7.getCurrentView(),
346
- latLonBounds = _this7$getCurrentView.latLonBounds,
347
- zoom = _this7$getCurrentView.zoom;
348
-
349
- if (_this7.mapService.version === 'GAODE1.x') {
350
- var _this7$parent$getLaye = _this7.parent.getLayerConfig(),
351
- visible = _this7$parent$getLaye.visible;
352
-
353
- if (zoom < 3 && visible) {
354
- _this7.parent.updateLayerConfig({
355
- visible: false
356
- });
357
-
358
- _this7.layerService.updateLayerRenderList();
359
- } else if (zoom >= 3 && !visible) {
360
- _this7.parent.updateLayerConfig({
361
- visible: true
362
- });
363
-
364
- _this7.layerService.updateLayerRenderList();
365
- }
366
- }
367
-
368
- if (_this7.lastViewStates && _this7.lastViewStates.zoom === zoom && _this7.lastViewStates.latLonBounds.toString() === latLonBounds.toString()) {
369
- return;
370
- }
371
-
372
- _this7.lastViewStates = {
373
- zoom: zoom,
374
- latLonBounds: latLonBounds
375
- };
376
-
377
- if (_this7.timer) {
378
- clearTimeout(_this7.timer);
379
- _this7.timer = null;
380
- }
381
-
382
- (_this7$tilesetManager = _this7.tilesetManager) === null || _this7$tilesetManager === void 0 ? void 0 : _this7$tilesetManager.update(zoom, latLonBounds);
384
+ this.mapService.on('zoomend', function () {
385
+ return _this7.mapchange();
386
+ });
387
+ this.mapService.on('moveend', function () {
388
+ return _this7.mapchange();
383
389
  });
384
390
  }
385
391
  }, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tile/tileLayer/baseTileLayer.ts"],"names":["BaseTileLayer","parent","rendererService","mapService","layerService","pickingService","select","active","parentSource","getSource","data","tilesetOptions","sourceLayer","coords","featureId","tileLayerManager","TileLayerManager","initTileSetManager","bindSubLayerEvent","bindSubLayerPick","scaleField","getScaleOptions","children","render","type","tilePickManager","clearPick","filter","child","inited","isVisible","getCurrentSelectedId","map","selectFeature","Uint8Array","setCurrentSelectedId","target","pickLayers","tile","error","console","warn","removeChilds","layerIDList","tilesetManager","tiles","isLoaded","length","createTile","layers","addChilds","isVisibleChange","getChilds","updateLayersConfig","emit","currentTiles","pickColors","selectedId","layer","hooks","beforeHighlight","call","setCurrentPickId","on","e","pickedColors","r","g","b","restLayers","isVector","setSelect","setHighlight","pickId","getPickID","setPickID","renderList","getRenderList","needPick","beforeSelect","source","tileset","initedTileset","bindTilesetEvent","getCurrentView","latLonBounds","zoom","update","tileUnLoad","tileError","tileUpdate","version","getLayerConfig","visible","updateLayerConfig","updateLayerRenderList","lastViewStates","toString","timer","clearTimeout","bounds","getBounds","getZoom"],"mappings":"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","sourcesContent":["import {\n IInteractionTarget,\n ILayer,\n ILayerService,\n IMapService,\n IScale,\n IScaleOptions,\n ISource,\n ITileLayer,\n ITileLayerManager,\n ITileLayerOPtions,\n} from '@antv/l7-core';\nimport { decodePickingColor, Tile, TilesetManager } from '@antv/l7-utils';\nimport { TileLayerManager } from '../manager/tileLayerManager';\n\nexport default class BaseTileLayer implements ITileLayer {\n public get children() {\n return this.tileLayerManager.children;\n }\n public type: string = 'baseTile';\n public sourceLayer: string;\n public parent: ILayer;\n // 瓦片是否加载成功\n public initedTileset: boolean = false;\n // 瓦片数据管理器\n public tilesetManager: TilesetManager | undefined;\n public tileLayerManager: ITileLayerManager;\n public scaleField: any;\n\n private lastViewStates: {\n zoom: number;\n latLonBounds: [number, number, number, number];\n };\n\n private timer: any;\n private mapService: IMapService;\n private layerService: ILayerService;\n private pickColors: {\n select: any;\n active: any;\n } = {\n select: null,\n active: null,\n };\n\n constructor({\n parent,\n rendererService,\n mapService,\n layerService,\n pickingService,\n }: ITileLayerOPtions) {\n const parentSource = parent.getSource();\n const { sourceLayer, coords, featureId } =\n parentSource?.data?.tilesetOptions || {};\n this.sourceLayer = sourceLayer;\n this.parent = parent;\n this.mapService = mapService;\n this.layerService = layerService;\n\n this.tileLayerManager = new TileLayerManager(\n parent,\n mapService,\n rendererService,\n pickingService,\n layerService,\n );\n\n this.initTileSetManager();\n this.bindSubLayerEvent();\n this.bindSubLayerPick();\n\n this.scaleField = this.parent.getScaleOptions();\n }\n\n /**\n * 渲染瓦片的图层\n */\n public render() {\n if (this.tileLayerManager) {\n this.tileLayerManager.render();\n }\n }\n\n public clearPick(type: string) {\n if (type === 'mousemove') {\n this.tileLayerManager.tilePickManager.clearPick();\n }\n }\n\n /**\n * 清除 select 的选中状态\n */\n public clearPickState() {\n this.children\n .filter((child) => child.inited && child.isVisible())\n .filter((child) => child.getCurrentSelectedId() !== null)\n .map((child) => {\n this.selectFeature(child, new Uint8Array([0, 0, 0, 0]));\n child.setCurrentSelectedId(null);\n });\n }\n\n /**\n * 瓦片图层独立的拾取逻辑\n * @param target\n * @returns\n */\n public pickLayers(target: IInteractionTarget) {\n return this.tileLayerManager.pickLayers(target);\n }\n\n public tileLoaded(tile: Tile) {\n //\n }\n\n public tileError(error: Error) {\n console.warn('error:', error);\n }\n\n public tileUnLoad(tile: Tile) {\n this.tileLayerManager.removeChilds(tile.layerIDList, false);\n }\n\n public tileUpdate() {\n // Base Function\n if (!this.tilesetManager) {\n return;\n }\n\n this.tilesetManager.tiles\n .filter((tile) => tile.isLoaded)\n .map((tile) => {\n if (tile.layerIDList.length === 0) {\n const { layers, layerIDList } = this.tileLayerManager.createTile(\n tile,\n );\n tile.layerIDList = layerIDList;\n this.tileLayerManager.addChilds(layers);\n } else {\n if (!tile.isVisibleChange) {\n return;\n }\n const layers = this.tileLayerManager.getChilds(tile.layerIDList);\n this.tileLayerManager.updateLayersConfig(\n layers,\n 'visible',\n tile.isVisible,\n );\n }\n });\n\n if (this.tilesetManager.isLoaded) {\n // 将事件抛出,图层上可以使用瓦片\n this.parent.emit('tiles-loaded', this.tilesetManager.currentTiles);\n }\n }\n\n protected setPickState(layers: ILayer[]) {\n if (this.pickColors.select) {\n const selectedId = decodePickingColor(this.pickColors.select);\n layers.map((layer) => {\n this.selectFeature(layer, this.pickColors.select);\n layer.setCurrentSelectedId(selectedId);\n });\n }\n\n if (this.pickColors.active) {\n const selectedId = decodePickingColor(this.pickColors.active);\n layers\n .filter((layer) => layer.inited && layer.isVisible())\n .map((layer) => {\n layer.hooks.beforeHighlight.call(this.pickColors.active);\n layer.setCurrentPickId(selectedId);\n });\n }\n }\n\n private bindSubLayerPick() {\n this.tileLayerManager.tilePickManager.on('pick', (e) => {\n // @ts-ignore\n const [r, g, b] = e.pickedColors;\n\n if (e.type === 'click') {\n const restLayers = this.children\n .filter(\n (child) => child.inited && child.isVisible() && child.isVector,\n )\n .filter((child) => child !== e.layer);\n this.setSelect(restLayers, [r, g, b]);\n } else {\n this.setHighlight([r, g, b]);\n }\n });\n\n this.tileLayerManager.tilePickManager.on('unpick', () => {\n this.pickColors.active = null;\n });\n }\n\n private setHighlight(pickedColors: any) {\n const pickId = decodePickingColor(pickedColors);\n this.pickColors.active = pickedColors;\n this.children\n .filter((child) => child.inited && child.isVisible() && child.isVector)\n // Tip: 使用 vectorLayer 上的 pickID 优化高亮操作(过滤重复操作)\n // @ts-ignore\n .filter((child) => child.getPickID() !== pickId)\n .map((child) => {\n // @ts-ignore\n child.setPickID(pickId);\n child.hooks.beforeHighlight.call(pickedColors);\n });\n }\n\n private setSelect(layers: ILayer[], pickedColors: any) {\n const selectedId = decodePickingColor(pickedColors);\n layers.map((layer) => {\n if (\n layer.getCurrentSelectedId() === null ||\n selectedId !== layer.getCurrentSelectedId()\n ) {\n this.selectFeature(layer, pickedColors);\n layer.setCurrentSelectedId(selectedId);\n this.pickColors.select = pickedColors;\n } else {\n this.selectFeature(layer, new Uint8Array([0, 0, 0, 0])); // toggle select\n layer.setCurrentSelectedId(null);\n this.pickColors.select = null;\n }\n });\n // unselect normal layer\n const renderList = this.layerService.getRenderList();\n renderList\n .filter(\n (layer) =>\n layer.inited &&\n !layer.isVector &&\n layer.isVisible() &&\n layer.needPick('click'),\n )\n .filter((layer) => layer.getCurrentSelectedId() !== null)\n .map((layer) => {\n this.selectFeature(layer, new Uint8Array([0, 0, 0, 0]));\n layer.setCurrentSelectedId(null);\n });\n }\n\n private selectFeature(layer: ILayer, pickedColors: Uint8Array | undefined) {\n // @ts-ignore\n const [r, g, b] = pickedColors;\n layer.hooks.beforeSelect.call([r, g, b]);\n }\n\n private bindSubLayerEvent() {\n /**\n * layer.on('click', (ev) => {}); // 鼠标左键点击图层事件\n * layer.on('mouseenter', (ev) => {}); // 鼠标进入图层要素\n * layer.on('mousemove', (ev) => {}); // 鼠标在图层上移动时触发\n * layer.on('mouseout', (ev) => {}); // 鼠标移出图层要素时触发\n * layer.on('mouseup', (ev) => {}); // 鼠标在图层上单击抬起时触发\n * layer.on('mousedown', (ev) => {}); // 鼠标在图层上单击按下时触发\n * layer.on('contextmenu', (ev) => {}); // 图层要素点击右键菜单\n *\n * 鼠标在图层外的事件\n * layer.on('unclick', (ev) => {}); // 图层外点击\n * layer.on('unmousemove', (ev) => {}); // 图层外移动\n * layer.on('unmouseup', (ev) => {}); // 图层外鼠标抬起\n * layer.on('unmousedown', (ev) => {}); // 图层外单击按下时触发\n * layer.on('uncontextmenu', (ev) => {}); // 图层外点击右键\n * layer.on('unpick', (ev) => {}); // 图层外的操作的所有事件\n */\n this.parent.on('subLayerClick', (e) => {\n this.parent.emit('click', { ...e });\n });\n this.parent.on('subLayerMouseMove', (e) =>\n this.parent.emit('mousemove', { ...e }),\n );\n this.parent.on('subLayerMouseUp', (e) =>\n this.parent.emit('mouseup', { ...e }),\n );\n this.parent.on('subLayerMouseEnter', (e) =>\n this.parent.emit('mouseenter', { ...e }),\n );\n this.parent.on('subLayerMouseOut', (e) =>\n this.parent.emit('mouseout', { ...e }),\n );\n this.parent.on('subLayerMouseDown', (e) =>\n this.parent.emit('mousedown', { ...e }),\n );\n this.parent.on('subLayerContextmenu', (e) =>\n this.parent.emit('contextmenu', { ...e }),\n );\n\n // vector layer 图层外事件\n this.parent.on('subLayerUnClick', (e) =>\n this.parent.emit('unclick', { ...e }),\n );\n this.parent.on('subLayerUnMouseMove', (e) =>\n this.parent.emit('unmousemove', { ...e }),\n );\n this.parent.on('subLayerUnMouseUp', (e) =>\n this.parent.emit('unmouseup', { ...e }),\n );\n this.parent.on('subLayerUnMouseDown', (e) =>\n this.parent.emit('unmousedown', { ...e }),\n );\n this.parent.on('subLayerUnContextmenu', (e) =>\n this.parent.emit('uncontextmenu', { ...e }),\n );\n }\n\n private initTileSetManager() {\n const source: ISource = this.parent.getSource();\n this.tilesetManager = source.tileset as TilesetManager;\n\n if (!this.initedTileset) {\n this.bindTilesetEvent();\n this.initedTileset = true;\n }\n\n const { latLonBounds, zoom } = this.getCurrentView();\n this.tilesetManager?.update(zoom, latLonBounds);\n }\n\n private bindTilesetEvent() {\n if (!this.tilesetManager) {\n return;\n }\n // 瓦片数据加载成功\n this.tilesetManager.on('tile-loaded', (tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n });\n\n // 瓦片数据从缓存删除或被执行重新加载\n this.tilesetManager.on('tile-unload', (tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n this.tileUnLoad(tile);\n });\n\n // 瓦片数据加载失败\n this.tilesetManager.on('tile-error', (error, tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n this.tileError(error);\n });\n\n // 瓦片显隐状态更新\n this.tilesetManager.on('tile-update', () => {\n this.tileUpdate();\n });\n\n // 地图视野发生改变\n this.mapService.on('mapchange', (e) => {\n const { latLonBounds, zoom } = this.getCurrentView();\n\n if (this.mapService.version === 'GAODE1.x') {\n const { visible } = this.parent.getLayerConfig();\n if (zoom < 3 && visible) {\n this.parent.updateLayerConfig({ visible: false });\n this.layerService.updateLayerRenderList();\n } else if (zoom >= 3 && !visible) {\n this.parent.updateLayerConfig({ visible: true });\n this.layerService.updateLayerRenderList();\n }\n }\n\n if (\n this.lastViewStates &&\n this.lastViewStates.zoom === zoom &&\n this.lastViewStates.latLonBounds.toString() === latLonBounds.toString()\n ) {\n return;\n }\n this.lastViewStates = { zoom, latLonBounds };\n\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n\n // this.timer = setTimeout(() => {\n this.tilesetManager?.update(zoom, latLonBounds);\n // }, 250);\n });\n }\n\n private getCurrentView() {\n const bounds = this.mapService.getBounds();\n const latLonBounds: [number, number, number, number] = [\n bounds[0][0],\n bounds[0][1],\n bounds[1][0],\n bounds[1][1],\n ];\n const zoom = this.mapService.getZoom();\n\n return { latLonBounds, zoom };\n }\n}\n"],"file":"baseTileLayer.js"}
1
+ {"version":3,"sources":["../../../src/tile/tileLayer/baseTileLayer.ts"],"names":["BaseTileLayer","parent","rendererService","mapService","layerService","pickingService","select","active","parentSource","getSource","data","tilesetOptions","sourceLayer","coords","featureId","tileLayerManager","TileLayerManager","initTileSetManager","bindSubLayerEvent","bindSubLayerPick","scaleField","getScaleOptions","children","render","type","tilePickManager","clearPick","filter","child","inited","isVisible","getCurrentSelectedId","map","selectFeature","Uint8Array","setCurrentSelectedId","target","pickLayers","tile","error","console","warn","removeChilds","layerIDList","tilesetManager","tiles","isLoaded","length","createTile","layers","addChilds","isVisibleChange","getChilds","updateLayersConfig","emit","currentTiles","pickColors","selectedId","layer","hooks","beforeHighlight","call","setCurrentPickId","on","e","pickedColors","r","g","b","restLayers","isVector","setSelect","setHighlight","pickId","getPickID","setPickID","renderList","getRenderList","needPick","beforeSelect","source","tileset","initedTileset","bindTilesetEvent","getCurrentView","latLonBounds","zoom","update","version","getLayerConfig","visible","updateLayerConfig","updateLayerRenderList","lastViewStates","toString","timer","clearTimeout","tileUnLoad","tileError","tileUpdate","mapchange","bounds","getBounds","getZoom"],"mappings":"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","sourcesContent":["import {\n IInteractionTarget,\n ILayer,\n ILayerService,\n IMapService,\n IScale,\n IScaleOptions,\n ISource,\n ITileLayer,\n ITileLayerManager,\n ITileLayerOPtions,\n} from '@antv/l7-core';\nimport { decodePickingColor, Tile, TilesetManager } from '@antv/l7-utils';\nimport { TileLayerManager } from '../manager/tileLayerManager';\n\nexport default class BaseTileLayer implements ITileLayer {\n public get children() {\n return this.tileLayerManager.children;\n }\n public type: string = 'baseTile';\n public sourceLayer: string;\n public parent: ILayer;\n // 瓦片是否加载成功\n public initedTileset: boolean = false;\n // 瓦片数据管理器\n public tilesetManager: TilesetManager | undefined;\n public tileLayerManager: ITileLayerManager;\n public scaleField: any;\n\n private lastViewStates: {\n zoom: number;\n latLonBounds: [number, number, number, number];\n };\n\n private timer: any;\n private mapService: IMapService;\n private layerService: ILayerService;\n private pickColors: {\n select: any;\n active: any;\n } = {\n select: null,\n active: null,\n };\n\n constructor({\n parent,\n rendererService,\n mapService,\n layerService,\n pickingService,\n }: ITileLayerOPtions) {\n const parentSource = parent.getSource();\n const { sourceLayer, coords, featureId } =\n parentSource?.data?.tilesetOptions || {};\n this.sourceLayer = sourceLayer;\n this.parent = parent;\n this.mapService = mapService;\n this.layerService = layerService;\n\n this.tileLayerManager = new TileLayerManager(\n parent,\n mapService,\n rendererService,\n pickingService,\n layerService,\n );\n\n this.initTileSetManager();\n this.bindSubLayerEvent();\n this.bindSubLayerPick();\n\n this.scaleField = this.parent.getScaleOptions();\n }\n\n /**\n * 渲染瓦片的图层\n */\n public render() {\n if (this.tileLayerManager) {\n this.tileLayerManager.render();\n }\n }\n\n public clearPick(type: string) {\n if (type === 'mousemove') {\n this.tileLayerManager.tilePickManager.clearPick();\n }\n }\n\n /**\n * 清除 select 的选中状态\n */\n public clearPickState() {\n this.children\n .filter((child) => child.inited && child.isVisible())\n .filter((child) => child.getCurrentSelectedId() !== null)\n .map((child) => {\n this.selectFeature(child, new Uint8Array([0, 0, 0, 0]));\n child.setCurrentSelectedId(null);\n });\n }\n\n /**\n * 瓦片图层独立的拾取逻辑\n * @param target\n * @returns\n */\n public pickLayers(target: IInteractionTarget) {\n return this.tileLayerManager.pickLayers(target);\n }\n\n public tileLoaded(tile: Tile) {\n //\n }\n\n public tileError(error: Error) {\n console.warn('error:', error);\n }\n\n public tileUnLoad(tile: Tile) {\n this.tileLayerManager.removeChilds(tile.layerIDList, false);\n }\n\n public tileUpdate() {\n // Base Function\n if (!this.tilesetManager) {\n return;\n }\n\n this.tilesetManager.tiles\n .filter((tile) => tile.isLoaded)\n .map((tile) => {\n if (tile.layerIDList.length === 0) {\n const { layers, layerIDList } = this.tileLayerManager.createTile(\n tile,\n );\n tile.layerIDList = layerIDList;\n this.tileLayerManager.addChilds(layers);\n } else {\n if (!tile.isVisibleChange) {\n return;\n }\n const layers = this.tileLayerManager.getChilds(tile.layerIDList);\n this.tileLayerManager.updateLayersConfig(\n layers,\n 'visible',\n tile.isVisible,\n );\n }\n });\n\n if (this.tilesetManager.isLoaded) {\n // 将事件抛出,图层上可以使用瓦片\n this.parent.emit('tiles-loaded', this.tilesetManager.currentTiles);\n }\n }\n\n protected setPickState(layers: ILayer[]) {\n if (this.pickColors.select) {\n const selectedId = decodePickingColor(this.pickColors.select);\n layers.map((layer) => {\n this.selectFeature(layer, this.pickColors.select);\n layer.setCurrentSelectedId(selectedId);\n });\n }\n\n if (this.pickColors.active) {\n const selectedId = decodePickingColor(this.pickColors.active);\n layers\n .filter((layer) => layer.inited && layer.isVisible())\n .map((layer) => {\n layer.hooks.beforeHighlight.call(this.pickColors.active);\n layer.setCurrentPickId(selectedId);\n });\n }\n }\n\n private bindSubLayerPick() {\n this.tileLayerManager.tilePickManager.on('pick', (e) => {\n // @ts-ignore\n const [r, g, b] = e.pickedColors;\n\n if (e.type === 'click') {\n const restLayers = this.children\n .filter(\n (child) => child.inited && child.isVisible() && child.isVector,\n )\n .filter((child) => child !== e.layer);\n this.setSelect(restLayers, [r, g, b]);\n } else {\n this.setHighlight([r, g, b]);\n }\n });\n\n this.tileLayerManager.tilePickManager.on('unpick', () => {\n this.pickColors.active = null;\n });\n }\n\n private setHighlight(pickedColors: any) {\n const pickId = decodePickingColor(pickedColors);\n this.pickColors.active = pickedColors;\n this.children\n .filter((child) => child.inited && child.isVisible() && child.isVector)\n // Tip: 使用 vectorLayer 上的 pickID 优化高亮操作(过滤重复操作)\n // @ts-ignore\n .filter((child) => child.getPickID() !== pickId)\n .map((child) => {\n // @ts-ignore\n child.setPickID(pickId);\n child.hooks.beforeHighlight.call(pickedColors);\n });\n }\n\n private setSelect(layers: ILayer[], pickedColors: any) {\n const selectedId = decodePickingColor(pickedColors);\n layers.map((layer) => {\n if (\n layer.getCurrentSelectedId() === null ||\n selectedId !== layer.getCurrentSelectedId()\n ) {\n this.selectFeature(layer, pickedColors);\n layer.setCurrentSelectedId(selectedId);\n this.pickColors.select = pickedColors;\n } else {\n this.selectFeature(layer, new Uint8Array([0, 0, 0, 0])); // toggle select\n layer.setCurrentSelectedId(null);\n this.pickColors.select = null;\n }\n });\n // unselect normal layer\n const renderList = this.layerService.getRenderList();\n renderList\n .filter(\n (layer) =>\n layer.inited &&\n !layer.isVector &&\n layer.isVisible() &&\n layer.needPick('click'),\n )\n .filter((layer) => layer.getCurrentSelectedId() !== null)\n .map((layer) => {\n this.selectFeature(layer, new Uint8Array([0, 0, 0, 0]));\n layer.setCurrentSelectedId(null);\n });\n }\n\n private selectFeature(layer: ILayer, pickedColors: Uint8Array | undefined) {\n // @ts-ignore\n const [r, g, b] = pickedColors;\n layer.hooks.beforeSelect.call([r, g, b]);\n }\n\n private bindSubLayerEvent() {\n /**\n * layer.on('click', (ev) => {}); // 鼠标左键点击图层事件\n * layer.on('mouseenter', (ev) => {}); // 鼠标进入图层要素\n * layer.on('mousemove', (ev) => {}); // 鼠标在图层上移动时触发\n * layer.on('mouseout', (ev) => {}); // 鼠标移出图层要素时触发\n * layer.on('mouseup', (ev) => {}); // 鼠标在图层上单击抬起时触发\n * layer.on('mousedown', (ev) => {}); // 鼠标在图层上单击按下时触发\n * layer.on('contextmenu', (ev) => {}); // 图层要素点击右键菜单\n *\n * 鼠标在图层外的事件\n * layer.on('unclick', (ev) => {}); // 图层外点击\n * layer.on('unmousemove', (ev) => {}); // 图层外移动\n * layer.on('unmouseup', (ev) => {}); // 图层外鼠标抬起\n * layer.on('unmousedown', (ev) => {}); // 图层外单击按下时触发\n * layer.on('uncontextmenu', (ev) => {}); // 图层外点击右键\n * layer.on('unpick', (ev) => {}); // 图层外的操作的所有事件\n */\n this.parent.on('subLayerClick', (e) => {\n this.parent.emit('click', { ...e });\n });\n this.parent.on('subLayerMouseMove', (e) =>\n this.parent.emit('mousemove', { ...e }),\n );\n this.parent.on('subLayerMouseUp', (e) =>\n this.parent.emit('mouseup', { ...e }),\n );\n this.parent.on('subLayerMouseEnter', (e) =>\n this.parent.emit('mouseenter', { ...e }),\n );\n this.parent.on('subLayerMouseOut', (e) =>\n this.parent.emit('mouseout', { ...e }),\n );\n this.parent.on('subLayerMouseDown', (e) =>\n this.parent.emit('mousedown', { ...e }),\n );\n this.parent.on('subLayerContextmenu', (e) =>\n this.parent.emit('contextmenu', { ...e }),\n );\n\n // vector layer 图层外事件\n this.parent.on('subLayerUnClick', (e) =>\n this.parent.emit('unclick', { ...e }),\n );\n this.parent.on('subLayerUnMouseMove', (e) =>\n this.parent.emit('unmousemove', { ...e }),\n );\n this.parent.on('subLayerUnMouseUp', (e) =>\n this.parent.emit('unmouseup', { ...e }),\n );\n this.parent.on('subLayerUnMouseDown', (e) =>\n this.parent.emit('unmousedown', { ...e }),\n );\n this.parent.on('subLayerUnContextmenu', (e) =>\n this.parent.emit('uncontextmenu', { ...e }),\n );\n }\n\n private initTileSetManager() {\n const source: ISource = this.parent.getSource();\n this.tilesetManager = source.tileset as TilesetManager;\n\n if (!this.initedTileset) {\n this.bindTilesetEvent();\n this.initedTileset = true;\n }\n\n const { latLonBounds, zoom } = this.getCurrentView();\n this.tilesetManager?.update(zoom, latLonBounds);\n }\n\n private mapchange() {\n const { latLonBounds, zoom } = this.getCurrentView();\n\n if (this.mapService.version === 'GAODE1.x') {\n const { visible } = this.parent.getLayerConfig();\n if (zoom < 3 && visible) {\n this.parent.updateLayerConfig({ visible: false });\n this.layerService.updateLayerRenderList();\n } else if (zoom >= 3 && !visible) {\n this.parent.updateLayerConfig({ visible: true });\n this.layerService.updateLayerRenderList();\n }\n }\n\n if (\n this.lastViewStates &&\n this.lastViewStates.zoom === zoom &&\n this.lastViewStates.latLonBounds.toString() === latLonBounds.toString()\n ) {\n return;\n }\n this.lastViewStates = { zoom, latLonBounds };\n\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n\n // this.timer = setTimeout(() => {\n this.tilesetManager?.update(zoom, latLonBounds);\n // }, 250);\n }\n\n private bindTilesetEvent() {\n if (!this.tilesetManager) {\n return;\n }\n // 瓦片数据加载成功\n this.tilesetManager.on('tile-loaded', (tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n });\n\n // 瓦片数据从缓存删除或被执行重新加载\n this.tilesetManager.on('tile-unload', (tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n this.tileUnLoad(tile);\n });\n\n // 瓦片数据加载失败\n this.tilesetManager.on('tile-error', (error, tile: Tile) => {\n // todo: 将事件抛出,图层上可以监听使用\n this.tileError(error);\n });\n\n // 瓦片显隐状态更新\n this.tilesetManager.on('tile-update', () => {\n this.tileUpdate();\n });\n\n // 地图视野发生改变\n this.mapService.on('zoomend', () => this.mapchange());\n this.mapService.on('moveend', () => this.mapchange());\n }\n\n private getCurrentView() {\n const bounds = this.mapService.getBounds();\n const latLonBounds: [number, number, number, number] = [\n bounds[0][0],\n bounds[0][1],\n bounds[1][0],\n bounds[1][1],\n ];\n const zoom = this.mapService.getZoom();\n\n return { latLonBounds, zoom };\n }\n}\n"],"file":"baseTileLayer.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antv/l7-layers",
3
- "version": "2.9.7",
3
+ "version": "2.9.10",
4
4
  "description": "L7's collection of built-in layers",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -25,9 +25,9 @@
25
25
  "author": "xiaoiver",
26
26
  "license": "ISC",
27
27
  "dependencies": {
28
- "@antv/l7-core": "2.9.7",
29
- "@antv/l7-source": "2.9.7",
30
- "@antv/l7-utils": "2.9.7",
28
+ "@antv/l7-core": "2.9.10",
29
+ "@antv/l7-source": "2.9.10",
30
+ "@antv/l7-utils": "2.9.10",
31
31
  "@babel/runtime": "^7.7.7",
32
32
  "@mapbox/martini": "^0.2.0",
33
33
  "@turf/helpers": "^6.1.4",
@@ -35,7 +35,7 @@
35
35
  "@turf/union": "^6.5.0",
36
36
  "d3-array": "1",
37
37
  "d3-color": "^1.4.0",
38
- "d3-interpolate": "1.4.0",
38
+ "d3-interpolate": "1.0.0",
39
39
  "d3-scale": "2",
40
40
  "earcut": "^2.2.1",
41
41
  "eventemitter3": "^4.0.0",
@@ -51,13 +51,13 @@
51
51
  "devDependencies": {
52
52
  "@types/d3-array": "^2.0.0",
53
53
  "@types/d3-color": "^1.2.2",
54
- "@types/d3-interpolate": "1.4.0",
54
+ "@types/d3-interpolate": "1.1.6",
55
55
  "@types/d3-scale": "^2.1.1",
56
56
  "@types/earcut": "^2.1.0",
57
57
  "@types/gl-matrix": "^2.4.5",
58
58
  "@types/lodash": "^4.14.138"
59
59
  },
60
- "gitHead": "ffdb286c221b358e3493da5febc2622813569e20",
60
+ "gitHead": "42b99bbc2a84785af708cb52deabd26812e918e9",
61
61
  "publishConfig": {
62
62
  "access": "public"
63
63
  }