@antv/l7-layers 2.9.4 → 2.9.5

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.
@@ -125,6 +125,7 @@ var TileFactory = function () {
125
125
  }
126
126
 
127
127
  layer.source(source);
128
+ this.setScale(layer);
128
129
  this.setStyleAttributeField(layer, 'shape', shape);
129
130
  this.setStyleAttributeField(layer, 'color', color);
130
131
  this.setStyleAttributeField(layer, 'size', size);
@@ -358,6 +359,15 @@ var TileFactory = function () {
358
359
 
359
360
  this.parentLayer.emit(eventName, e);
360
361
  }
362
+ }, {
363
+ key: "setScale",
364
+ value: function setScale(layer) {
365
+ var scaleOptions = this.parentLayer.tileLayer.scaleField;
366
+ var scaleKeys = Object.keys(scaleOptions);
367
+ scaleKeys.map(function (key) {
368
+ layer.scale(key, scaleOptions[key]);
369
+ });
370
+ }
361
371
  }, {
362
372
  key: "getAllFeatures",
363
373
  value: function getAllFeatures(featureId) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tile/tileFactory/base.ts"],"names":["Source","osmLonLat2TileXY","MaskLayer","getLayerShape","readRasterValue","registerLayers","VectorLayer","turf","union","TileFactory","option","click","mousemove","mouseup","mousedown","contextmenu","parentLayer","parent","mapService","rendererService","source","getSource","zoomOffset","parser","tilesetManager","tileset","tile","initOptions","layers","layerIDList","emptyData","features","featureId","vectorTileLayer","sourceLayer","data","Array","isArray","length","type","tileLayerOption","L7Layer","mask","color","layerType","size","shape","FactoryTileLayer","layer","visible","isVisible","tileOrigin","l7TileOrigin","coord","l7TileCoord","getLayerInitOption","isVector","emitEvent","select","setStyleAttributeField","masklayer","bboxPolygon","push","addMaskLayer","styles","value","defaultValue","getDefautStyleAttributeField","params","parseScaleValue","field","values","callback","lng","lat","zoom","getZoom","z","Math","ceil","xy","tiles","filter","t","key","map","once","on","e","eventCache","lngLat","getTile","getFeatureAndEmitEvent","handleOutsideEvent","p","properties","feature","polygon","coordinates","eventName","x","y","getAllFeatures","getCombineFeature","err","console","warn","emit","allLayers","tileLayer","children","dataArray","_id","coords","emitType","outSideEventTimer","clearTimeout","setTimeout"],"mappings":"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","sourcesContent":["import {\n ILayer,\n IMapService,\n IParseDataItem,\n IRendererService,\n IScaleValue,\n ISubLayerInitOptions,\n ScaleAttributeType,\n} from '@antv/l7-core';\nimport Source from '@antv/l7-source';\nimport { osmLonLat2TileXY, Tile, TilesetManager } from '@antv/l7-utils';\nimport MaskLayer from '../../mask';\nimport {\n getLayerShape,\n readPixel,\n readRasterValue,\n registerLayers,\n} from '../utils';\nimport VectorLayer from './vectorLayer';\n\nimport * as turf from '@turf/helpers';\nimport union from '@turf/union';\nimport {\n CacheEvent,\n ILayerTileConfig,\n ITileFactory,\n ITileFactoryOptions,\n ITileStyles,\n Timeout,\n} from '../interface';\n\nexport default class TileFactory implements ITileFactory {\n public type: string;\n public parentLayer: ILayer;\n public mapService: IMapService;\n public rendererService: IRendererService;\n public outSideEventTimer: Timeout | null = null;\n protected zoomOffset: number;\n protected tilesetManager: TilesetManager;\n protected layers: ILayer[];\n // 用于记录图层内事件,辅助判断图层外事件逻辑\n private eventCache = {\n click: 0,\n mousemove: 0,\n mouseup: 0,\n mousedown: 0,\n contextmenu: 0,\n };\n constructor(option: ITileFactoryOptions) {\n this.parentLayer = option.parent;\n this.mapService = option.mapService;\n this.rendererService = option.rendererService;\n\n const source = this.parentLayer.getSource();\n this.zoomOffset = source.parser.zoomOffset || 0;\n this.tilesetManager = source.tileset as TilesetManager;\n }\n\n public createTile(tile: Tile, initOptions: ISubLayerInitOptions) {\n return {\n layers: [] as ILayer[],\n layerIDList: [] as string[],\n };\n }\n\n public getFeatureData(tile: Tile, initOptions: ISubLayerInitOptions) {\n const emptyData = {\n features: [],\n featureId: null,\n vectorTileLayer: null,\n source: null,\n };\n const { sourceLayer, featureId } = initOptions;\n if (!sourceLayer) {\n return emptyData;\n }\n const vectorTileLayer = tile.data.layers[sourceLayer];\n const features = vectorTileLayer?.features;\n if (!(Array.isArray(features) && features.length > 0)) {\n return emptyData;\n } else {\n const source = new Source(\n {\n type: 'FeatureCollection',\n features,\n },\n {\n parser: {\n type: 'geojson',\n featureId,\n },\n },\n );\n\n return {\n features,\n featureId,\n vectorTileLayer,\n source,\n };\n }\n }\n\n public createLayer(tileLayerOption: ILayerTileConfig) {\n const {\n L7Layer,\n tile,\n initOptions,\n vectorTileLayer,\n source,\n } = tileLayerOption;\n const { mask, color, layerType, size, shape } = initOptions;\n const FactoryTileLayer = L7Layer ? L7Layer : VectorLayer;\n const layer = new FactoryTileLayer({\n visible: tile.isVisible,\n tileOrigin: vectorTileLayer?.l7TileOrigin,\n coord: vectorTileLayer?.l7TileCoord,\n ...this.getLayerInitOption(initOptions),\n });\n // vector layer set config\n if (layer.isVector) {\n this.emitEvent([layer]);\n layer.type = layerType;\n layer.select(true);\n }\n\n // set source\n layer.source(source);\n\n // set scale attribute field\n this.setStyleAttributeField(layer, 'shape', shape);\n this.setStyleAttributeField(layer, 'color', color);\n this.setStyleAttributeField(layer, 'size', size);\n\n // set mask\n const layers = [layer];\n if (mask && layer.isVector) {\n const masklayer = new MaskLayer()\n .source({\n type: 'FeatureCollection',\n features: [tile.bboxPolygon],\n })\n .shape('fill');\n\n layers.push(masklayer as VectorLayer);\n\n layer.addMaskLayer(masklayer);\n }\n // regist layer\n registerLayers(this.parentLayer, layers);\n\n this.layers = [layer];\n\n return layer;\n }\n\n public updateStyle(styles: ITileStyles) {\n return '';\n }\n\n public getDefautStyleAttributeField(layer: ILayer, type: string) {\n switch (type) {\n case 'size':\n return 2;\n case 'color':\n return '#fff';\n case 'shape':\n return getLayerShape(this.parentLayer.type, layer);\n default:\n return '';\n }\n }\n\n public setStyleAttributeField(\n layer: ILayer,\n type: ScaleAttributeType,\n value: IScaleValue | undefined | string | string[],\n ) {\n if (Array.isArray(value)) {\n // @ts-ignore\n layer[type](...value);\n return;\n }\n if (typeof value === 'string') {\n layer[type](value);\n return;\n }\n const defaultValue = this.getDefautStyleAttributeField(layer, type);\n if (!value) {\n layer[type](defaultValue);\n return layer;\n }\n const params = this.parseScaleValue(value, type);\n if (params.length === 0) {\n layer[type](defaultValue);\n } else {\n // @ts-ignore\n layer[type](...params);\n }\n }\n\n protected parseScaleValue(value: IScaleValue | string, type: string) {\n if (type === 'shape') {\n if (typeof value === 'string') {\n return [value];\n } else if (value?.field) {\n return [value?.field];\n } else {\n return [];\n }\n }\n const { field, values, callback } = value as IScaleValue;\n if (field && values && Array.isArray(values)) {\n return [field, values];\n } else if (field && callback) {\n return [field, callback];\n } else if (field) {\n return [field];\n }\n return [];\n }\n\n protected getTile(lng: number, lat: number) {\n const zoom = this.mapService.getZoom();\n const z = Math.ceil(zoom) + this.zoomOffset;\n const xy = osmLonLat2TileXY(lng, lat, z);\n\n const tiles = this.tilesetManager.tiles.filter(\n (t) => t.key === `${xy[0]},${xy[1]},${z}`,\n );\n const tile = tiles[0];\n return tile;\n }\n\n protected emitEvent(layers: ILayer[], isVector?: boolean) {\n layers.map((layer) => {\n layer.once('inited', () => {\n layer.on('click', (e) => {\n this.eventCache.click = 1;\n if (this.parentLayer.type === 'RasterLayer') {\n const { lng, lat } = e.lngLat;\n const tile = this.getTile(lng, lat);\n this.getFeatureAndEmitEvent(\n layer,\n 'subLayerClick',\n e,\n isVector,\n tile,\n );\n } else {\n this.getFeatureAndEmitEvent(layer, 'subLayerClick', e);\n }\n });\n\n layer.on('mousemove', (e) => {\n this.eventCache.mousemove = 1;\n if (this.parentLayer.type === 'RasterLayer') {\n const { lng, lat } = e.lngLat;\n const tile = this.getTile(lng, lat);\n this.getFeatureAndEmitEvent(\n layer,\n 'subLayerMouseMove',\n e,\n isVector,\n tile,\n );\n } else {\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseMove', e);\n }\n });\n layer.on('mouseup', (e) => {\n this.eventCache.mouseup = 1;\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseUp', e);\n });\n layer.on('mouseenter', (e) => {\n if (this.parentLayer.type === 'RasterLayer') {\n const { lng, lat } = e.lngLat;\n const tile = this.getTile(lng, lat);\n this.getFeatureAndEmitEvent(\n layer,\n 'subLayerMouseMove',\n e,\n isVector,\n tile,\n );\n } else {\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseEnter', e);\n }\n });\n layer.on('mouseout', (e) => {\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseOut', e);\n });\n layer.on('mousedown', (e) => {\n this.eventCache.mousedown = 1;\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseDown', e);\n });\n layer.on('contextmenu', (e) => {\n this.eventCache.contextmenu = 1;\n this.getFeatureAndEmitEvent(layer, 'subLayerContextmenu', e);\n });\n\n // out side\n layer.on('unclick', (e) =>\n this.handleOutsideEvent('click', 'subLayerUnClick', layer, e),\n );\n layer.on('unmouseup', (e) =>\n this.handleOutsideEvent('mouseup', 'subLayerUnMouseUp', layer, e),\n );\n layer.on('unmousedown', (e) =>\n this.handleOutsideEvent('mousedown', 'subLayerUnMouseDown', layer, e),\n );\n layer.on('uncontextmenu', (e) =>\n this.handleOutsideEvent(\n 'contextmenu',\n 'subLayerUnContextmenu',\n layer,\n e,\n ),\n );\n });\n });\n }\n\n protected getCombineFeature(features: IParseDataItem[]) {\n let p: any = null;\n const properties = features[0];\n features.map((feature) => {\n const polygon = turf.polygon(feature.coordinates);\n if (p === null) {\n p = polygon;\n }\n {\n p = union(p, polygon);\n }\n });\n if (properties) {\n p.properties = { ...properties };\n }\n return p;\n }\n\n protected getFeatureAndEmitEvent(\n layer: ILayer,\n eventName: string,\n e: any,\n isVector?: boolean,\n tile?: any,\n ) {\n if (isVector === false) {\n // raster tile get rgb\n // e.pickedColors = readPixel(e.x, e.y, this.rendererService);\n // raster tile origin value\n e.value = readRasterValue(tile, this.mapService, e.x, e.y);\n } else {\n // VectorLayer\n const featureId = e.featureId;\n const features = this.getAllFeatures(featureId);\n try {\n e.feature = this.getCombineFeature(features);\n } catch (err) {\n console.warn('Combine Featuer Err! Return First Feature!');\n e.feature = features[0];\n }\n }\n this.parentLayer.emit(eventName, e);\n }\n\n private getAllFeatures(featureId: number) {\n const allLayers: ILayer[] = this.parentLayer.tileLayer.children;\n const features: IParseDataItem[] = [];\n allLayers.map((layer) => {\n const source = layer.getSource();\n source.data.dataArray.map((feature) => {\n if (feature._id === featureId) {\n features.push(feature);\n }\n });\n });\n return features;\n }\n\n private getLayerInitOption(initOptions: ISubLayerInitOptions) {\n const option = { ...initOptions };\n delete option.color;\n delete option.shape;\n delete option.size;\n delete option.coords;\n delete option.sourceLayer;\n delete option.coords;\n return option;\n }\n\n private handleOutsideEvent(\n type: CacheEvent,\n emitType: string,\n layer: ILayer,\n e: any,\n ) {\n if (this.outSideEventTimer) {\n clearTimeout(this.outSideEventTimer);\n this.outSideEventTimer = null;\n }\n this.outSideEventTimer = setTimeout(() => {\n if (this.eventCache[type] > 0) {\n this.eventCache[type] = 0;\n } else {\n this.getFeatureAndEmitEvent(layer, emitType, e);\n }\n }, 64);\n }\n}\n"],"file":"base.js"}
1
+ {"version":3,"sources":["../../../src/tile/tileFactory/base.ts"],"names":["Source","osmLonLat2TileXY","MaskLayer","getLayerShape","readRasterValue","registerLayers","VectorLayer","turf","union","TileFactory","option","click","mousemove","mouseup","mousedown","contextmenu","parentLayer","parent","mapService","rendererService","source","getSource","zoomOffset","parser","tilesetManager","tileset","tile","initOptions","layers","layerIDList","emptyData","features","featureId","vectorTileLayer","sourceLayer","data","Array","isArray","length","type","tileLayerOption","L7Layer","mask","color","layerType","size","shape","FactoryTileLayer","layer","visible","isVisible","tileOrigin","l7TileOrigin","coord","l7TileCoord","getLayerInitOption","isVector","emitEvent","select","setScale","setStyleAttributeField","masklayer","bboxPolygon","push","addMaskLayer","styles","value","defaultValue","getDefautStyleAttributeField","params","parseScaleValue","field","values","callback","lng","lat","zoom","getZoom","z","Math","ceil","xy","tiles","filter","t","key","map","once","on","e","eventCache","lngLat","getTile","getFeatureAndEmitEvent","handleOutsideEvent","p","properties","feature","polygon","coordinates","eventName","x","y","getAllFeatures","getCombineFeature","err","console","warn","emit","scaleOptions","tileLayer","scaleField","scaleKeys","Object","keys","scale","allLayers","children","dataArray","_id","coords","emitType","outSideEventTimer","clearTimeout","setTimeout"],"mappings":"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","sourcesContent":["import {\n ILayer,\n IMapService,\n IParseDataItem,\n IRendererService,\n IScaleValue,\n ISubLayerInitOptions,\n ScaleAttributeType,\n} from '@antv/l7-core';\nimport Source from '@antv/l7-source';\nimport { osmLonLat2TileXY, Tile, TilesetManager } from '@antv/l7-utils';\nimport MaskLayer from '../../mask';\nimport {\n getLayerShape,\n readPixel,\n readRasterValue,\n registerLayers,\n} from '../utils';\nimport VectorLayer from './vectorLayer';\n\nimport * as turf from '@turf/helpers';\nimport union from '@turf/union';\nimport {\n CacheEvent,\n ILayerTileConfig,\n ITileFactory,\n ITileFactoryOptions,\n ITileStyles,\n Timeout,\n} from '../interface';\n\nexport default class TileFactory implements ITileFactory {\n public type: string;\n public parentLayer: ILayer;\n public mapService: IMapService;\n public rendererService: IRendererService;\n public outSideEventTimer: Timeout | null = null;\n protected zoomOffset: number;\n protected tilesetManager: TilesetManager;\n protected layers: ILayer[];\n // 用于记录图层内事件,辅助判断图层外事件逻辑\n private eventCache = {\n click: 0,\n mousemove: 0,\n mouseup: 0,\n mousedown: 0,\n contextmenu: 0,\n };\n constructor(option: ITileFactoryOptions) {\n this.parentLayer = option.parent;\n this.mapService = option.mapService;\n this.rendererService = option.rendererService;\n\n const source = this.parentLayer.getSource();\n this.zoomOffset = source.parser.zoomOffset || 0;\n this.tilesetManager = source.tileset as TilesetManager;\n }\n\n public createTile(tile: Tile, initOptions: ISubLayerInitOptions) {\n return {\n layers: [] as ILayer[],\n layerIDList: [] as string[],\n };\n }\n\n public getFeatureData(tile: Tile, initOptions: ISubLayerInitOptions) {\n const emptyData = {\n features: [],\n featureId: null,\n vectorTileLayer: null,\n source: null,\n };\n const { sourceLayer, featureId } = initOptions;\n if (!sourceLayer) {\n return emptyData;\n }\n const vectorTileLayer = tile.data.layers[sourceLayer];\n const features = vectorTileLayer?.features;\n if (!(Array.isArray(features) && features.length > 0)) {\n return emptyData;\n } else {\n const source = new Source(\n {\n type: 'FeatureCollection',\n features,\n },\n {\n parser: {\n type: 'geojson',\n featureId,\n },\n },\n );\n\n return {\n features,\n featureId,\n vectorTileLayer,\n source,\n };\n }\n }\n\n public createLayer(tileLayerOption: ILayerTileConfig) {\n const {\n L7Layer,\n tile,\n initOptions,\n vectorTileLayer,\n source,\n } = tileLayerOption;\n const { mask, color, layerType, size, shape } = initOptions;\n const FactoryTileLayer = L7Layer ? L7Layer : VectorLayer;\n const layer = new FactoryTileLayer({\n visible: tile.isVisible,\n tileOrigin: vectorTileLayer?.l7TileOrigin,\n coord: vectorTileLayer?.l7TileCoord,\n ...this.getLayerInitOption(initOptions),\n });\n // vector layer set config\n if (layer.isVector) {\n this.emitEvent([layer]);\n layer.type = layerType;\n layer.select(true);\n }\n\n // set source\n layer.source(source);\n\n // set scale\n this.setScale(layer);\n // console.log(this.parentLayer.getScaleOptions())\n // console.log()\n\n // console.log(this.parentLayer.tileLayer.scaleCfg)\n\n // set scale attribute field\n this.setStyleAttributeField(layer, 'shape', shape);\n this.setStyleAttributeField(layer, 'color', color);\n this.setStyleAttributeField(layer, 'size', size);\n\n // set mask\n const layers = [layer];\n if (mask && layer.isVector) {\n const masklayer = new MaskLayer()\n .source({\n type: 'FeatureCollection',\n features: [tile.bboxPolygon],\n })\n .shape('fill');\n\n layers.push(masklayer as VectorLayer);\n\n layer.addMaskLayer(masklayer);\n }\n // regist layer\n registerLayers(this.parentLayer, layers);\n\n this.layers = [layer];\n\n return layer;\n }\n\n public updateStyle(styles: ITileStyles) {\n return '';\n }\n\n public getDefautStyleAttributeField(layer: ILayer, type: string) {\n switch (type) {\n case 'size':\n return 2;\n case 'color':\n return '#fff';\n case 'shape':\n return getLayerShape(this.parentLayer.type, layer);\n default:\n return '';\n }\n }\n\n public setStyleAttributeField(\n layer: ILayer,\n type: ScaleAttributeType,\n value: IScaleValue | undefined | string | string[],\n ) {\n if (Array.isArray(value)) {\n // @ts-ignore\n layer[type](...value);\n return;\n }\n if (typeof value === 'string') {\n layer[type](value);\n return;\n }\n const defaultValue = this.getDefautStyleAttributeField(layer, type);\n if (!value) {\n layer[type](defaultValue);\n return layer;\n }\n const params = this.parseScaleValue(value, type);\n if (params.length === 0) {\n layer[type](defaultValue);\n } else {\n // @ts-ignore\n layer[type](...params);\n }\n }\n\n protected parseScaleValue(value: IScaleValue | string, type: string) {\n if (type === 'shape') {\n if (typeof value === 'string') {\n return [value];\n } else if (value?.field) {\n return [value?.field];\n } else {\n return [];\n }\n }\n const { field, values, callback } = value as IScaleValue;\n if (field && values && Array.isArray(values)) {\n return [field, values];\n } else if (field && callback) {\n return [field, callback];\n } else if (field) {\n return [field];\n }\n return [];\n }\n\n protected getTile(lng: number, lat: number) {\n const zoom = this.mapService.getZoom();\n const z = Math.ceil(zoom) + this.zoomOffset;\n const xy = osmLonLat2TileXY(lng, lat, z);\n\n const tiles = this.tilesetManager.tiles.filter(\n (t) => t.key === `${xy[0]},${xy[1]},${z}`,\n );\n const tile = tiles[0];\n return tile;\n }\n\n protected emitEvent(layers: ILayer[], isVector?: boolean) {\n layers.map((layer) => {\n layer.once('inited', () => {\n layer.on('click', (e) => {\n this.eventCache.click = 1;\n if (this.parentLayer.type === 'RasterLayer') {\n const { lng, lat } = e.lngLat;\n const tile = this.getTile(lng, lat);\n this.getFeatureAndEmitEvent(\n layer,\n 'subLayerClick',\n e,\n isVector,\n tile,\n );\n } else {\n this.getFeatureAndEmitEvent(layer, 'subLayerClick', e);\n }\n });\n\n layer.on('mousemove', (e) => {\n this.eventCache.mousemove = 1;\n if (this.parentLayer.type === 'RasterLayer') {\n const { lng, lat } = e.lngLat;\n const tile = this.getTile(lng, lat);\n this.getFeatureAndEmitEvent(\n layer,\n 'subLayerMouseMove',\n e,\n isVector,\n tile,\n );\n } else {\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseMove', e);\n }\n });\n layer.on('mouseup', (e) => {\n this.eventCache.mouseup = 1;\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseUp', e);\n });\n layer.on('mouseenter', (e) => {\n if (this.parentLayer.type === 'RasterLayer') {\n const { lng, lat } = e.lngLat;\n const tile = this.getTile(lng, lat);\n this.getFeatureAndEmitEvent(\n layer,\n 'subLayerMouseMove',\n e,\n isVector,\n tile,\n );\n } else {\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseEnter', e);\n }\n });\n layer.on('mouseout', (e) => {\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseOut', e);\n });\n layer.on('mousedown', (e) => {\n this.eventCache.mousedown = 1;\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseDown', e);\n });\n layer.on('contextmenu', (e) => {\n this.eventCache.contextmenu = 1;\n this.getFeatureAndEmitEvent(layer, 'subLayerContextmenu', e);\n });\n\n // out side\n layer.on('unclick', (e) =>\n this.handleOutsideEvent('click', 'subLayerUnClick', layer, e),\n );\n layer.on('unmouseup', (e) =>\n this.handleOutsideEvent('mouseup', 'subLayerUnMouseUp', layer, e),\n );\n layer.on('unmousedown', (e) =>\n this.handleOutsideEvent('mousedown', 'subLayerUnMouseDown', layer, e),\n );\n layer.on('uncontextmenu', (e) =>\n this.handleOutsideEvent(\n 'contextmenu',\n 'subLayerUnContextmenu',\n layer,\n e,\n ),\n );\n });\n });\n }\n\n protected getCombineFeature(features: IParseDataItem[]) {\n let p: any = null;\n const properties = features[0];\n features.map((feature) => {\n const polygon = turf.polygon(feature.coordinates);\n if (p === null) {\n p = polygon;\n }\n {\n p = union(p, polygon);\n }\n });\n if (properties) {\n p.properties = { ...properties };\n }\n return p;\n }\n\n protected getFeatureAndEmitEvent(\n layer: ILayer,\n eventName: string,\n e: any,\n isVector?: boolean,\n tile?: any,\n ) {\n if (isVector === false) {\n // raster tile get rgb\n // e.pickedColors = readPixel(e.x, e.y, this.rendererService);\n // raster tile origin value\n e.value = readRasterValue(tile, this.mapService, e.x, e.y);\n } else {\n // VectorLayer\n const featureId = e.featureId;\n const features = this.getAllFeatures(featureId);\n try {\n e.feature = this.getCombineFeature(features);\n } catch (err) {\n console.warn('Combine Featuer Err! Return First Feature!');\n e.feature = features[0];\n }\n }\n this.parentLayer.emit(eventName, e);\n }\n\n private setScale(layer: ILayer) {\n const scaleOptions = this.parentLayer.tileLayer.scaleField;\n const scaleKeys = Object.keys(scaleOptions);\n scaleKeys.map((key) => {\n layer.scale(key, scaleOptions[key]);\n });\n }\n\n private getAllFeatures(featureId: number) {\n const allLayers: ILayer[] = this.parentLayer.tileLayer.children;\n const features: IParseDataItem[] = [];\n allLayers.map((layer) => {\n const source = layer.getSource();\n source.data.dataArray.map((feature) => {\n if (feature._id === featureId) {\n features.push(feature);\n }\n });\n });\n return features;\n }\n\n private getLayerInitOption(initOptions: ISubLayerInitOptions) {\n const option = { ...initOptions };\n delete option.color;\n delete option.shape;\n delete option.size;\n delete option.coords;\n delete option.sourceLayer;\n delete option.coords;\n return option;\n }\n\n private handleOutsideEvent(\n type: CacheEvent,\n emitType: string,\n layer: ILayer,\n e: any,\n ) {\n if (this.outSideEventTimer) {\n clearTimeout(this.outSideEventTimer);\n this.outSideEventTimer = null;\n }\n this.outSideEventTimer = setTimeout(() => {\n if (this.eventCache[type] > 0) {\n this.eventCache[type] = 0;\n } else {\n this.getFeatureAndEmitEvent(layer, emitType, e);\n }\n }, 64);\n }\n}\n"],"file":"base.js"}
@@ -1,4 +1,4 @@
1
- import { IInteractionTarget, ILayer, IScale, IScaleOptions, ITileLayer, ITileLayerManager, ITileLayerOPtions } from '@antv/l7-core';
1
+ import { IInteractionTarget, ILayer, ITileLayer, ITileLayerManager, ITileLayerOPtions } from '@antv/l7-core';
2
2
  import { Tile, TilesetManager } from '@antv/l7-utils';
3
3
  export default class BaseTileLayer implements ITileLayer {
4
4
  get children(): ILayer[];
@@ -8,18 +8,13 @@ export default class BaseTileLayer implements ITileLayer {
8
8
  initedTileset: boolean;
9
9
  tilesetManager: TilesetManager | undefined;
10
10
  tileLayerManager: ITileLayerManager;
11
+ scaleField: any;
11
12
  private lastViewStates;
12
13
  private timer;
13
14
  private mapService;
14
15
  private layerService;
15
16
  private pickColors;
16
17
  constructor({ parent, rendererService, mapService, layerService, pickingService, }: ITileLayerOPtions);
17
- /**
18
- * 直接透传 scale 方法
19
- * @param field
20
- * @param cfg
21
- */
22
- scale(field: string | number | IScaleOptions, cfg?: IScale): void;
23
18
  /**
24
19
  * 渲染瓦片的图层
25
20
  */
@@ -34,6 +34,8 @@ var BaseTileLayer = function () {
34
34
 
35
35
  _defineProperty(this, "tileLayerManager", void 0);
36
36
 
37
+ _defineProperty(this, "scaleField", void 0);
38
+
37
39
  _defineProperty(this, "lastViewStates", void 0);
38
40
 
39
41
  _defineProperty(this, "timer", void 0);
@@ -62,6 +64,7 @@ var BaseTileLayer = function () {
62
64
  this.initTileSetManager();
63
65
  this.bindSubLayerEvent();
64
66
  this.bindSubLayerPick();
67
+ this.scaleField = this.parent.getScaleOptions();
65
68
  }
66
69
 
67
70
  _createClass(BaseTileLayer, [{
@@ -69,13 +72,6 @@ var BaseTileLayer = function () {
69
72
  get: function get() {
70
73
  return this.tileLayerManager.children;
71
74
  }
72
- }, {
73
- key: "scale",
74
- value: function scale(field, cfg) {
75
- this.children.map(function (child) {
76
- child.scale(field, cfg);
77
- });
78
- }
79
75
  }, {
80
76
  key: "render",
81
77
  value: function render() {
@@ -144,7 +140,7 @@ var BaseTileLayer = function () {
144
140
 
145
141
  _this2.tileLayerManager.addChilds(layers);
146
142
  } else {
147
- if (!tile.isVisibleChanged) {
143
+ if (!tile.isVisibleChange) {
148
144
  return;
149
145
  }
150
146
 
@@ -345,6 +341,8 @@ var BaseTileLayer = function () {
345
341
  _this7.tileUpdate();
346
342
  });
347
343
  this.mapService.on('mapchange', function (e) {
344
+ var _this7$tilesetManager;
345
+
348
346
  var _this7$getCurrentView = _this7.getCurrentView(),
349
347
  latLonBounds = _this7$getCurrentView.latLonBounds,
350
348
  zoom = _this7$getCurrentView.zoom;
@@ -382,11 +380,7 @@ var BaseTileLayer = function () {
382
380
  _this7.timer = null;
383
381
  }
384
382
 
385
- _this7.timer = setTimeout(function () {
386
- var _this7$tilesetManager;
387
-
388
- (_this7$tilesetManager = _this7.tilesetManager) === null || _this7$tilesetManager === void 0 ? void 0 : _this7$tilesetManager.update(zoom, latLonBounds);
389
- }, 250);
383
+ (_this7$tilesetManager = _this7.tilesetManager) === null || _this7$tilesetManager === void 0 ? void 0 : _this7$tilesetManager.update(zoom, latLonBounds);
390
384
  });
391
385
  }
392
386
  }, {
@@ -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","children","field","cfg","map","child","scale","render","type","tilePickManager","clearPick","filter","inited","isVisible","getCurrentSelectedId","selectFeature","Uint8Array","setCurrentSelectedId","target","pickLayers","tile","error","console","warn","removeChilds","layerIDList","tilesetManager","tiles","isLoaded","length","createTile","layers","addChilds","isVisibleChanged","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","setTimeout","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\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\n /**\n * 直接透传 scale 方法\n * @param field\n * @param cfg\n */\n public scale(field: string | number | IScaleOptions, cfg?: IScale) {\n this.children.map((child) => {\n child.scale(field, cfg);\n });\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);\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.isVisibleChanged) {\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","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);\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"}
@@ -76,7 +76,7 @@ export var TMSTileLayer = function (_BaseTileLayer) {
76
76
 
77
77
  _this2.setPickState(layers);
78
78
  } else {
79
- if (!tile.isVisibleChanged) {
79
+ if (!tile.isVisibleChange) {
80
80
  return;
81
81
  }
82
82
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tile/tmsTileLayer.ts"],"names":["BaseTileLayer","TMSTileLayer","tile","tileLayerManager","removeChilds","layerIDList","tilesetManager","tiles","filter","isLoaded","map","data","layers","sourceLayer","vectorTileLayer","features","Array","isArray","length","parentLayerIDList","includes","parent","id","createTile","push","addChilds","setPickState","isVisibleChanged","getChilds","updateLayersConfig","isVisible","renderLayers","emit","currentTiles"],"mappings":";;;;;;;;;;;;;AACA,OAAOA,aAAP,MAA0B,2BAA1B;AAEA,WAAaC,YAAb;AAAA;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;;AAAA,2DACwB,KADxB;;AAAA;AAAA;;AAAA;AAAA;AAAA,WAEE,oBAAkBC,IAAlB,EAA8B;AAC5B,WAAKC,gBAAL,CAAsBC,YAAtB,CAAmCF,IAAI,CAACG,WAAxC;AACD;AAJH;AAAA;AAAA,WAKE,sBAAoB;AAAA;;AAClB,UAAI,CAAC,KAAKC,cAAV,EAA0B;AACxB;AACD;;AACD,WAAKA,cAAL,CAAoBC,KAApB,CACGC,MADH,CACU,UAACN,IAAD;AAAA,eAAgBA,IAAI,CAACO,QAArB;AAAA,OADV,EAEGC,GAFH,CAEO,UAACR,IAAD,EAAgB;AAAA;;AACnB,YAAI,cAAAA,IAAI,CAACS,IAAL,kDAAWC,MAAX,IAAqB,MAAI,CAACC,WAA9B,EAA2C;AAEzC,cAAMC,eAAe,GAAGZ,IAAI,CAACS,IAAL,CAAUC,MAAV,CAAiB,MAAI,CAACC,WAAtB,CAAxB;AACA,cAAME,QAAQ,GAAGD,eAAH,aAAGA,eAAH,uBAAGA,eAAe,CAAEC,QAAlC;;AACA,cAAI,EAAEC,KAAK,CAACC,OAAN,CAAcF,QAAd,KAA2BA,QAAQ,CAACG,MAAT,GAAkB,CAA/C,CAAJ,EAAuD;AACrD;AACD;AACF;;AACD,YAAI,CAAChB,IAAI,CAACiB,iBAAL,CAAuBC,QAAvB,CAAgC,MAAI,CAACC,MAAL,CAAYC,EAA5C,CAAL,EAAsD;AAAA;;AACpD,sCAAgC,MAAI,CAACnB,gBAAL,CAAsBoB,UAAtB,CAC9BrB,IAD8B,CAAhC;AAAA,cAAQU,MAAR,yBAAQA,MAAR;AAAA,cAAgBP,WAAhB,yBAAgBA,WAAhB;;AAGAH,UAAAA,IAAI,CAACiB,iBAAL,CAAuBK,IAAvB,CAA4B,MAAI,CAACH,MAAL,CAAYC,EAAxC;;AACA,+BAAApB,IAAI,CAACG,WAAL,EAAiBmB,IAAjB,6CAAyBnB,WAAzB;;AAEA,UAAA,MAAI,CAACF,gBAAL,CAAsBsB,SAAtB,CAAgCb,MAAhC;;AACA,UAAA,MAAI,CAACc,YAAL,CAAkBd,MAAlB;AACD,SATD,MASO;AACL,cAAI,CAACV,IAAI,CAACyB,gBAAV,EAA4B;AAC1B;AACD;;AACD,cAAMf,OAAM,GAAG,MAAI,CAACT,gBAAL,CAAsByB,SAAtB,CAAgC1B,IAAI,CAACG,WAArC,CAAf;;AACA,UAAA,MAAI,CAACF,gBAAL,CAAsB0B,kBAAtB,CACEjB,OADF,EAEE,SAFF,EAGEV,IAAI,CAAC4B,SAHP;;AAKA,UAAA,MAAI,CAACJ,YAAL,CAAkBd,OAAlB;AACD;AACF,OAhCH;AAkCA,WAAKS,MAAL,CAAYU,YAAZ;;AAEA,UAAI,KAAKzB,cAAL,CAAoBG,QAAxB,EAAkC;AAEhC,aAAKY,MAAL,CAAYW,IAAZ,CAAiB,cAAjB,EAAiC,KAAK1B,cAAL,CAAoB2B,YAArD;AACD;AACF;AAjDH;;AAAA;AAAA,EAAkCjC,aAAlC","sourcesContent":["import { Tile, TilesetManager } from '@antv/l7-utils';\nimport BaseTileLayer from './tileLayer/baseTileLayer';\n\nexport class TMSTileLayer extends BaseTileLayer {\n public type: string = 'TMS';\n public tileUnLoad(tile: Tile) {\n this.tileLayerManager.removeChilds(tile.layerIDList);\n }\n public tileUpdate() {\n if (!this.tilesetManager) {\n return;\n }\n this.tilesetManager.tiles\n .filter((tile: Tile) => tile.isLoaded)\n .map((tile: Tile) => {\n if (tile.data?.layers && this.sourceLayer) {\n // vector\n const vectorTileLayer = tile.data.layers[this.sourceLayer];\n const features = vectorTileLayer?.features;\n if (!(Array.isArray(features) && features.length > 0)) {\n return;\n }\n }\n if (!tile.parentLayerIDList.includes(this.parent.id)) {\n const { layers, layerIDList } = this.tileLayerManager.createTile(\n tile,\n );\n tile.parentLayerIDList.push(this.parent.id);\n tile.layerIDList.push(...layerIDList);\n\n this.tileLayerManager.addChilds(layers);\n this.setPickState(layers);\n } else {\n if (!tile.isVisibleChanged) {\n return;\n }\n const layers = this.tileLayerManager.getChilds(tile.layerIDList);\n this.tileLayerManager.updateLayersConfig(\n layers,\n 'visible',\n tile.isVisible,\n );\n this.setPickState(layers);\n }\n });\n\n this.parent.renderLayers();\n\n if (this.tilesetManager.isLoaded) {\n // 将事件抛出,图层上可以使用瓦片\n this.parent.emit('tiles-loaded', this.tilesetManager.currentTiles);\n }\n }\n}\n"],"file":"tmsTileLayer.js"}
1
+ {"version":3,"sources":["../../src/tile/tmsTileLayer.ts"],"names":["BaseTileLayer","TMSTileLayer","tile","tileLayerManager","removeChilds","layerIDList","tilesetManager","tiles","filter","isLoaded","map","data","layers","sourceLayer","vectorTileLayer","features","Array","isArray","length","parentLayerIDList","includes","parent","id","createTile","push","addChilds","setPickState","isVisibleChange","getChilds","updateLayersConfig","isVisible","renderLayers","emit","currentTiles"],"mappings":";;;;;;;;;;;;;AACA,OAAOA,aAAP,MAA0B,2BAA1B;AAEA,WAAaC,YAAb;AAAA;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;;AAAA,2DACwB,KADxB;;AAAA;AAAA;;AAAA;AAAA;AAAA,WAEE,oBAAkBC,IAAlB,EAA8B;AAC5B,WAAKC,gBAAL,CAAsBC,YAAtB,CAAmCF,IAAI,CAACG,WAAxC;AACD;AAJH;AAAA;AAAA,WAKE,sBAAoB;AAAA;;AAClB,UAAI,CAAC,KAAKC,cAAV,EAA0B;AACxB;AACD;;AACD,WAAKA,cAAL,CAAoBC,KAApB,CACGC,MADH,CACU,UAACN,IAAD;AAAA,eAAgBA,IAAI,CAACO,QAArB;AAAA,OADV,EAEGC,GAFH,CAEO,UAACR,IAAD,EAAgB;AAAA;;AACnB,YAAI,cAAAA,IAAI,CAACS,IAAL,kDAAWC,MAAX,IAAqB,MAAI,CAACC,WAA9B,EAA2C;AAEzC,cAAMC,eAAe,GAAGZ,IAAI,CAACS,IAAL,CAAUC,MAAV,CAAiB,MAAI,CAACC,WAAtB,CAAxB;AACA,cAAME,QAAQ,GAAGD,eAAH,aAAGA,eAAH,uBAAGA,eAAe,CAAEC,QAAlC;;AACA,cAAI,EAAEC,KAAK,CAACC,OAAN,CAAcF,QAAd,KAA2BA,QAAQ,CAACG,MAAT,GAAkB,CAA/C,CAAJ,EAAuD;AACrD;AACD;AACF;;AACD,YAAI,CAAChB,IAAI,CAACiB,iBAAL,CAAuBC,QAAvB,CAAgC,MAAI,CAACC,MAAL,CAAYC,EAA5C,CAAL,EAAsD;AAAA;;AACpD,sCAAgC,MAAI,CAACnB,gBAAL,CAAsBoB,UAAtB,CAC9BrB,IAD8B,CAAhC;AAAA,cAAQU,MAAR,yBAAQA,MAAR;AAAA,cAAgBP,WAAhB,yBAAgBA,WAAhB;;AAGAH,UAAAA,IAAI,CAACiB,iBAAL,CAAuBK,IAAvB,CAA4B,MAAI,CAACH,MAAL,CAAYC,EAAxC;;AACA,+BAAApB,IAAI,CAACG,WAAL,EAAiBmB,IAAjB,6CAAyBnB,WAAzB;;AAEA,UAAA,MAAI,CAACF,gBAAL,CAAsBsB,SAAtB,CAAgCb,MAAhC;;AACA,UAAA,MAAI,CAACc,YAAL,CAAkBd,MAAlB;AACD,SATD,MASO;AACL,cAAI,CAACV,IAAI,CAACyB,eAAV,EAA2B;AACzB;AACD;;AACD,cAAMf,OAAM,GAAG,MAAI,CAACT,gBAAL,CAAsByB,SAAtB,CAAgC1B,IAAI,CAACG,WAArC,CAAf;;AACA,UAAA,MAAI,CAACF,gBAAL,CAAsB0B,kBAAtB,CACEjB,OADF,EAEE,SAFF,EAGEV,IAAI,CAAC4B,SAHP;;AAKA,UAAA,MAAI,CAACJ,YAAL,CAAkBd,OAAlB;AACD;AACF,OAhCH;AAkCA,WAAKS,MAAL,CAAYU,YAAZ;;AAEA,UAAI,KAAKzB,cAAL,CAAoBG,QAAxB,EAAkC;AAEhC,aAAKY,MAAL,CAAYW,IAAZ,CAAiB,cAAjB,EAAiC,KAAK1B,cAAL,CAAoB2B,YAArD;AACD;AACF;AAjDH;;AAAA;AAAA,EAAkCjC,aAAlC","sourcesContent":["import { Tile, TilesetManager } from '@antv/l7-utils';\nimport BaseTileLayer from './tileLayer/baseTileLayer';\n\nexport class TMSTileLayer extends BaseTileLayer {\n public type: string = 'TMS';\n public tileUnLoad(tile: Tile) {\n this.tileLayerManager.removeChilds(tile.layerIDList);\n }\n public tileUpdate() {\n if (!this.tilesetManager) {\n return;\n }\n this.tilesetManager.tiles\n .filter((tile: Tile) => tile.isLoaded)\n .map((tile: Tile) => {\n if (tile.data?.layers && this.sourceLayer) {\n // vector\n const vectorTileLayer = tile.data.layers[this.sourceLayer];\n const features = vectorTileLayer?.features;\n if (!(Array.isArray(features) && features.length > 0)) {\n return;\n }\n }\n if (!tile.parentLayerIDList.includes(this.parent.id)) {\n const { layers, layerIDList } = this.tileLayerManager.createTile(\n tile,\n );\n tile.parentLayerIDList.push(this.parent.id);\n tile.layerIDList.push(...layerIDList);\n\n this.tileLayerManager.addChilds(layers);\n this.setPickState(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 this.setPickState(layers);\n }\n });\n\n this.parent.renderLayers();\n\n if (this.tilesetManager.isLoaded) {\n // 将事件抛出,图层上可以使用瓦片\n this.parent.emit('tiles-loaded', this.tilesetManager.currentTiles);\n }\n }\n}\n"],"file":"tmsTileLayer.js"}
@@ -68,8 +68,12 @@ var SpriteModel = function (_BaseModel) {
68
68
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "spriteUpdate", void 0);
69
69
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "spriteAnimate", void 0);
70
70
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "planeGeometryUpdateTriangulation", function () {
71
+ var _ref = _this.layer.getLayerConfig(),
72
+ _ref$spriteBottom = _ref.spriteBottom,
73
+ spriteBottom = _ref$spriteBottom === void 0 ? -100000 : _ref$spriteBottom;
74
+
71
75
  var updateZ = _this.spriteUpdate;
72
- var bottomZ = -100000;
76
+ var bottomZ = spriteBottom;
73
77
  var topZ = _this.spriteTop;
74
78
 
75
79
  for (var i = 0; i < _this.positions.length; i += 5) {
@@ -110,13 +114,13 @@ var SpriteModel = function (_BaseModel) {
110
114
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "planeGeometryTriangulation", function () {
111
115
  var _this2;
112
116
 
113
- var _ref = _this.layer.getLayerConfig(),
114
- _ref$center = _ref.center,
115
- center = _ref$center === void 0 ? [120, 30] : _ref$center,
116
- _ref$spriteCount = _ref.spriteCount,
117
- spriteCount = _ref$spriteCount === void 0 ? 100 : _ref$spriteCount,
118
- _ref$spriteRadius = _ref.spriteRadius,
119
- spriteRadius = _ref$spriteRadius === void 0 ? 10 : _ref$spriteRadius;
117
+ var _ref2 = _this.layer.getLayerConfig(),
118
+ _ref2$center = _ref2.center,
119
+ center = _ref2$center === void 0 ? [120, 30] : _ref2$center,
120
+ _ref2$spriteCount = _ref2.spriteCount,
121
+ spriteCount = _ref2$spriteCount === void 0 ? 100 : _ref2$spriteCount,
122
+ _ref2$spriteRadius = _ref2.spriteRadius,
123
+ spriteRadius = _ref2$spriteRadius === void 0 ? 10 : _ref2$spriteRadius;
120
124
 
121
125
  var _this$initSprite = (_this2 = _this).initSprite.apply(_this2, [spriteRadius, spriteCount].concat((0, _toConsumableArray2.default)(center))),
122
126
  indices = _this$initSprite.indices,
@@ -161,10 +165,10 @@ var SpriteModel = function (_BaseModel) {
161
165
  var y = -radius / 2 + randomY;
162
166
 
163
167
  if (mapService.version === _l7Maps.Version['GAODE2.x']) {
164
- var _ref2 = mapService.lngLatToCoord([x + lng, -y + lat]),
165
- _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
166
- a = _ref3[0],
167
- b = _ref3[1];
168
+ var _ref3 = mapService.lngLatToCoord([x + lng, -y + lat]),
169
+ _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
170
+ a = _ref4[0],
171
+ b = _ref4[1];
168
172
 
169
173
  return [a, b, z, 0, 0];
170
174
  } else {
@@ -180,11 +184,11 @@ var SpriteModel = function (_BaseModel) {
180
184
  }, {
181
185
  key: "getUninforms",
182
186
  value: function getUninforms() {
183
- var _ref4 = this.layer.getLayerConfig(),
184
- opacity = _ref4.opacity,
185
- mapTexture = _ref4.mapTexture,
186
- _ref4$spriteScale = _ref4.spriteScale,
187
- spriteScale = _ref4$spriteScale === void 0 ? 1 : _ref4$spriteScale;
187
+ var _ref5 = this.layer.getLayerConfig(),
188
+ opacity = _ref5.opacity,
189
+ mapTexture = _ref5.mapTexture,
190
+ _ref5$spriteScale = _ref5.spriteScale,
191
+ spriteScale = _ref5$spriteScale === void 0 ? 1 : _ref5$spriteScale;
188
192
 
189
193
  if (this.mapTexture !== mapTexture) {
190
194
  var _this$texture;
@@ -214,14 +218,14 @@ var SpriteModel = function (_BaseModel) {
214
218
  value: function initModels() {
215
219
  var _this3 = this;
216
220
 
217
- var _ref5 = this.layer.getLayerConfig(),
218
- mapTexture = _ref5.mapTexture,
219
- _ref5$spriteTop = _ref5.spriteTop,
220
- spriteTop = _ref5$spriteTop === void 0 ? 5000000 : _ref5$spriteTop,
221
- _ref5$spriteUpdate = _ref5.spriteUpdate,
222
- spriteUpdate = _ref5$spriteUpdate === void 0 ? 10000 : _ref5$spriteUpdate,
223
- _ref5$spriteAnimate = _ref5.spriteAnimate,
224
- spriteAnimate = _ref5$spriteAnimate === void 0 ? SPRITE_ANIMATE_DIR.DOWN : _ref5$spriteAnimate;
221
+ var _ref6 = this.layer.getLayerConfig(),
222
+ mapTexture = _ref6.mapTexture,
223
+ _ref6$spriteTop = _ref6.spriteTop,
224
+ spriteTop = _ref6$spriteTop === void 0 ? 5000000 : _ref6$spriteTop,
225
+ _ref6$spriteUpdate = _ref6.spriteUpdate,
226
+ spriteUpdate = _ref6$spriteUpdate === void 0 ? 10000 : _ref6$spriteUpdate,
227
+ _ref6$spriteAnimate = _ref6.spriteAnimate,
228
+ spriteAnimate = _ref6$spriteAnimate === void 0 ? SPRITE_ANIMATE_DIR.DOWN : _ref6$spriteAnimate;
225
229
 
226
230
  this.mapTexture = mapTexture;
227
231
  this.spriteTop = spriteTop;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Geometry/models/sprite.ts"],"names":["SPRITE_ANIMATE_DIR","SpriteModel","updateZ","spriteUpdate","bottomZ","topZ","spriteTop","i","positions","length","spriteAnimate","UP","vertices","indices","size","attributes","layer","createAttrubutes","triangulation","planeGeometryUpdateTriangulation","models","map","m","updateAttributes","renderLayers","timer","requestAnimationFrame","updateModel","getLayerConfig","center","spriteCount","spriteRadius","initSprite","radius","lng","lat","mapService","heightLimit","height","Math","random","push","getPos","z","randomX","randomY","x","y","version","Version","lngLatToCoord","a","b","opacity","mapTexture","spriteScale","texture","destroy","updateTexture","u_opacity","u_mapFlag","u_texture","u_Scale","cancelAnimationFrame","DOWN","createTexture2D","rendererService","width","setTimeout","buildLayerModel","moduleName","vertexShader","spriteVert","fragmentShader","spriteFrag","planeGeometryTriangulation","primitive","gl","POINTS","depth","enable","blend","getBlend","initModels","img","Image","crossOrigin","onload","data","wrapS","CLAMP_TO_EDGE","wrapT","layerService","updateLayerRenderList","src","properties","type","minimum","maximum","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n ILayerConfig,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\n\nimport BaseModel from '../../core/BaseModel';\nimport { IGeometryLayerStyleOptions } from '../../core/interface';\nimport spriteFrag from '../shaders/sprite_frag.glsl';\nimport spriteVert from '../shaders/sprite_vert.glsl';\n\nenum SPRITE_ANIMATE_DIR {\n 'UP' = 'up',\n 'DOWN' = 'down',\n}\n\nexport default class SpriteModel extends BaseModel {\n protected texture: ITexture2D;\n protected mapTexture: string | undefined;\n protected positions: number[];\n protected indices: number[];\n protected timer: number;\n protected spriteTop: number;\n protected spriteUpdate: number;\n protected spriteAnimate: SPRITE_ANIMATE_DIR;\n\n public initSprite(radius = 10, spriteCount = 100, lng = 120, lat = 30) {\n const indices = [];\n const positions = [];\n const mapService = this.mapService;\n const heightLimit =\n this.spriteAnimate === SPRITE_ANIMATE_DIR.UP\n ? -this.spriteTop\n : this.spriteTop;\n for (let i = 0; i < spriteCount; i++) {\n const height = Math.random() * heightLimit;\n positions.push(...getPos(height));\n }\n for (let i = 0; i < spriteCount; i++) {\n indices.push(i);\n }\n\n function getPos(z: number) {\n const randomX = radius * Math.random();\n const randomY = radius * Math.random();\n const x = -radius / 2 + randomX;\n const y = -radius / 2 + randomY;\n if (mapService.version === Version['GAODE2.x']) {\n // @ts-ignore\n const [a, b] = mapService.lngLatToCoord([x + lng, -y + lat]) as [\n number,\n number,\n ];\n return [a, b, z, 0, 0];\n } else {\n return [x + lng, -y + lat, z, 0, 0];\n }\n }\n\n return { indices, positions };\n }\n\n public planeGeometryUpdateTriangulation = () => {\n const updateZ = this.spriteUpdate;\n const bottomZ = -100000;\n const topZ = this.spriteTop;\n\n for (let i = 0; i < this.positions.length; i += 5) {\n if (this.spriteAnimate === SPRITE_ANIMATE_DIR.UP) {\n this.positions[i + 2] += updateZ;\n if (this.positions[i + 2] > topZ) {\n this.positions[i + 2] = bottomZ;\n }\n } else {\n this.positions[i + 2] -= updateZ;\n if (this.positions[i + 2] < bottomZ) {\n this.positions[i + 2] = topZ;\n }\n }\n }\n\n return {\n vertices: this.positions,\n indices: this.indices,\n size: 5,\n };\n };\n\n public updateModel = () => {\n // @ts-ignore\n const attributes = this.layer.createAttrubutes({\n triangulation: this.planeGeometryUpdateTriangulation,\n });\n this.layer.models.map((m) => {\n m.updateAttributes(attributes);\n });\n this.layer.renderLayers();\n\n this.timer = requestAnimationFrame(this.updateModel);\n };\n\n public planeGeometryTriangulation = () => {\n const {\n center = [120, 30],\n spriteCount = 100,\n spriteRadius = 10,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n\n const { indices, positions } = this.initSprite(\n spriteRadius,\n spriteCount,\n ...center,\n );\n this.positions = positions;\n this.indices = indices;\n return {\n vertices: positions,\n indices,\n size: 5,\n };\n };\n\n public getUninforms(): IModelUniform {\n const {\n opacity,\n mapTexture,\n spriteScale = 1,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n if (this.mapTexture !== mapTexture) {\n this.mapTexture = mapTexture;\n this.texture?.destroy();\n this.updateTexture(mapTexture);\n }\n return {\n u_opacity: opacity || 1,\n u_mapFlag: mapTexture ? 1 : 0,\n u_texture: this.texture,\n u_Scale: spriteScale,\n };\n }\n\n public clearModels(): void {\n cancelAnimationFrame(this.timer);\n this.texture?.destroy();\n }\n\n public initModels() {\n const {\n mapTexture,\n spriteTop = 5000000,\n spriteUpdate = 10000,\n spriteAnimate = SPRITE_ANIMATE_DIR.DOWN,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n this.mapTexture = mapTexture;\n this.spriteTop = spriteTop;\n this.spriteUpdate = spriteUpdate;\n spriteAnimate === 'up'\n ? (this.spriteAnimate = SPRITE_ANIMATE_DIR.UP)\n : (this.spriteAnimate = SPRITE_ANIMATE_DIR.DOWN);\n\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n this.updateTexture(mapTexture);\n\n setTimeout(() => {\n this.updateModel();\n }, 100);\n\n return [\n this.layer.buildLayerModel({\n moduleName: 'geometry_sprite',\n vertexShader: spriteVert,\n fragmentShader: spriteFrag,\n triangulation: this.planeGeometryTriangulation,\n primitive: gl.POINTS,\n depth: { enable: false },\n blend: this.getBlend(),\n }),\n ];\n }\n\n public buildModels() {\n return this.initModels();\n }\n\n public updateTexture(mapTexture: string | undefined): void {\n const { createTexture2D } = this.rendererService;\n\n if (mapTexture) {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => {\n this.texture = createTexture2D({\n data: img,\n width: img.width,\n height: img.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n img.src = mapTexture;\n } else {\n this.texture = createTexture2D({\n width: 0,\n height: 0,\n });\n }\n }\n\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n\n protected registerBuiltinAttributes() {\n return '';\n }\n}\n"],"file":"sprite.js"}
1
+ {"version":3,"sources":["../../../src/Geometry/models/sprite.ts"],"names":["SPRITE_ANIMATE_DIR","SpriteModel","layer","getLayerConfig","spriteBottom","updateZ","spriteUpdate","bottomZ","topZ","spriteTop","i","positions","length","spriteAnimate","UP","vertices","indices","size","attributes","createAttrubutes","triangulation","planeGeometryUpdateTriangulation","models","map","m","updateAttributes","renderLayers","timer","requestAnimationFrame","updateModel","center","spriteCount","spriteRadius","initSprite","radius","lng","lat","mapService","heightLimit","height","Math","random","push","getPos","z","randomX","randomY","x","y","version","Version","lngLatToCoord","a","b","opacity","mapTexture","spriteScale","texture","destroy","updateTexture","u_opacity","u_mapFlag","u_texture","u_Scale","cancelAnimationFrame","DOWN","createTexture2D","rendererService","width","setTimeout","buildLayerModel","moduleName","vertexShader","spriteVert","fragmentShader","spriteFrag","planeGeometryTriangulation","primitive","gl","POINTS","depth","enable","blend","getBlend","initModels","img","Image","crossOrigin","onload","data","wrapS","CLAMP_TO_EDGE","wrapT","layerService","updateLayerRenderList","src","properties","type","minimum","maximum","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AASA;;AAEA;;;;;;;;IAKKA,kB;;WAAAA,kB;AAAAA,EAAAA,kB;AAAAA,EAAAA,kB;GAAAA,kB,KAAAA,kB;;IAKgBC,W;;;;;;;;;;;;;;;;;;;;;;;mHA8CuB,YAAM;AAC9C,iBAEI,MAAKC,KAAL,CAAWC,cAAX,EAFJ;AAAA,mCACEC,YADF;AAAA,UACEA,YADF,kCACiB,CAAC,MADlB;;AAGA,UAAMC,OAAO,GAAG,MAAKC,YAArB;AAEA,UAAMC,OAAO,GAAGH,YAAhB;AACA,UAAMI,IAAI,GAAG,MAAKC,SAAlB;;AAEA,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,MAAKC,SAAL,CAAeC,MAAnC,EAA2CF,CAAC,IAAI,CAAhD,EAAmD;AACjD,YAAI,MAAKG,aAAL,KAAuBb,kBAAkB,CAACc,EAA9C,EAAkD;AAChD,gBAAKH,SAAL,CAAeD,CAAC,GAAG,CAAnB,KAAyBL,OAAzB;;AACA,cAAI,MAAKM,SAAL,CAAeD,CAAC,GAAG,CAAnB,IAAwBF,IAA5B,EAAkC;AAChC,kBAAKG,SAAL,CAAeD,CAAC,GAAG,CAAnB,IAAwBH,OAAxB;AACD;AACF,SALD,MAKO;AACL,gBAAKI,SAAL,CAAeD,CAAC,GAAG,CAAnB,KAAyBL,OAAzB;;AACA,cAAI,MAAKM,SAAL,CAAeD,CAAC,GAAG,CAAnB,IAAwBH,OAA5B,EAAqC;AACnC,kBAAKI,SAAL,CAAeD,CAAC,GAAG,CAAnB,IAAwBF,IAAxB;AACD;AACF;AACF;;AAED,aAAO;AACLO,QAAAA,QAAQ,EAAE,MAAKJ,SADV;AAELK,QAAAA,OAAO,EAAE,MAAKA,OAFT;AAGLC,QAAAA,IAAI,EAAE;AAHD,OAAP;AAKD,K;8FAEoB,YAAM;AAEzB,UAAMC,UAAU,GAAG,MAAKhB,KAAL,CAAWiB,gBAAX,CAA4B;AAC7CC,QAAAA,aAAa,EAAE,MAAKC;AADyB,OAA5B,CAAnB;;AAGA,YAAKnB,KAAL,CAAWoB,MAAX,CAAkBC,GAAlB,CAAsB,UAACC,CAAD,EAAO;AAC3BA,QAAAA,CAAC,CAACC,gBAAF,CAAmBP,UAAnB;AACD,OAFD;;AAGA,YAAKhB,KAAL,CAAWwB,YAAX;;AAEA,YAAKC,KAAL,GAAaC,qBAAqB,CAAC,MAAKC,WAAN,CAAlC;AACD,K;6GAEmC,YAAM;AAAA;;AACxC,kBAII,MAAK3B,KAAL,CAAWC,cAAX,EAJJ;AAAA,+BACE2B,MADF;AAAA,UACEA,MADF,6BACW,CAAC,GAAD,EAAM,EAAN,CADX;AAAA,oCAEEC,WAFF;AAAA,UAEEA,WAFF,kCAEgB,GAFhB;AAAA,qCAGEC,YAHF;AAAA,UAGEA,YAHF,mCAGiB,EAHjB;;AAMA,6BAA+B,iBAAKC,UAAL,gBAC7BD,YAD6B,EAE7BD,WAF6B,0CAG1BD,MAH0B,GAA/B;AAAA,UAAQd,OAAR,oBAAQA,OAAR;AAAA,UAAiBL,SAAjB,oBAAiBA,SAAjB;;AAKA,YAAKA,SAAL,GAAiBA,SAAjB;AACA,YAAKK,OAAL,GAAeA,OAAf;AACA,aAAO;AACLD,QAAAA,QAAQ,EAAEJ,SADL;AAELK,QAAAA,OAAO,EAAPA,OAFK;AAGLC,QAAAA,IAAI,EAAE;AAHD,OAAP;AAKD,K;;;;;;WAlGD,sBAAuE;AAAA,UAArDiB,MAAqD,uEAA5C,EAA4C;AAAA,UAAxCH,WAAwC,uEAA1B,GAA0B;AAAA,UAArBI,GAAqB,uEAAf,GAAe;AAAA,UAAVC,GAAU,uEAAJ,EAAI;AACrE,UAAMpB,OAAO,GAAG,EAAhB;AACA,UAAML,SAAS,GAAG,EAAlB;AACA,UAAM0B,UAAU,GAAG,KAAKA,UAAxB;AACA,UAAMC,WAAW,GACf,KAAKzB,aAAL,KAAuBb,kBAAkB,CAACc,EAA1C,GACI,CAAC,KAAKL,SADV,GAEI,KAAKA,SAHX;;AAIA,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqB,WAApB,EAAiCrB,CAAC,EAAlC,EAAsC;AACpC,YAAM6B,MAAM,GAAGC,IAAI,CAACC,MAAL,KAAgBH,WAA/B;AACA3B,QAAAA,SAAS,CAAC+B,IAAV,OAAA/B,SAAS,mCAASgC,MAAM,CAACJ,MAAD,CAAf,EAAT;AACD;;AACD,WAAK,IAAI7B,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAGqB,WAApB,EAAiCrB,EAAC,EAAlC,EAAsC;AACpCM,QAAAA,OAAO,CAAC0B,IAAR,CAAahC,EAAb;AACD;;AAED,eAASiC,MAAT,CAAgBC,CAAhB,EAA2B;AACzB,YAAMC,OAAO,GAAGX,MAAM,GAAGM,IAAI,CAACC,MAAL,EAAzB;AACA,YAAMK,OAAO,GAAGZ,MAAM,GAAGM,IAAI,CAACC,MAAL,EAAzB;AACA,YAAMM,CAAC,GAAG,CAACb,MAAD,GAAU,CAAV,GAAcW,OAAxB;AACA,YAAMG,CAAC,GAAG,CAACd,MAAD,GAAU,CAAV,GAAcY,OAAxB;;AACA,YAAIT,UAAU,CAACY,OAAX,KAAuBC,gBAAQ,UAAR,CAA3B,EAAgD;AAE9C,sBAAeb,UAAU,CAACc,aAAX,CAAyB,CAACJ,CAAC,GAAGZ,GAAL,EAAU,CAACa,CAAD,GAAKZ,GAAf,CAAzB,CAAf;AAAA;AAAA,cAAOgB,CAAP;AAAA,cAAUC,CAAV;;AAIA,iBAAO,CAACD,CAAD,EAAIC,CAAJ,EAAOT,CAAP,EAAU,CAAV,EAAa,CAAb,CAAP;AACD,SAPD,MAOO;AACL,iBAAO,CAACG,CAAC,GAAGZ,GAAL,EAAU,CAACa,CAAD,GAAKZ,GAAf,EAAoBQ,CAApB,EAAuB,CAAvB,EAA0B,CAA1B,CAAP;AACD;AACF;;AAED,aAAO;AAAE5B,QAAAA,OAAO,EAAPA,OAAF;AAAWL,QAAAA,SAAS,EAATA;AAAX,OAAP;AACD;;;WAkED,wBAAqC;AACnC,kBAII,KAAKT,KAAL,CAAWC,cAAX,EAJJ;AAAA,UACEmD,OADF,SACEA,OADF;AAAA,UAEEC,UAFF,SAEEA,UAFF;AAAA,oCAGEC,WAHF;AAAA,UAGEA,WAHF,kCAGgB,CAHhB;;AAKA,UAAI,KAAKD,UAAL,KAAoBA,UAAxB,EAAoC;AAAA;;AAClC,aAAKA,UAAL,GAAkBA,UAAlB;AACA,8BAAKE,OAAL,gEAAcC,OAAd;AACA,aAAKC,aAAL,CAAmBJ,UAAnB;AACD;;AACD,aAAO;AACLK,QAAAA,SAAS,EAAEN,OAAO,IAAI,CADjB;AAELO,QAAAA,SAAS,EAAEN,UAAU,GAAG,CAAH,GAAO,CAFvB;AAGLO,QAAAA,SAAS,EAAE,KAAKL,OAHX;AAILM,QAAAA,OAAO,EAAEP;AAJJ,OAAP;AAMD;;;WAED,uBAA2B;AAAA;;AACzBQ,MAAAA,oBAAoB,CAAC,KAAKrC,KAAN,CAApB;AACA,6BAAK8B,OAAL,kEAAcC,OAAd;AACD;;;WAED,sBAAoB;AAAA;;AAClB,kBAKI,KAAKxD,KAAL,CAAWC,cAAX,EALJ;AAAA,UACEoD,UADF,SACEA,UADF;AAAA,kCAEE9C,SAFF;AAAA,UAEEA,SAFF,gCAEc,OAFd;AAAA,qCAGEH,YAHF;AAAA,UAGEA,YAHF,mCAGiB,KAHjB;AAAA,sCAIEO,aAJF;AAAA,UAIEA,aAJF,oCAIkBb,kBAAkB,CAACiE,IAJrC;;AAMA,WAAKV,UAAL,GAAkBA,UAAlB;AACA,WAAK9C,SAAL,GAAiBA,SAAjB;AACA,WAAKH,YAAL,GAAoBA,YAApB;AACAO,MAAAA,aAAa,KAAK,IAAlB,GACK,KAAKA,aAAL,GAAqBb,kBAAkB,CAACc,EAD7C,GAEK,KAAKD,aAAL,GAAqBb,kBAAkB,CAACiE,IAF7C;AAIA,UAAQC,eAAR,GAA4B,KAAKC,eAAjC,CAAQD,eAAR;AACA,WAAKT,OAAL,GAAeS,eAAe,CAAC;AAC7B3B,QAAAA,MAAM,EAAE,CADqB;AAE7B6B,QAAAA,KAAK,EAAE;AAFsB,OAAD,CAA9B;AAKA,WAAKT,aAAL,CAAmBJ,UAAnB;AAEAc,MAAAA,UAAU,CAAC,YAAM;AACf,QAAA,MAAI,CAACxC,WAAL;AACD,OAFS,EAEP,GAFO,CAAV;AAIA,aAAO,CACL,KAAK3B,KAAL,CAAWoE,eAAX,CAA2B;AACzBC,QAAAA,UAAU,EAAE,iBADa;AAEzBC,QAAAA,YAAY,EAAEC,UAFW;AAGzBC,QAAAA,cAAc,EAAEC,UAHS;AAIzBvD,QAAAA,aAAa,EAAE,KAAKwD,0BAJK;AAKzBC,QAAAA,SAAS,EAAEC,WAAGC,MALW;AAMzBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SANkB;AAOzBC,QAAAA,KAAK,EAAE,KAAKC,QAAL;AAPkB,OAA3B,CADK,CAAP;AAWD;;;WAED,uBAAqB;AACnB,aAAO,KAAKC,UAAL,EAAP;AACD;;;WAED,uBAAqB7B,UAArB,EAA2D;AAAA;;AACzD,UAAQW,eAAR,GAA4B,KAAKC,eAAjC,CAAQD,eAAR;;AAEA,UAAIX,UAAJ,EAAgB;AACd,YAAM8B,GAAG,GAAG,IAAIC,KAAJ,EAAZ;AACAD,QAAAA,GAAG,CAACE,WAAJ,GAAkB,WAAlB;;AACAF,QAAAA,GAAG,CAACG,MAAJ,GAAa,YAAM;AACjB,UAAA,MAAI,CAAC/B,OAAL,GAAeS,eAAe,CAAC;AAC7BuB,YAAAA,IAAI,EAAEJ,GADuB;AAE7BjB,YAAAA,KAAK,EAAEiB,GAAG,CAACjB,KAFkB;AAG7B7B,YAAAA,MAAM,EAAE8C,GAAG,CAAC9C,MAHiB;AAI7BmD,YAAAA,KAAK,EAAEZ,WAAGa,aAJmB;AAK7BC,YAAAA,KAAK,EAAEd,WAAGa;AALmB,WAAD,CAA9B;;AAOA,UAAA,MAAI,CAACE,YAAL,CAAkBC,qBAAlB;;AACA,UAAA,MAAI,CAACD,YAAL,CAAkBnE,YAAlB;AACD,SAVD;;AAWA2D,QAAAA,GAAG,CAACU,GAAJ,GAAUxC,UAAV;AACD,OAfD,MAeO;AACL,aAAKE,OAAL,GAAeS,eAAe,CAAC;AAC7BE,UAAAA,KAAK,EAAE,CADsB;AAE7B7B,UAAAA,MAAM,EAAE;AAFqB,SAAD,CAA9B;AAID;AACF;;;WAED,2BAA4B;AAC1B,aAAO;AACLyD,QAAAA,UAAU,EAAE;AACV1C,UAAAA,OAAO,EAAE;AACP2C,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WAED,qCAAsC;AACpC,aAAO,EAAP;AACD;;;EAzNsCC,mB","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n ILayerConfig,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\n\nimport BaseModel from '../../core/BaseModel';\nimport { IGeometryLayerStyleOptions } from '../../core/interface';\nimport spriteFrag from '../shaders/sprite_frag.glsl';\nimport spriteVert from '../shaders/sprite_vert.glsl';\n\nenum SPRITE_ANIMATE_DIR {\n 'UP' = 'up',\n 'DOWN' = 'down',\n}\n\nexport default class SpriteModel extends BaseModel {\n protected texture: ITexture2D;\n protected mapTexture: string | undefined;\n protected positions: number[];\n protected indices: number[];\n protected timer: number;\n protected spriteTop: number;\n protected spriteUpdate: number;\n protected spriteAnimate: SPRITE_ANIMATE_DIR;\n\n public initSprite(radius = 10, spriteCount = 100, lng = 120, lat = 30) {\n const indices = [];\n const positions = [];\n const mapService = this.mapService;\n const heightLimit =\n this.spriteAnimate === SPRITE_ANIMATE_DIR.UP\n ? -this.spriteTop\n : this.spriteTop;\n for (let i = 0; i < spriteCount; i++) {\n const height = Math.random() * heightLimit;\n positions.push(...getPos(height));\n }\n for (let i = 0; i < spriteCount; i++) {\n indices.push(i);\n }\n\n function getPos(z: number) {\n const randomX = radius * Math.random();\n const randomY = radius * Math.random();\n const x = -radius / 2 + randomX;\n const y = -radius / 2 + randomY;\n if (mapService.version === Version['GAODE2.x']) {\n // @ts-ignore\n const [a, b] = mapService.lngLatToCoord([x + lng, -y + lat]) as [\n number,\n number,\n ];\n return [a, b, z, 0, 0];\n } else {\n return [x + lng, -y + lat, z, 0, 0];\n }\n }\n\n return { indices, positions };\n }\n\n public planeGeometryUpdateTriangulation = () => {\n const {\n spriteBottom = -100000,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n const updateZ = this.spriteUpdate;\n // const bottomZ = -100000;\n const bottomZ = spriteBottom;\n const topZ = this.spriteTop;\n\n for (let i = 0; i < this.positions.length; i += 5) {\n if (this.spriteAnimate === SPRITE_ANIMATE_DIR.UP) {\n this.positions[i + 2] += updateZ;\n if (this.positions[i + 2] > topZ) {\n this.positions[i + 2] = bottomZ;\n }\n } else {\n this.positions[i + 2] -= updateZ;\n if (this.positions[i + 2] < bottomZ) {\n this.positions[i + 2] = topZ;\n }\n }\n }\n\n return {\n vertices: this.positions,\n indices: this.indices,\n size: 5,\n };\n };\n\n public updateModel = () => {\n // @ts-ignore\n const attributes = this.layer.createAttrubutes({\n triangulation: this.planeGeometryUpdateTriangulation,\n });\n this.layer.models.map((m) => {\n m.updateAttributes(attributes);\n });\n this.layer.renderLayers();\n\n this.timer = requestAnimationFrame(this.updateModel);\n };\n\n public planeGeometryTriangulation = () => {\n const {\n center = [120, 30],\n spriteCount = 100,\n spriteRadius = 10,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n\n const { indices, positions } = this.initSprite(\n spriteRadius,\n spriteCount,\n ...center,\n );\n this.positions = positions;\n this.indices = indices;\n return {\n vertices: positions,\n indices,\n size: 5,\n };\n };\n\n public getUninforms(): IModelUniform {\n const {\n opacity,\n mapTexture,\n spriteScale = 1,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n if (this.mapTexture !== mapTexture) {\n this.mapTexture = mapTexture;\n this.texture?.destroy();\n this.updateTexture(mapTexture);\n }\n return {\n u_opacity: opacity || 1,\n u_mapFlag: mapTexture ? 1 : 0,\n u_texture: this.texture,\n u_Scale: spriteScale,\n };\n }\n\n public clearModels(): void {\n cancelAnimationFrame(this.timer);\n this.texture?.destroy();\n }\n\n public initModels() {\n const {\n mapTexture,\n spriteTop = 5000000,\n spriteUpdate = 10000,\n spriteAnimate = SPRITE_ANIMATE_DIR.DOWN,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n this.mapTexture = mapTexture;\n this.spriteTop = spriteTop;\n this.spriteUpdate = spriteUpdate;\n spriteAnimate === 'up'\n ? (this.spriteAnimate = SPRITE_ANIMATE_DIR.UP)\n : (this.spriteAnimate = SPRITE_ANIMATE_DIR.DOWN);\n\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n this.updateTexture(mapTexture);\n\n setTimeout(() => {\n this.updateModel();\n }, 100);\n\n return [\n this.layer.buildLayerModel({\n moduleName: 'geometry_sprite',\n vertexShader: spriteVert,\n fragmentShader: spriteFrag,\n triangulation: this.planeGeometryTriangulation,\n primitive: gl.POINTS,\n depth: { enable: false },\n blend: this.getBlend(),\n }),\n ];\n }\n\n public buildModels() {\n return this.initModels();\n }\n\n public updateTexture(mapTexture: string | undefined): void {\n const { createTexture2D } = this.rendererService;\n\n if (mapTexture) {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => {\n this.texture = createTexture2D({\n data: img,\n width: img.width,\n height: img.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n img.src = mapTexture;\n } else {\n this.texture = createTexture2D({\n width: 0,\n height: 0,\n });\n }\n }\n\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n\n protected registerBuiltinAttributes() {\n return '';\n }\n}\n"],"file":"sprite.js"}
@@ -545,10 +545,6 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
545
545
  this.scaleOptions[field] = cfg;
546
546
  }
547
547
 
548
- if (this.tileLayer) {
549
- this.tileLayer.scale(field, cfg);
550
- }
551
-
552
548
  return this;
553
549
  }
554
550
  }, {