@antv/l7-layers 2.9.3 → 2.9.6
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/es/Geometry/models/sprite.js +29 -25
- package/es/Geometry/models/sprite.js.map +1 -1
- package/es/core/BaseLayer.js +0 -4
- package/es/core/BaseLayer.js.map +1 -1
- package/es/core/interface.d.ts +1 -0
- package/es/core/interface.js.map +1 -1
- package/es/heatmap/models/heatmap.js +1 -1
- package/es/tile/tileFactory/base.d.ts +1 -0
- package/es/tile/tileFactory/base.js +23 -1
- package/es/tile/tileFactory/base.js.map +1 -1
- package/es/tile/tileFactory/rasterData.js +13 -4
- package/es/tile/tileFactory/rasterData.js.map +1 -1
- package/es/tile/tileLayer/baseTileLayer.d.ts +2 -7
- package/es/tile/tileLayer/baseTileLayer.js +7 -13
- package/es/tile/tileLayer/baseTileLayer.js.map +1 -1
- package/es/tile/tmsTileLayer.js +1 -1
- package/es/tile/tmsTileLayer.js.map +1 -1
- package/lib/Geometry/models/sprite.js +29 -25
- package/lib/Geometry/models/sprite.js.map +1 -1
- package/lib/core/BaseLayer.js +0 -4
- package/lib/core/BaseLayer.js.map +1 -1
- package/lib/core/interface.js.map +1 -1
- package/lib/heatmap/models/heatmap.js +1 -1
- package/lib/tile/tileFactory/base.js +23 -1
- package/lib/tile/tileFactory/base.js.map +1 -1
- package/lib/tile/tileFactory/rasterData.js +13 -4
- package/lib/tile/tileFactory/rasterData.js.map +1 -1
- package/lib/tile/tileLayer/baseTileLayer.js +6 -13
- package/lib/tile/tileLayer/baseTileLayer.js.map +1 -1
- package/lib/tile/tmsTileLayer.js +1 -1
- package/lib/tile/tmsTileLayer.js.map +1 -1
- package/package.json +5 -5
|
@@ -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);
|
|
@@ -320,6 +321,7 @@ var TileFactory = function () {
|
|
|
320
321
|
key: "getCombineFeature",
|
|
321
322
|
value: function getCombineFeature(features) {
|
|
322
323
|
var p = null;
|
|
324
|
+
var properties = features[0];
|
|
323
325
|
features.map(function (feature) {
|
|
324
326
|
var polygon = turf.polygon(feature.coordinates);
|
|
325
327
|
|
|
@@ -331,6 +333,11 @@ var TileFactory = function () {
|
|
|
331
333
|
p = union(p, polygon);
|
|
332
334
|
}
|
|
333
335
|
});
|
|
336
|
+
|
|
337
|
+
if (properties) {
|
|
338
|
+
p.properties = _objectSpread({}, properties);
|
|
339
|
+
}
|
|
340
|
+
|
|
334
341
|
return p;
|
|
335
342
|
}
|
|
336
343
|
}, {
|
|
@@ -341,11 +348,26 @@ var TileFactory = function () {
|
|
|
341
348
|
} else {
|
|
342
349
|
var featureId = e.featureId;
|
|
343
350
|
var features = this.getAllFeatures(featureId);
|
|
344
|
-
|
|
351
|
+
|
|
352
|
+
try {
|
|
353
|
+
e.feature = this.getCombineFeature(features);
|
|
354
|
+
} catch (err) {
|
|
355
|
+
console.warn('Combine Featuer Err! Return First Feature!');
|
|
356
|
+
e.feature = features[0];
|
|
357
|
+
}
|
|
345
358
|
}
|
|
346
359
|
|
|
347
360
|
this.parentLayer.emit(eventName, e);
|
|
348
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
|
+
}
|
|
349
371
|
}, {
|
|
350
372
|
key: "getAllFeatures",
|
|
351
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","feature","polygon","coordinates","eventName","x","y","getAllFeatures","getCombineFeature","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 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 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 e.feature = this.getCombineFeature(features);\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"}
|
|
@@ -41,15 +41,24 @@ var RasterTiffTile = function (_TileFactory) {
|
|
|
41
41
|
clampLow = initOptions.clampLow,
|
|
42
42
|
rampColors = initOptions.rampColors,
|
|
43
43
|
mask = initOptions.mask;
|
|
44
|
-
var
|
|
44
|
+
var rasterdata = tile.data;
|
|
45
|
+
|
|
46
|
+
if (!rasterdata.data) {
|
|
47
|
+
console.warn('raster data not exist!');
|
|
48
|
+
return {
|
|
49
|
+
layers: [],
|
|
50
|
+
layerIDList: []
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
45
54
|
var layer = new RasterDataLayer({
|
|
46
55
|
visible: tile.isVisible,
|
|
47
56
|
mask: mask
|
|
48
|
-
}).source(
|
|
57
|
+
}).source(rasterdata.data, {
|
|
49
58
|
parser: {
|
|
50
59
|
type: 'raster',
|
|
51
|
-
width:
|
|
52
|
-
height:
|
|
60
|
+
width: rasterdata.width,
|
|
61
|
+
height: rasterdata.height,
|
|
53
62
|
extent: tile.bboxPolygon.bbox
|
|
54
63
|
}
|
|
55
64
|
}).style({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tile/tileFactory/rasterData.ts"],"names":["registerLayers","TileFactory","RasterDataLayer","RasterTiffTile","option","parentLayer","parent","tile","initOptions","opacity","domain","clampHigh","clampLow","rampColors","mask","
|
|
1
|
+
{"version":3,"sources":["../../../src/tile/tileFactory/rasterData.ts"],"names":["registerLayers","TileFactory","RasterDataLayer","RasterTiffTile","option","parentLayer","parent","tile","initOptions","opacity","domain","clampHigh","clampLow","rampColors","mask","rasterdata","data","console","warn","layers","layerIDList","layer","visible","isVisible","source","parser","type","width","height","extent","bboxPolygon","bbox","style","emitEvent","id"],"mappings":";;;;;;;;;;;;AAGA,SAASA,cAAT,QAA+B,UAA/B;AACA,OAAOC,WAAP,MAAwB,QAAxB;AACA,OAAOC,eAAP,MAA4B,mBAA5B;;IAEqBC,c;;;;;AAGnB,0BAAYC,MAAZ,EAAyC;AAAA;;AAAA;;AACvC,8BAAMA,MAAN;;AADuC;;AAEvC,UAAKC,WAAL,GAAmBD,MAAM,CAACE,MAA1B;AAFuC;AAGxC;;;;WAED,oBAAkBC,IAAlB,EAA8BC,WAA9B,EAAiE;AAC/D,UACEC,OADF,GAOID,WAPJ,CACEC,OADF;AAAA,UAEEC,MAFF,GAOIF,WAPJ,CAEEE,MAFF;AAAA,UAGEC,SAHF,GAOIH,WAPJ,CAGEG,SAHF;AAAA,UAIEC,QAJF,GAOIJ,WAPJ,CAIEI,QAJF;AAAA,UAKEC,UALF,GAOIL,WAPJ,CAKEK,UALF;AAAA,UAMEC,IANF,GAOIN,WAPJ,CAMEM,IANF;AASA,UAAMC,UAAU,GAAGR,IAAI,CAACS,IAAxB;;AACA,UAAI,CAACD,UAAU,CAACC,IAAhB,EAAsB;AACpBC,QAAAA,OAAO,CAACC,IAAR,CAAa,wBAAb;AACA,eAAO;AACLC,UAAAA,MAAM,EAAE,EADH;AAELC,UAAAA,WAAW,EAAE;AAFR,SAAP;AAID;;AACD,UAAMC,KAAK,GAAG,IAAInB,eAAJ,CAAoB;AAChCoB,QAAAA,OAAO,EAAEf,IAAI,CAACgB,SADkB;AAEhCT,QAAAA,IAAI,EAAJA;AAFgC,OAApB,EAIXU,MAJW,CAIJT,UAAU,CAACC,IAJP,EAIa;AACvBS,QAAAA,MAAM,EAAE;AACNC,UAAAA,IAAI,EAAE,QADA;AAENC,UAAAA,KAAK,EAAEZ,UAAU,CAACY,KAFZ;AAGNC,UAAAA,MAAM,EAAEb,UAAU,CAACa,MAHb;AAINC,UAAAA,MAAM,EAAEtB,IAAI,CAACuB,WAAL,CAAiBC;AAJnB;AADe,OAJb,EAYXC,KAZW,CAYL;AACLvB,QAAAA,OAAO,EAAPA,OADK;AAELC,QAAAA,MAAM,EAANA,MAFK;AAGLC,QAAAA,SAAS,EAATA,SAHK;AAILC,QAAAA,QAAQ,EAARA,QAJK;AAKLC,QAAAA,UAAU,EAAVA;AALK,OAZK,CAAd;AAmBA,WAAKoB,SAAL,CAAe,CAACZ,KAAD,CAAf,EAAwB,KAAxB;AAEArB,MAAAA,cAAc,CAAC,KAAKK,WAAN,EAAmB,CAACgB,KAAD,CAAnB,CAAd;AAEA,aAAO;AACLF,QAAAA,MAAM,EAAE,CAACE,KAAD,CADH;AAELD,QAAAA,WAAW,EAAE,CAACC,KAAK,CAACa,EAAP;AAFR,OAAP;AAID;;;;EArDyCjC,W;;SAAvBE,c","sourcesContent":["import { ILayer, ISubLayerInitOptions } from '@antv/l7-core';\nimport { Tile } from '@antv/l7-utils';\nimport { ITileFactoryOptions } from '../interface';\nimport { registerLayers } from '../utils';\nimport TileFactory from './base';\nimport RasterDataLayer from './rasterDataLayer';\n\nexport default class RasterTiffTile extends TileFactory {\n public parentLayer: ILayer;\n\n constructor(option: ITileFactoryOptions) {\n super(option);\n this.parentLayer = option.parent;\n }\n\n public createTile(tile: Tile, initOptions: ISubLayerInitOptions) {\n const {\n opacity,\n domain,\n clampHigh,\n clampLow,\n rampColors,\n mask,\n } = initOptions;\n\n const rasterdata = tile.data;\n if (!rasterdata.data) {\n console.warn('raster data not exist!');\n return {\n layers: [],\n layerIDList: [],\n };\n }\n const layer = new RasterDataLayer({\n visible: tile.isVisible,\n mask,\n })\n .source(rasterdata.data, {\n parser: {\n type: 'raster',\n width: rasterdata.width,\n height: rasterdata.height,\n extent: tile.bboxPolygon.bbox,\n },\n })\n .style({\n opacity,\n domain,\n clampHigh,\n clampLow,\n rampColors,\n });\n this.emitEvent([layer], false);\n\n registerLayers(this.parentLayer, [layer]);\n\n return {\n layers: [layer],\n layerIDList: [layer.id],\n };\n }\n}\n"],"file":"rasterData.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IInteractionTarget, ILayer,
|
|
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.
|
|
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
|
|
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":";;;;;;;;;AAYA,SAASA,kBAAT,QAAyD,gBAAzD;AACA,SAASC,gBAAT,QAAiC,6BAAjC;;IAEqBC,a;AA6BnB,+BAMsB;AAAA;;AAAA,QALpBC,MAKoB,QALpBA,MAKoB;AAAA,QAJpBC,eAIoB,QAJpBA,eAIoB;AAAA,QAHpBC,UAGoB,QAHpBA,UAGoB;AAAA,QAFpBC,YAEoB,QAFpBA,YAEoB;AAAA,QADpBC,cACoB,QADpBA,cACoB;;AAAA;;AAAA,kCA/BA,UA+BA;;AAAA;;AAAA;;AAAA,2CA3BU,KA2BV;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA,wCAXlB;AACFC,MAAAA,MAAM,EAAE,IADN;AAEFC,MAAAA,MAAM,EAAE;AAFN,KAWkB;;AACpB,QAAMC,YAAY,GAAGP,MAAM,CAACQ,SAAP,EAArB;;AACA,gBACE,CAAAD,YAAY,SAAZ,IAAAA,YAAY,WAAZ,kCAAAA,YAAY,CAAEE,IAAd,0EAAoBC,cAApB,KAAsC,EADxC;AAAA,QAAQC,WAAR,SAAQA,WAAR;AAAA,QAAqBC,MAArB,SAAqBA,MAArB;AAAA,QAA6BC,SAA7B,SAA6BA,SAA7B;;AAEA,SAAKF,WAAL,GAAmBA,WAAnB;AACA,SAAKX,MAAL,GAAcA,MAAd;AACA,SAAKE,UAAL,GAAkBA,UAAlB;AACA,SAAKC,YAAL,GAAoBA,YAApB;AAEA,SAAKW,gBAAL,GAAwB,IAAIhB,gBAAJ,CACtBE,MADsB,EAEtBE,UAFsB,EAGtBD,eAHsB,EAItBG,cAJsB,EAKtBD,YALsB,CAAxB;AAQA,SAAKY,kBAAL;AACA,SAAKC,iBAAL;AACA,SAAKC,gBAAL;AACD;;;;SAtDD,eAAsB;AACpB,aAAO,KAAKH,gBAAL,CAAsBI,QAA7B;AACD;;;WA2DD,eAAaC,KAAb,EAAqDC,GAArD,EAAmE;AACjE,WAAKF,QAAL,CAAcG,GAAd,CAAkB,UAACC,KAAD,EAAW;AAC3BA,QAAAA,KAAK,CAACC,KAAN,CAAYJ,KAAZ,EAAmBC,GAAnB;AACD,OAFD;AAGD;;;WAKD,kBAAgB;AACd,UAAI,KAAKN,gBAAT,EAA2B;AACzB,aAAKA,gBAAL,CAAsBU,MAAtB;AACD;AACF;;;WAED,mBAAiBC,IAAjB,EAA+B;AAC7B,UAAIA,IAAI,KAAK,WAAb,EAA0B;AACxB,aAAKX,gBAAL,CAAsBY,eAAtB,CAAsCC,SAAtC;AACD;AACF;;;WAKD,0BAAwB;AAAA;;AACtB,WAAKT,QAAL,CACGU,MADH,CACU,UAACN,KAAD;AAAA,eAAWA,KAAK,CAACO,MAAN,IAAgBP,KAAK,CAACQ,SAAN,EAA3B;AAAA,OADV,EAEGF,MAFH,CAEU,UAACN,KAAD;AAAA,eAAWA,KAAK,CAACS,oBAAN,OAAiC,IAA5C;AAAA,OAFV,EAGGV,GAHH,CAGO,UAACC,KAAD,EAAW;AACd,QAAA,KAAI,CAACU,aAAL,CAAmBV,KAAnB,EAA0B,IAAIW,UAAJ,CAAe,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAf,CAA1B;;AACAX,QAAAA,KAAK,CAACY,oBAAN,CAA2B,IAA3B;AACD,OANH;AAOD;;;WAOD,oBAAkBC,MAAlB,EAA8C;AAC5C,aAAO,KAAKrB,gBAAL,CAAsBsB,UAAtB,CAAiCD,MAAjC,CAAP;AACD;;;WAED,oBAAkBE,IAAlB,EAA8B,CAE7B;;;WAED,mBAAiBC,KAAjB,EAA+B;AAC7BC,MAAAA,OAAO,CAACC,IAAR,CAAa,QAAb,EAAuBF,KAAvB;AACD;;;WAED,oBAAkBD,IAAlB,EAA8B;AAC5B,WAAKvB,gBAAL,CAAsB2B,YAAtB,CAAmCJ,IAAI,CAACK,WAAxC;AACD;;;WAED,sBAAoB;AAAA;;AAElB,UAAI,CAAC,KAAKC,cAAV,EAA0B;AACxB;AACD;;AAED,WAAKA,cAAL,CAAoBC,KAApB,CACGhB,MADH,CACU,UAACS,IAAD;AAAA,eAAUA,IAAI,CAACQ,QAAf;AAAA,OADV,EAEGxB,GAFH,CAEO,UAACgB,IAAD,EAAU;AACb,YAAIA,IAAI,CAACK,WAAL,CAAiBI,MAAjB,KAA4B,CAAhC,EAAmC;AACjC,sCAAgC,MAAI,CAAChC,gBAAL,CAAsBiC,UAAtB,CAC9BV,IAD8B,CAAhC;AAAA,cAAQW,MAAR,yBAAQA,MAAR;AAAA,cAAgBN,WAAhB,yBAAgBA,WAAhB;;AAGAL,UAAAA,IAAI,CAACK,WAAL,GAAmBA,WAAnB;;AACA,UAAA,MAAI,CAAC5B,gBAAL,CAAsBmC,SAAtB,CAAgCD,MAAhC;AACD,SAND,MAMO;AACL,cAAI,CAACX,IAAI,CAACa,gBAAV,EAA4B;AAC1B;AACD;;AACD,cAAMF,OAAM,GAAG,MAAI,CAAClC,gBAAL,CAAsBqC,SAAtB,CAAgCd,IAAI,CAACK,WAArC,CAAf;;AACA,UAAA,MAAI,CAAC5B,gBAAL,CAAsBsC,kBAAtB,CACEJ,OADF,EAEE,SAFF,EAGEX,IAAI,CAACP,SAHP;AAKD;AACF,OApBH;;AAsBA,UAAI,KAAKa,cAAL,CAAoBE,QAAxB,EAAkC;AAEhC,aAAK7C,MAAL,CAAYqD,IAAZ,CAAiB,cAAjB,EAAiC,KAAKV,cAAL,CAAoBW,YAArD;AACD;AACF;;;WAED,sBAAuBN,MAAvB,EAAyC;AAAA;;AACvC,UAAI,KAAKO,UAAL,CAAgBlD,MAApB,EAA4B;AAC1B,YAAMmD,UAAU,GAAG3D,kBAAkB,CAAC,KAAK0D,UAAL,CAAgBlD,MAAjB,CAArC;AACA2C,QAAAA,MAAM,CAAC3B,GAAP,CAAW,UAACoC,KAAD,EAAW;AACpB,UAAA,MAAI,CAACzB,aAAL,CAAmByB,KAAnB,EAA0B,MAAI,CAACF,UAAL,CAAgBlD,MAA1C;;AACAoD,UAAAA,KAAK,CAACvB,oBAAN,CAA2BsB,UAA3B;AACD,SAHD;AAID;;AAED,UAAI,KAAKD,UAAL,CAAgBjD,MAApB,EAA4B;AAC1B,YAAMkD,WAAU,GAAG3D,kBAAkB,CAAC,KAAK0D,UAAL,CAAgBjD,MAAjB,CAArC;;AACA0C,QAAAA,MAAM,CACHpB,MADH,CACU,UAAC6B,KAAD;AAAA,iBAAWA,KAAK,CAAC5B,MAAN,IAAgB4B,KAAK,CAAC3B,SAAN,EAA3B;AAAA,SADV,EAEGT,GAFH,CAEO,UAACoC,KAAD,EAAW;AACdA,UAAAA,KAAK,CAACC,KAAN,CAAYC,eAAZ,CAA4BC,IAA5B,CAAiC,MAAI,CAACL,UAAL,CAAgBjD,MAAjD;AACAmD,UAAAA,KAAK,CAACI,gBAAN,CAAuBL,WAAvB;AACD,SALH;AAMD;AACF;;;WAED,4BAA2B;AAAA;;AACzB,WAAK1C,gBAAL,CAAsBY,eAAtB,CAAsCoC,EAAtC,CAAyC,MAAzC,EAAiD,UAACC,CAAD,EAAO;AAEtD,6CAAkBA,CAAC,CAACC,YAApB;AAAA,YAAOC,CAAP;AAAA,YAAUC,CAAV;AAAA,YAAaC,CAAb;;AAEA,YAAIJ,CAAC,CAACtC,IAAF,KAAW,OAAf,EAAwB;AACtB,cAAM2C,UAAU,GAAG,MAAI,CAAClD,QAAL,CAChBU,MADgB,CAEf,UAACN,KAAD;AAAA,mBAAWA,KAAK,CAACO,MAAN,IAAgBP,KAAK,CAACQ,SAAN,EAAhB,IAAqCR,KAAK,CAAC+C,QAAtD;AAAA,WAFe,EAIhBzC,MAJgB,CAIT,UAACN,KAAD;AAAA,mBAAWA,KAAK,KAAKyC,CAAC,CAACN,KAAvB;AAAA,WAJS,CAAnB;;AAKA,UAAA,MAAI,CAACa,SAAL,CAAeF,UAAf,EAA2B,CAACH,CAAD,EAAIC,CAAJ,EAAOC,CAAP,CAA3B;AACD,SAPD,MAOO;AACL,UAAA,MAAI,CAACI,YAAL,CAAkB,CAACN,CAAD,EAAIC,CAAJ,EAAOC,CAAP,CAAlB;AACD;AACF,OAdD;AAgBA,WAAKrD,gBAAL,CAAsBY,eAAtB,CAAsCoC,EAAtC,CAAyC,QAAzC,EAAmD,YAAM;AACvD,QAAA,MAAI,CAACP,UAAL,CAAgBjD,MAAhB,GAAyB,IAAzB;AACD,OAFD;AAGD;;;WAED,sBAAqB0D,YAArB,EAAwC;AACtC,UAAMQ,MAAM,GAAG3E,kBAAkB,CAACmE,YAAD,CAAjC;AACA,WAAKT,UAAL,CAAgBjD,MAAhB,GAAyB0D,YAAzB;AACA,WAAK9C,QAAL,CACGU,MADH,CACU,UAACN,KAAD;AAAA,eAAWA,KAAK,CAACO,MAAN,IAAgBP,KAAK,CAACQ,SAAN,EAAhB,IAAqCR,KAAK,CAAC+C,QAAtD;AAAA,OADV,EAIGzC,MAJH,CAIU,UAACN,KAAD;AAAA,eAAWA,KAAK,CAACmD,SAAN,OAAsBD,MAAjC;AAAA,OAJV,EAKGnD,GALH,CAKO,UAACC,KAAD,EAAW;AAEdA,QAAAA,KAAK,CAACoD,SAAN,CAAgBF,MAAhB;AACAlD,QAAAA,KAAK,CAACoC,KAAN,CAAYC,eAAZ,CAA4BC,IAA5B,CAAiCI,YAAjC;AACD,OATH;AAUD;;;WAED,mBAAkBhB,MAAlB,EAAoCgB,YAApC,EAAuD;AAAA;;AACrD,UAAMR,UAAU,GAAG3D,kBAAkB,CAACmE,YAAD,CAArC;AACAhB,MAAAA,MAAM,CAAC3B,GAAP,CAAW,UAACoC,KAAD,EAAW;AACpB,YACEA,KAAK,CAAC1B,oBAAN,OAAiC,IAAjC,IACAyB,UAAU,KAAKC,KAAK,CAAC1B,oBAAN,EAFjB,EAGE;AACA,UAAA,MAAI,CAACC,aAAL,CAAmByB,KAAnB,EAA0BO,YAA1B;;AACAP,UAAAA,KAAK,CAACvB,oBAAN,CAA2BsB,UAA3B;AACA,UAAA,MAAI,CAACD,UAAL,CAAgBlD,MAAhB,GAAyB2D,YAAzB;AACD,SAPD,MAOO;AACL,UAAA,MAAI,CAAChC,aAAL,CAAmByB,KAAnB,EAA0B,IAAIxB,UAAJ,CAAe,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAf,CAA1B;;AACAwB,UAAAA,KAAK,CAACvB,oBAAN,CAA2B,IAA3B;AACA,UAAA,MAAI,CAACqB,UAAL,CAAgBlD,MAAhB,GAAyB,IAAzB;AACD;AACF,OAbD;AAeA,UAAMsE,UAAU,GAAG,KAAKxE,YAAL,CAAkByE,aAAlB,EAAnB;AACAD,MAAAA,UAAU,CACP/C,MADH,CAEI,UAAC6B,KAAD;AAAA,eACEA,KAAK,CAAC5B,MAAN,IACA,CAAC4B,KAAK,CAACY,QADP,IAEAZ,KAAK,CAAC3B,SAAN,EAFA,IAGA2B,KAAK,CAACoB,QAAN,CAAe,OAAf,CAJF;AAAA,OAFJ,EAQGjD,MARH,CAQU,UAAC6B,KAAD;AAAA,eAAWA,KAAK,CAAC1B,oBAAN,OAAiC,IAA5C;AAAA,OARV,EASGV,GATH,CASO,UAACoC,KAAD,EAAW;AACd,QAAA,MAAI,CAACzB,aAAL,CAAmByB,KAAnB,EAA0B,IAAIxB,UAAJ,CAAe,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAf,CAA1B;;AACAwB,QAAAA,KAAK,CAACvB,oBAAN,CAA2B,IAA3B;AACD,OAZH;AAaD;;;WAED,uBAAsBuB,KAAtB,EAAqCO,YAArC,EAA2E;AAEzE,yCAAkBA,YAAlB;AAAA,UAAOC,CAAP;AAAA,UAAUC,CAAV;AAAA,UAAaC,CAAb;;AACAV,MAAAA,KAAK,CAACC,KAAN,CAAYoB,YAAZ,CAAyBlB,IAAzB,CAA8B,CAACK,CAAD,EAAIC,CAAJ,EAAOC,CAAP,CAA9B;AACD;;;WAED,6BAA4B;AAAA;;AAkB1B,WAAKnE,MAAL,CAAY8D,EAAZ,CAAe,eAAf,EAAgC,UAACC,CAAD,EAAO;AACrC,QAAA,MAAI,CAAC/D,MAAL,CAAYqD,IAAZ,CAAiB,OAAjB,oBAA+BU,CAA/B;AACD,OAFD;AAGA,WAAK/D,MAAL,CAAY8D,EAAZ,CAAe,mBAAf,EAAoC,UAACC,CAAD;AAAA,eAClC,MAAI,CAAC/D,MAAL,CAAYqD,IAAZ,CAAiB,WAAjB,oBAAmCU,CAAnC,EADkC;AAAA,OAApC;AAGA,WAAK/D,MAAL,CAAY8D,EAAZ,CAAe,iBAAf,EAAkC,UAACC,CAAD;AAAA,eAChC,MAAI,CAAC/D,MAAL,CAAYqD,IAAZ,CAAiB,SAAjB,oBAAiCU,CAAjC,EADgC;AAAA,OAAlC;AAGA,WAAK/D,MAAL,CAAY8D,EAAZ,CAAe,oBAAf,EAAqC,UAACC,CAAD;AAAA,eACnC,MAAI,CAAC/D,MAAL,CAAYqD,IAAZ,CAAiB,YAAjB,oBAAoCU,CAApC,EADmC;AAAA,OAArC;AAGA,WAAK/D,MAAL,CAAY8D,EAAZ,CAAe,kBAAf,EAAmC,UAACC,CAAD;AAAA,eACjC,MAAI,CAAC/D,MAAL,CAAYqD,IAAZ,CAAiB,UAAjB,oBAAkCU,CAAlC,EADiC;AAAA,OAAnC;AAGA,WAAK/D,MAAL,CAAY8D,EAAZ,CAAe,mBAAf,EAAoC,UAACC,CAAD;AAAA,eAClC,MAAI,CAAC/D,MAAL,CAAYqD,IAAZ,CAAiB,WAAjB,oBAAmCU,CAAnC,EADkC;AAAA,OAApC;AAGA,WAAK/D,MAAL,CAAY8D,EAAZ,CAAe,qBAAf,EAAsC,UAACC,CAAD;AAAA,eACpC,MAAI,CAAC/D,MAAL,CAAYqD,IAAZ,CAAiB,aAAjB,oBAAqCU,CAArC,EADoC;AAAA,OAAtC;AAKA,WAAK/D,MAAL,CAAY8D,EAAZ,CAAe,iBAAf,EAAkC,UAACC,CAAD;AAAA,eAChC,MAAI,CAAC/D,MAAL,CAAYqD,IAAZ,CAAiB,SAAjB,oBAAiCU,CAAjC,EADgC;AAAA,OAAlC;AAGA,WAAK/D,MAAL,CAAY8D,EAAZ,CAAe,qBAAf,EAAsC,UAACC,CAAD;AAAA,eACpC,MAAI,CAAC/D,MAAL,CAAYqD,IAAZ,CAAiB,aAAjB,oBAAqCU,CAArC,EADoC;AAAA,OAAtC;AAGA,WAAK/D,MAAL,CAAY8D,EAAZ,CAAe,mBAAf,EAAoC,UAACC,CAAD;AAAA,eAClC,MAAI,CAAC/D,MAAL,CAAYqD,IAAZ,CAAiB,WAAjB,oBAAmCU,CAAnC,EADkC;AAAA,OAApC;AAGA,WAAK/D,MAAL,CAAY8D,EAAZ,CAAe,qBAAf,EAAsC,UAACC,CAAD;AAAA,eACpC,MAAI,CAAC/D,MAAL,CAAYqD,IAAZ,CAAiB,aAAjB,oBAAqCU,CAArC,EADoC;AAAA,OAAtC;AAGA,WAAK/D,MAAL,CAAY8D,EAAZ,CAAe,uBAAf,EAAwC,UAACC,CAAD;AAAA,eACtC,MAAI,CAAC/D,MAAL,CAAYqD,IAAZ,CAAiB,eAAjB,oBAAuCU,CAAvC,EADsC;AAAA,OAAxC;AAGD;;;WAED,8BAA6B;AAAA;;AAC3B,UAAMgB,MAAe,GAAG,KAAK/E,MAAL,CAAYQ,SAAZ,EAAxB;AACA,WAAKmC,cAAL,GAAsBoC,MAAM,CAACC,OAA7B;;AAEA,UAAI,CAAC,KAAKC,aAAV,EAAyB;AACvB,aAAKC,gBAAL;AACA,aAAKD,aAAL,GAAqB,IAArB;AACD;;AAED,iCAA+B,KAAKE,cAAL,EAA/B;AAAA,UAAQC,YAAR,wBAAQA,YAAR;AAAA,UAAsBC,IAAtB,wBAAsBA,IAAtB;;AACA,mCAAK1C,cAAL,8EAAqB2C,MAArB,CAA4BD,IAA5B,EAAkCD,YAAlC;AACD;;;WAED,4BAA2B;AAAA;;AACzB,UAAI,CAAC,KAAKzC,cAAV,EAA0B;AACxB;AACD;;AAED,WAAKA,cAAL,CAAoBmB,EAApB,CAAuB,aAAvB,EAAsC,UAACzB,IAAD,EAAgB,CAErD,CAFD;AAKA,WAAKM,cAAL,CAAoBmB,EAApB,CAAuB,aAAvB,EAAsC,UAACzB,IAAD,EAAgB;AAEpD,QAAA,MAAI,CAACkD,UAAL,CAAgBlD,IAAhB;AACD,OAHD;AAMA,WAAKM,cAAL,CAAoBmB,EAApB,CAAuB,YAAvB,EAAqC,UAACxB,KAAD,EAAQD,IAAR,EAAuB;AAE1D,QAAA,MAAI,CAACmD,SAAL,CAAelD,KAAf;AACD,OAHD;AAMA,WAAKK,cAAL,CAAoBmB,EAApB,CAAuB,aAAvB,EAAsC,YAAM;AAC1C,QAAA,MAAI,CAAC2B,UAAL;AACD,OAFD;AAKA,WAAKvF,UAAL,CAAgB4D,EAAhB,CAAmB,WAAnB,EAAgC,UAACC,CAAD,EAAO;AACrC,oCAA+B,MAAI,CAACoB,cAAL,EAA/B;AAAA,YAAQC,YAAR,yBAAQA,YAAR;AAAA,YAAsBC,IAAtB,yBAAsBA,IAAtB;;AAEA,YAAI,MAAI,CAACnF,UAAL,CAAgBwF,OAAhB,KAA4B,UAAhC,EAA4C;AAC1C,sCAAoB,MAAI,CAAC1F,MAAL,CAAY2F,cAAZ,EAApB;AAAA,cAAQC,OAAR,yBAAQA,OAAR;;AACA,cAAIP,IAAI,GAAG,CAAP,IAAYO,OAAhB,EAAyB;AACvB,YAAA,MAAI,CAAC5F,MAAL,CAAY6F,iBAAZ,CAA8B;AAAED,cAAAA,OAAO,EAAE;AAAX,aAA9B;;AACA,YAAA,MAAI,CAACzF,YAAL,CAAkB2F,qBAAlB;AACD,WAHD,MAGO,IAAIT,IAAI,IAAI,CAAR,IAAa,CAACO,OAAlB,EAA2B;AAChC,YAAA,MAAI,CAAC5F,MAAL,CAAY6F,iBAAZ,CAA8B;AAAED,cAAAA,OAAO,EAAE;AAAX,aAA9B;;AACA,YAAA,MAAI,CAACzF,YAAL,CAAkB2F,qBAAlB;AACD;AACF;;AAED,YACE,MAAI,CAACC,cAAL,IACA,MAAI,CAACA,cAAL,CAAoBV,IAApB,KAA6BA,IAD7B,IAEA,MAAI,CAACU,cAAL,CAAoBX,YAApB,CAAiCY,QAAjC,OAAgDZ,YAAY,CAACY,QAAb,EAHlD,EAIE;AACA;AACD;;AACD,QAAA,MAAI,CAACD,cAAL,GAAsB;AAAEV,UAAAA,IAAI,EAAJA,IAAF;AAAQD,UAAAA,YAAY,EAAZA;AAAR,SAAtB;;AAEA,YAAI,MAAI,CAACa,KAAT,EAAgB;AACdC,UAAAA,YAAY,CAAC,MAAI,CAACD,KAAN,CAAZ;AACA,UAAA,MAAI,CAACA,KAAL,GAAa,IAAb;AACD;;AAED,QAAA,MAAI,CAACA,KAAL,GAAaE,UAAU,CAAC,YAAM;AAAA;;AAC5B,mCAAA,MAAI,CAACxD,cAAL,gFAAqB2C,MAArB,CAA4BD,IAA5B,EAAkCD,YAAlC;AACD,SAFsB,EAEpB,GAFoB,CAAvB;AAGD,OA/BD;AAgCD;;;WAED,0BAAyB;AACvB,UAAMgB,MAAM,GAAG,KAAKlG,UAAL,CAAgBmG,SAAhB,EAAf;AACA,UAAMjB,YAA8C,GAAG,CACrDgB,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CADqD,EAErDA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAFqD,EAGrDA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAHqD,EAIrDA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAJqD,CAAvD;AAMA,UAAMf,IAAI,GAAG,KAAKnF,UAAL,CAAgBoG,OAAhB,EAAb;AAEA,aAAO;AAAElB,QAAAA,YAAY,EAAZA,YAAF;AAAgBC,QAAAA,IAAI,EAAJA;AAAhB,OAAP;AACD;;;;;;SAtYkBtF,a","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"}
|
package/es/tile/tmsTileLayer.js
CHANGED
|
@@ -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","
|
|
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 =
|
|
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
|
|
114
|
-
|
|
115
|
-
center =
|
|
116
|
-
|
|
117
|
-
spriteCount =
|
|
118
|
-
|
|
119
|
-
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
|
|
165
|
-
|
|
166
|
-
a =
|
|
167
|
-
b =
|
|
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
|
|
184
|
-
opacity =
|
|
185
|
-
mapTexture =
|
|
186
|
-
|
|
187
|
-
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
|
|
218
|
-
mapTexture =
|
|
219
|
-
|
|
220
|
-
spriteTop =
|
|
221
|
-
|
|
222
|
-
spriteUpdate =
|
|
223
|
-
|
|
224
|
-
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;
|