@antv/l7-layers 2.9.0 → 2.9.3

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tile/tmsTileLayer.ts"],"names":["TMSTileLayer","tile","tileLayerManager","removeChilds","layerIDList","tilesetManager","tiles","filter","isLoaded","map","data","layers","sourceLayer","vectorTileLayer","features","Array","isArray","length","includes","parent","id","createTile","push","addChilds","setPickState","isVisibleChanged","getChilds","updateLayersConfig","isVisible","renderLayers","emit","currentTiles","BaseTileLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;IAEaA,Y;;;;;;;;;;;;;;;uFACW,K;;;;;;WACtB,oBAAkBC,IAAlB,EAA8B;AAC5B,WAAKC,gBAAL,CAAsBC,YAAtB,CAAmCF,IAAI,CAACG,WAAxC;AACD;;;WACD,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,CAACG,WAAL,CAAiBc,QAAjB,CAA0B,MAAI,CAACC,MAAL,CAAYC,EAAtC,CAAL,EAAgD;AAC9C,sCAAmB,MAAI,CAAClB,gBAAL,CAAsBmB,UAAtB,CAAiCpB,IAAjC,CAAnB;AAAA,cAAQU,MAAR,yBAAQA,MAAR;;AACAV,UAAAA,IAAI,CAACG,WAAL,CAAiBkB,IAAjB,CAAsB,MAAI,CAACH,MAAL,CAAYC,EAAlC;;AAEA,UAAA,MAAI,CAAClB,gBAAL,CAAsBqB,SAAtB,CAAgCZ,MAAhC;;AACA,UAAA,MAAI,CAACa,YAAL,CAAkBb,MAAlB;AACD,SAND,MAMO;AACL,cAAI,CAACV,IAAI,CAACwB,gBAAV,EAA4B;AAC1B;AACD;;AACD,cAAMd,OAAM,GAAG,MAAI,CAACT,gBAAL,CAAsBwB,SAAtB,CAAgCzB,IAAI,CAACG,WAArC,CAAf;;AACA,UAAA,MAAI,CAACF,gBAAL,CAAsByB,kBAAtB,CACEhB,OADF,EAEE,SAFF,EAGEV,IAAI,CAAC2B,SAHP;;AAKA,UAAA,MAAI,CAACJ,YAAL,CAAkBb,OAAlB;AACD;AACF,OA7BH;AA+BA,WAAKQ,MAAL,CAAYU,YAAZ;;AAEA,UAAI,KAAKxB,cAAL,CAAoBG,QAAxB,EAAkC;AAEhC,aAAKW,MAAL,CAAYW,IAAZ,CAAiB,cAAjB,EAAiC,KAAKzB,cAAL,CAAoB0B,YAArD;AACD;AACF;;;EA9C+BC,sB","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.layerIDList.includes(this.parent.id)) {\n const { layers } = this.tileLayerManager.createTile(tile);\n tile.layerIDList.push(this.parent.id);\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":["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","BaseTileLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;IAEaA,Y;;;;;;;;;;;;;;;uFACW,K;;;;;;WACtB,oBAAkBC,IAAlB,EAA8B;AAC5B,WAAKC,gBAAL,CAAsBC,YAAtB,CAAmCF,IAAI,CAACG,WAAxC;AACD;;;WACD,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,2DAAyBnB,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;;;EAjD+BC,sB","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"}
package/lib/tile/utils.js CHANGED
@@ -90,26 +90,31 @@ function getContainerSize(container) {
90
90
  }
91
91
 
92
92
  function readRasterValue(tile, mapService, x, y) {
93
- var _tile$bboxPolygon, _tile$data;
93
+ var _tile$bboxPolygon, _tile$data, _tile$data2, _tile$data3;
94
94
 
95
- var bbox = ((_tile$bboxPolygon = tile.bboxPolygon) === null || _tile$bboxPolygon === void 0 ? void 0 : _tile$bboxPolygon.bbox) || [0, 0, 10, -10];
95
+ var bbox = (tile === null || tile === void 0 ? void 0 : (_tile$bboxPolygon = tile.bboxPolygon) === null || _tile$bboxPolygon === void 0 ? void 0 : _tile$bboxPolygon.bbox) || [0, 0, 10, -10];
96
96
 
97
97
  var _bbox = (0, _slicedToArray2.default)(bbox, 4),
98
98
  _bbox$ = _bbox[0],
99
- tileLng = _bbox$ === void 0 ? 0 : _bbox$,
99
+ minLng = _bbox$ === void 0 ? 0 : _bbox$,
100
100
  _bbox$2 = _bbox[1],
101
- tileLat = _bbox$2 === void 0 ? 0 : _bbox$2,
101
+ minLat = _bbox$2 === void 0 ? 0 : _bbox$2,
102
102
  _bbox$3 = _bbox[2],
103
- tileMaxLng = _bbox$3 === void 0 ? 10 : _bbox$3,
103
+ maxLng = _bbox$3 === void 0 ? 10 : _bbox$3,
104
104
  _bbox$4 = _bbox[3],
105
- tileMaxLat = _bbox$4 === void 0 ? -10 : _bbox$4;
106
-
107
- var tileXY = mapService.lngLatToContainer([tileLng, tileLat]);
108
- var tileMaxXY = mapService.lngLatToContainer([tileMaxLng, tileMaxLat]);
109
- var pos = [(x - tileXY.x) / (tileMaxXY.x - tileXY.x), (y - tileXY.y) / (tileMaxXY.y - tileXY.y)];
110
- var tileWidth = tile.data.width || 1;
111
- var tileHeight = tile.data.height || 1;
112
- var data = (_tile$data = tile.data) === null || _tile$data === void 0 ? void 0 : _tile$data.data[Math.floor(pos[0] * tileWidth) + Math.floor(pos[1] * tileHeight)];
105
+ maxLat = _bbox$4 === void 0 ? -10 : _bbox$4;
106
+
107
+ var tileXY = mapService.lngLatToContainer([minLng, minLat]);
108
+ var tileMaxXY = mapService.lngLatToContainer([maxLng, maxLat]);
109
+ var tilePixelWidth = tileMaxXY.x - tileXY.x;
110
+ var tilePixelHeight = tileXY.y - tileMaxXY.y;
111
+ var pos = [(x - tileXY.x) / tilePixelWidth, (y - tileMaxXY.y) / tilePixelHeight];
112
+ var tileWidth = (tile === null || tile === void 0 ? void 0 : (_tile$data = tile.data) === null || _tile$data === void 0 ? void 0 : _tile$data.width) || 1;
113
+ var tileHeight = (tile === null || tile === void 0 ? void 0 : (_tile$data2 = tile.data) === null || _tile$data2 === void 0 ? void 0 : _tile$data2.height) || 1;
114
+ var indexX = Math.floor(pos[0] * tileWidth);
115
+ var indexY = Math.floor(pos[1] * tileHeight);
116
+ var index = Math.max(0, indexY - 1) * tileWidth + indexX;
117
+ var data = tile === null || tile === void 0 ? void 0 : (_tile$data3 = tile.data) === null || _tile$data3 === void 0 ? void 0 : _tile$data3.data[index];
113
118
  return data;
114
119
  }
115
120
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tile/utils.ts"],"names":["registerLayers","parentLayer","layers","map","layer","container","sceneContainer","setContainer","init","getLayerShape","layerType","layerShape","getAttribute","scale","field","values","getMaskValue","mask","getContainerSize","getContext","width","DOM","DPR","height","getBoundingClientRect","readRasterValue","tile","mapService","x","y","bbox","bboxPolygon","tileLng","tileLat","tileMaxLng","tileMaxLat","tileXY","lngLatToContainer","tileMaxXY","pos","tileWidth","data","tileHeight","Math","floor","readPixel","rendererService","readPixels","getContainer","xInDevicePixel","yInDevicePixel","pickedColors","Uint8Array"],"mappings":"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","sourcesContent":["import {\n createLayerContainer,\n ILayer,\n IMapService,\n IRendererService,\n} from '@antv/l7-core';\nimport { DOM, Tile } from '@antv/l7-utils';\nimport { Container } from 'inversify';\nexport function registerLayers(parentLayer: ILayer, layers: ILayer[]) {\n layers.map((layer) => {\n const container = createLayerContainer(\n parentLayer.sceneContainer as Container,\n );\n layer.setContainer(container, parentLayer.sceneContainer as Container);\n layer.init();\n });\n}\n\nexport function getLayerShape(layerType: string, layer: ILayer) {\n const layerShape = layer.getAttribute('shape');\n if (layerShape && layerShape.scale?.field) {\n if (layerShape.scale?.values === 'text') {\n return [layerShape.scale.field, layerShape.scale.values] as string[];\n }\n return layerShape.scale.field as string;\n }\n switch (layerType) {\n case 'PolygonLayer':\n return 'fill';\n case 'LineLayer':\n return 'tileline';\n case 'PointLayer':\n return 'circle';\n case 'RasterLayer':\n return 'image';\n default:\n return '';\n }\n}\n\nexport function getMaskValue(layerType: string, mask: boolean) {\n switch (layerType) {\n case 'PolygonLayer':\n return true;\n case 'LineLayer':\n return true;\n case 'PointLayer':\n return false;\n case 'RasterLayer':\n return mask;\n default:\n return mask;\n }\n}\n\nexport function getContainerSize(container: HTMLCanvasElement | HTMLElement) {\n if (!!(container as HTMLCanvasElement).getContext) {\n return {\n width: (container as HTMLCanvasElement).width / DOM.DPR,\n height: (container as HTMLCanvasElement).height / DOM.DPR,\n };\n } else {\n return container.getBoundingClientRect();\n }\n}\n\nexport function readRasterValue(\n tile: Tile,\n mapService: IMapService,\n x: number,\n y: number,\n) {\n const bbox = tile.bboxPolygon?.bbox || [0, 0, 10, -10];\n const [tileLng = 0, tileLat = 0, tileMaxLng = 10, tileMaxLat = -10] = bbox;\n const tileXY = mapService.lngLatToContainer([tileLng, tileLat]);\n const tileMaxXY = mapService.lngLatToContainer([tileMaxLng, tileMaxLat]);\n const pos = [\n (x - tileXY.x) / (tileMaxXY.x - tileXY.x),\n (y - tileXY.y) / (tileMaxXY.y - tileXY.y),\n ];\n const tileWidth = tile.data.width || 1;\n const tileHeight = tile.data.height || 1;\n const data =\n tile.data?.data[\n Math.floor(pos[0] * tileWidth) + Math.floor(pos[1] * tileHeight)\n ];\n return data;\n}\n\nexport function readPixel(\n x: number,\n y: number,\n rendererService: IRendererService,\n) {\n const { readPixels, getContainer } = rendererService;\n const xInDevicePixel = x * DOM.DPR;\n const yInDevicePixel = y * DOM.DPR;\n let { width, height } = getContainerSize(\n getContainer() as HTMLCanvasElement | HTMLElement,\n );\n width *= DOM.DPR;\n height *= DOM.DPR;\n if (\n xInDevicePixel > width - 1 * DOM.DPR ||\n xInDevicePixel < 0 ||\n yInDevicePixel > height - 1 * DOM.DPR ||\n yInDevicePixel < 0\n ) {\n return false;\n }\n\n const pickedColors = readPixels({\n x: Math.floor(xInDevicePixel),\n // 视口坐标系原点在左上,而 WebGL 在左下,需要翻转 Y 轴\n y: Math.floor(height - (y + 1) * DOM.DPR),\n width: 1,\n height: 1,\n data: new Uint8Array(1 * 1 * 4),\n });\n return pickedColors;\n}\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../../src/tile/utils.ts"],"names":["registerLayers","parentLayer","layers","map","layer","container","sceneContainer","setContainer","init","getLayerShape","layerType","layerShape","getAttribute","scale","field","values","getMaskValue","mask","getContainerSize","getContext","width","DOM","DPR","height","getBoundingClientRect","readRasterValue","tile","mapService","x","y","bbox","bboxPolygon","minLng","minLat","maxLng","maxLat","tileXY","lngLatToContainer","tileMaxXY","tilePixelWidth","tilePixelHeight","pos","tileWidth","data","tileHeight","indexX","Math","floor","indexY","index","max","readPixel","rendererService","readPixels","getContainer","xInDevicePixel","yInDevicePixel","pickedColors","Uint8Array"],"mappings":";;;;;;;;;;;;;;;;AAAA;;AAMA;;AAEO,SAASA,cAAT,CAAwBC,WAAxB,EAA6CC,MAA7C,EAA+D;AACpEA,EAAAA,MAAM,CAACC,GAAP,CAAW,UAACC,KAAD,EAAW;AACpB,QAAMC,SAAS,GAAG,kCAChBJ,WAAW,CAACK,cADI,CAAlB;AAGAF,IAAAA,KAAK,CAACG,YAAN,CAAmBF,SAAnB,EAA8BJ,WAAW,CAACK,cAA1C;AACAF,IAAAA,KAAK,CAACI,IAAN;AACD,GAND;AAOD;;AAEM,SAASC,aAAT,CAAuBC,SAAvB,EAA0CN,KAA1C,EAAyD;AAAA;;AAC9D,MAAMO,UAAU,GAAGP,KAAK,CAACQ,YAAN,CAAmB,OAAnB,CAAnB;;AACA,MAAID,UAAU,yBAAIA,UAAU,CAACE,KAAf,8CAAI,kBAAkBC,KAApC,EAA2C;AAAA;;AACzC,QAAI,uBAAAH,UAAU,CAACE,KAAX,0EAAkBE,MAAlB,MAA6B,MAAjC,EAAyC;AACvC,aAAO,CAACJ,UAAU,CAACE,KAAX,CAAiBC,KAAlB,EAAyBH,UAAU,CAACE,KAAX,CAAiBE,MAA1C,CAAP;AACD;;AACD,WAAOJ,UAAU,CAACE,KAAX,CAAiBC,KAAxB;AACD;;AACD,UAAQJ,SAAR;AACE,SAAK,cAAL;AACE,aAAO,MAAP;;AACF,SAAK,WAAL;AACE,aAAO,UAAP;;AACF,SAAK,YAAL;AACE,aAAO,QAAP;;AACF,SAAK,aAAL;AACE,aAAO,OAAP;;AACF;AACE,aAAO,EAAP;AAVJ;AAYD;;AAEM,SAASM,YAAT,CAAsBN,SAAtB,EAAyCO,IAAzC,EAAwD;AAC7D,UAAQP,SAAR;AACE,SAAK,cAAL;AACE,aAAO,IAAP;;AACF,SAAK,WAAL;AACE,aAAO,IAAP;;AACF,SAAK,YAAL;AACE,aAAO,KAAP;;AACF,SAAK,aAAL;AACE,aAAOO,IAAP;;AACF;AACE,aAAOA,IAAP;AAVJ;AAYD;;AAEM,SAASC,gBAAT,CAA0Bb,SAA1B,EAAsE;AAC3E,MAAI,CAAC,CAAEA,SAAD,CAAiCc,UAAvC,EAAmD;AACjD,WAAO;AACLC,MAAAA,KAAK,EAAGf,SAAD,CAAiCe,KAAjC,GAAyCC,aAAIC,GAD/C;AAELC,MAAAA,MAAM,EAAGlB,SAAD,CAAiCkB,MAAjC,GAA0CF,aAAIC;AAFjD,KAAP;AAID,GALD,MAKO;AACL,WAAOjB,SAAS,CAACmB,qBAAV,EAAP;AACD;AACF;;AAEM,SAASC,eAAT,CACLC,IADK,EAELC,UAFK,EAGLC,CAHK,EAILC,CAJK,EAKL;AAAA;;AACA,MAAMC,IAAI,GAAG,CAAAJ,IAAI,SAAJ,IAAAA,IAAI,WAAJ,iCAAAA,IAAI,CAAEK,WAAN,wEAAmBD,IAAnB,KAA2B,CAAC,CAAD,EAAI,CAAJ,EAAO,EAAP,EAAW,CAAC,EAAZ,CAAxC;;AAEA,2CAA4DA,IAA5D;AAAA;AAAA,MAAOE,MAAP,uBAAgB,CAAhB;AAAA;AAAA,MAAmBC,MAAnB,wBAA4B,CAA5B;AAAA;AAAA,MAA+BC,MAA/B,wBAAwC,EAAxC;AAAA;AAAA,MAA4CC,MAA5C,wBAAqD,CAAC,EAAtD;;AAEA,MAAMC,MAAM,GAAGT,UAAU,CAACU,iBAAX,CAA6B,CAACL,MAAD,EAASC,MAAT,CAA7B,CAAf;AACA,MAAMK,SAAS,GAAGX,UAAU,CAACU,iBAAX,CAA6B,CAACH,MAAD,EAASC,MAAT,CAA7B,CAAlB;AAEA,MAAMI,cAAc,GAAGD,SAAS,CAACV,CAAV,GAAcQ,MAAM,CAACR,CAA5C;AACA,MAAMY,eAAe,GAAGJ,MAAM,CAACP,CAAP,GAAWS,SAAS,CAACT,CAA7C;AACA,MAAMY,GAAG,GAAG,CACV,CAACb,CAAC,GAAGQ,MAAM,CAACR,CAAZ,IAAiBW,cADP,EAEV,CAACV,CAAC,GAAGS,SAAS,CAACT,CAAf,IAAoBW,eAFV,CAAZ;AAKA,MAAME,SAAS,GAAG,CAAAhB,IAAI,SAAJ,IAAAA,IAAI,WAAJ,0BAAAA,IAAI,CAAEiB,IAAN,0DAAYvB,KAAZ,KAAqB,CAAvC;AACA,MAAMwB,UAAU,GAAG,CAAAlB,IAAI,SAAJ,IAAAA,IAAI,WAAJ,2BAAAA,IAAI,CAAEiB,IAAN,4DAAYpB,MAAZ,KAAsB,CAAzC;AAEA,MAAMsB,MAAM,GAAGC,IAAI,CAACC,KAAL,CAAWN,GAAG,CAAC,CAAD,CAAH,GAASC,SAApB,CAAf;AACA,MAAMM,MAAM,GAAGF,IAAI,CAACC,KAAL,CAAWN,GAAG,CAAC,CAAD,CAAH,GAASG,UAApB,CAAf;AACA,MAAMK,KAAK,GAAGH,IAAI,CAACI,GAAL,CAAS,CAAT,EAAYF,MAAM,GAAG,CAArB,IAA0BN,SAA1B,GAAsCG,MAApD;AAEA,MAAMF,IAAI,GAAGjB,IAAH,aAAGA,IAAH,sCAAGA,IAAI,CAAEiB,IAAT,gDAAG,YAAYA,IAAZ,CAAiBM,KAAjB,CAAb;AAEA,SAAON,IAAP;AACD;;AAEM,SAASQ,SAAT,CACLvB,CADK,EAELC,CAFK,EAGLuB,eAHK,EAIL;AACA,MAAQC,UAAR,GAAqCD,eAArC,CAAQC,UAAR;AAAA,MAAoBC,YAApB,GAAqCF,eAArC,CAAoBE,YAApB;AACA,MAAMC,cAAc,GAAG3B,CAAC,GAAGP,aAAIC,GAA/B;AACA,MAAMkC,cAAc,GAAG3B,CAAC,GAAGR,aAAIC,GAA/B;;AACA,0BAAwBJ,gBAAgB,CACtCoC,YAAY,EAD0B,CAAxC;AAAA,MAAMlC,KAAN,qBAAMA,KAAN;AAAA,MAAaG,MAAb,qBAAaA,MAAb;;AAGAH,EAAAA,KAAK,IAAIC,aAAIC,GAAb;AACAC,EAAAA,MAAM,IAAIF,aAAIC,GAAd;;AACA,MACEiC,cAAc,GAAGnC,KAAK,GAAG,IAAIC,aAAIC,GAAjC,IACAiC,cAAc,GAAG,CADjB,IAEAC,cAAc,GAAGjC,MAAM,GAAG,IAAIF,aAAIC,GAFlC,IAGAkC,cAAc,GAAG,CAJnB,EAKE;AACA,WAAO,KAAP;AACD;;AAED,MAAMC,YAAY,GAAGJ,UAAU,CAAC;AAC9BzB,IAAAA,CAAC,EAAEkB,IAAI,CAACC,KAAL,CAAWQ,cAAX,CAD2B;AAG9B1B,IAAAA,CAAC,EAAEiB,IAAI,CAACC,KAAL,CAAWxB,MAAM,GAAG,CAACM,CAAC,GAAG,CAAL,IAAUR,aAAIC,GAAlC,CAH2B;AAI9BF,IAAAA,KAAK,EAAE,CAJuB;AAK9BG,IAAAA,MAAM,EAAE,CALsB;AAM9BoB,IAAAA,IAAI,EAAE,IAAIe,UAAJ,CAAe,IAAI,CAAJ,GAAQ,CAAvB;AANwB,GAAD,CAA/B;AAQA,SAAOD,YAAP;AACD","sourcesContent":["import {\n createLayerContainer,\n ILayer,\n IMapService,\n IRendererService,\n} from '@antv/l7-core';\nimport { DOM, Tile } from '@antv/l7-utils';\nimport { Container } from 'inversify';\nexport function registerLayers(parentLayer: ILayer, layers: ILayer[]) {\n layers.map((layer) => {\n const container = createLayerContainer(\n parentLayer.sceneContainer as Container,\n );\n layer.setContainer(container, parentLayer.sceneContainer as Container);\n layer.init();\n });\n}\n\nexport function getLayerShape(layerType: string, layer: ILayer) {\n const layerShape = layer.getAttribute('shape');\n if (layerShape && layerShape.scale?.field) {\n if (layerShape.scale?.values === 'text') {\n return [layerShape.scale.field, layerShape.scale.values] as string[];\n }\n return layerShape.scale.field as string;\n }\n switch (layerType) {\n case 'PolygonLayer':\n return 'fill';\n case 'LineLayer':\n return 'tileline';\n case 'PointLayer':\n return 'circle';\n case 'RasterLayer':\n return 'image';\n default:\n return '';\n }\n}\n\nexport function getMaskValue(layerType: string, mask: boolean) {\n switch (layerType) {\n case 'PolygonLayer':\n return true;\n case 'LineLayer':\n return true;\n case 'PointLayer':\n return false;\n case 'RasterLayer':\n return mask;\n default:\n return mask;\n }\n}\n\nexport function getContainerSize(container: HTMLCanvasElement | HTMLElement) {\n if (!!(container as HTMLCanvasElement).getContext) {\n return {\n width: (container as HTMLCanvasElement).width / DOM.DPR,\n height: (container as HTMLCanvasElement).height / DOM.DPR,\n };\n } else {\n return container.getBoundingClientRect();\n }\n}\n\nexport function readRasterValue(\n tile: Tile,\n mapService: IMapService,\n x: number,\n y: number,\n) {\n const bbox = tile?.bboxPolygon?.bbox || [0, 0, 10, -10];\n\n const [minLng = 0, minLat = 0, maxLng = 10, maxLat = -10] = bbox;\n\n const tileXY = mapService.lngLatToContainer([minLng, minLat]);\n const tileMaxXY = mapService.lngLatToContainer([maxLng, maxLat]);\n\n const tilePixelWidth = tileMaxXY.x - tileXY.x;\n const tilePixelHeight = tileXY.y - tileMaxXY.y;\n const pos = [\n (x - tileXY.x) / tilePixelWidth, // x\n (y - tileMaxXY.y) / tilePixelHeight, // y\n ];\n\n const tileWidth = tile?.data?.width || 1;\n const tileHeight = tile?.data?.height || 1;\n\n const indexX = Math.floor(pos[0] * tileWidth);\n const indexY = Math.floor(pos[1] * tileHeight);\n const index = Math.max(0, indexY - 1) * tileWidth + indexX;\n\n const data = tile?.data?.data[index];\n\n return data;\n}\n\nexport function readPixel(\n x: number,\n y: number,\n rendererService: IRendererService,\n) {\n const { readPixels, getContainer } = rendererService;\n const xInDevicePixel = x * DOM.DPR;\n const yInDevicePixel = y * DOM.DPR;\n let { width, height } = getContainerSize(\n getContainer() as HTMLCanvasElement | HTMLElement,\n );\n width *= DOM.DPR;\n height *= DOM.DPR;\n if (\n xInDevicePixel > width - 1 * DOM.DPR ||\n xInDevicePixel < 0 ||\n yInDevicePixel > height - 1 * DOM.DPR ||\n yInDevicePixel < 0\n ) {\n return false;\n }\n\n const pickedColors = readPixels({\n x: Math.floor(xInDevicePixel),\n // 视口坐标系原点在左上,而 WebGL 在左下,需要翻转 Y 轴\n y: Math.floor(height - (y + 1) * DOM.DPR),\n width: 1,\n height: 1,\n data: new Uint8Array(1 * 1 * 4),\n });\n return pickedColors;\n}\n"],"file":"utils.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antv/l7-layers",
3
- "version": "2.9.0",
3
+ "version": "2.9.3",
4
4
  "description": "L7's collection of built-in layers",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -25,9 +25,9 @@
25
25
  "author": "xiaoiver",
26
26
  "license": "ISC",
27
27
  "dependencies": {
28
- "@antv/l7-core": "2.9.0",
29
- "@antv/l7-source": "2.9.0",
30
- "@antv/l7-utils": "2.9.0",
28
+ "@antv/l7-core": "2.9.3",
29
+ "@antv/l7-source": "2.9.3",
30
+ "@antv/l7-utils": "2.9.3",
31
31
  "@babel/runtime": "^7.7.7",
32
32
  "@mapbox/martini": "^0.2.0",
33
33
  "@turf/helpers": "^6.1.4",
@@ -57,7 +57,7 @@
57
57
  "@types/gl-matrix": "^2.4.5",
58
58
  "@types/lodash": "^4.14.138"
59
59
  },
60
- "gitHead": "1b4a9fac41259cf55d7caa7bb9556dc9d0b302da",
60
+ "gitHead": "53893e8148735ce89f625b86092d6c6703eaa4b7",
61
61
  "publishConfig": {
62
62
  "access": "public"
63
63
  }