@antv/l7-layers 2.9.17-alpha.0 → 2.9.19

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.
Files changed (81) hide show
  1. package/es/core/BaseLayer.js +10 -6
  2. package/es/core/BaseLayer.js.map +1 -1
  3. package/es/core/interface.d.ts +13 -0
  4. package/es/core/interface.js.map +1 -1
  5. package/es/core/triangulation.d.ts +0 -1
  6. package/es/core/triangulation.js +9 -36
  7. package/es/core/triangulation.js.map +1 -1
  8. package/es/image/index.d.ts +1 -1
  9. package/es/image/index.js +14 -2
  10. package/es/image/index.js.map +1 -1
  11. package/es/image/models/dataImage.d.ts +22 -0
  12. package/es/image/models/dataImage.js +235 -0
  13. package/es/image/models/dataImage.js.map +1 -0
  14. package/es/image/models/image.d.ts +1 -0
  15. package/es/image/models/image.js +8 -1
  16. package/es/image/models/image.js.map +1 -1
  17. package/es/image/models/index.d.ts +1 -1
  18. package/es/image/models/index.js +3 -1
  19. package/es/image/models/index.js.map +1 -1
  20. package/es/line/models/arc.js +2 -2
  21. package/es/line/models/arc.js.map +1 -1
  22. package/es/line/models/great_circle.js +2 -2
  23. package/es/line/models/line.js +1 -1
  24. package/es/line/models/simpleLine.d.ts +0 -1
  25. package/es/line/models/simpleLine.js +10 -53
  26. package/es/line/models/simpleLine.js.map +1 -1
  27. package/es/plugins/LayerModelPlugin.js +2 -0
  28. package/es/plugins/LayerModelPlugin.js.map +1 -1
  29. package/es/point/index.js +11 -7
  30. package/es/point/index.js.map +1 -1
  31. package/es/point/models/text.js +2 -0
  32. package/es/point/models/text.js.map +1 -1
  33. package/es/tile/manager/tileLayerManager.js +22 -2
  34. package/es/tile/manager/tileLayerManager.js.map +1 -1
  35. package/es/utils/extrude_polyline.d.ts +0 -15
  36. package/es/utils/extrude_polyline.js +6 -138
  37. package/es/utils/extrude_polyline.js.map +1 -1
  38. package/es/utils/simpleLine.d.ts +23 -0
  39. package/es/utils/simpleLine.js +105 -0
  40. package/es/utils/simpleLine.js.map +1 -0
  41. package/es/wind/models/wind.d.ts +2 -0
  42. package/es/wind/models/wind.js +62 -33
  43. package/es/wind/models/wind.js.map +1 -1
  44. package/es/wind/models/windRender.js +1 -1
  45. package/es/wind/models/windRender.js.map +1 -1
  46. package/lib/core/BaseLayer.js +10 -6
  47. package/lib/core/BaseLayer.js.map +1 -1
  48. package/lib/core/interface.js.map +1 -1
  49. package/lib/core/triangulation.js +10 -36
  50. package/lib/core/triangulation.js.map +1 -1
  51. package/lib/image/index.js +14 -2
  52. package/lib/image/index.js.map +1 -1
  53. package/lib/image/models/dataImage.js +250 -0
  54. package/lib/image/models/dataImage.js.map +1 -0
  55. package/lib/image/models/image.js +8 -1
  56. package/lib/image/models/image.js.map +1 -1
  57. package/lib/image/models/index.js +4 -1
  58. package/lib/image/models/index.js.map +1 -1
  59. package/lib/line/models/arc.js +2 -2
  60. package/lib/line/models/arc.js.map +1 -1
  61. package/lib/line/models/great_circle.js +2 -2
  62. package/lib/line/models/line.js +1 -1
  63. package/lib/line/models/simpleLine.js +10 -53
  64. package/lib/line/models/simpleLine.js.map +1 -1
  65. package/lib/plugins/LayerModelPlugin.js +2 -0
  66. package/lib/plugins/LayerModelPlugin.js.map +1 -1
  67. package/lib/point/index.js +11 -7
  68. package/lib/point/index.js.map +1 -1
  69. package/lib/point/models/text.js +2 -0
  70. package/lib/point/models/text.js.map +1 -1
  71. package/lib/tile/manager/tileLayerManager.js +22 -2
  72. package/lib/tile/manager/tileLayerManager.js.map +1 -1
  73. package/lib/utils/extrude_polyline.js +6 -140
  74. package/lib/utils/extrude_polyline.js.map +1 -1
  75. package/lib/utils/simpleLine.js +117 -0
  76. package/lib/utils/simpleLine.js.map +1 -0
  77. package/lib/wind/models/wind.js +61 -33
  78. package/lib/wind/models/wind.js.map +1 -1
  79. package/lib/wind/models/windRender.js +1 -1
  80. package/lib/wind/models/windRender.js.map +1 -1
  81. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/point/index.ts"],"names":["BaseLayer","PointModels","PointLayer","modelType","getModelType","layerModel","initModels","models","layerService","updateLayerRenderList","renderLayers","buildModels","shapeOption","field","values","getLayerConfig","shape2d","shape3d","iconMap","iconService","getIconMap","indexOf","Array","v","hasOwnProperty","properties","opacity","type","minimum","maximum","defaultConfig","fillImage","normal","blend","radar","simplePoint","fill","extrude","image","text","vectorpoint","tile","earthFill","earthExtrude","PointTypes","layerSource","parser","layerType","includes","layerData","getEncodedData","item","find","fe","getModelTypeWillEmptyData","shape"],"mappings":";;;;;;;;;;;;;;;;;;AACA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,WAAP,MAAuC,gBAAvC;;IAEqBC,U;;;;;;;;;;;;;;;;2DACG,Y;;;;;;;WACtB,uBAAqB;AAAA;;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIJ,WAAW,CAACE,SAAD,CAAf,CAA2B,IAA3B,CAAlB;AACA,WAAKE,UAAL,CAAgBC,UAAhB,CAA2B,UAACC,MAAD,EAAY;AACrC,QAAA,MAAI,CAACA,MAAL,GAAcA,MAAd;;AACA,QAAA,MAAI,CAACC,YAAL,CAAkBC,qBAAlB;;AACA,QAAA,MAAI,CAACC,YAAL;AACD,OAJD;AAKD;;;WACD,yBAAuB;AAAA;;AACrB,WAAKL,UAAL,CAAgBM,WAAhB,CAA4B,UAACJ,MAAD;AAAA,eAAa,MAAI,CAACA,MAAL,GAAcA,MAA3B;AAAA,OAA5B;AACD;;;WAMD,qCAA8C;AAC5C,UAAI,KAAKK,WAAT,EAAsB;AACpB,gCAA0B,KAAKA,WAA/B;AAAA,YAAQC,KAAR,qBAAQA,KAAR;AAAA,YAAeC,MAAf,qBAAeA,MAAf;;AACA,mCAA6B,KAAKC,cAAL,EAA7B;AAAA,YAAQC,OAAR,wBAAQA,OAAR;AAAA,YAAiBC,OAAjB,wBAAiBA,OAAjB;;AAEA,YAAMC,OAAO,GAAG,KAAKC,WAAL,CAAiBC,UAAjB,EAAhB;;AAEA,YAAIP,KAAK,IAAI,CAAAG,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEK,OAAT,CAAiBR,KAAjB,OAAsC,CAAC,CAApD,EAAuD;AACrD,iBAAO,MAAP;AACD;;AAED,YAAIC,MAAM,IAAIA,MAAM,YAAYQ,KAAhC,EAAuC;AAAA,qDACrBR,MADqB;AAAA;;AAAA;AACrC,gEAAwB;AAAA,kBAAbS,CAAa;;AACtB,kBAAI,OAAOA,CAAP,KAAa,QAAb,IAAyBL,OAAO,CAACM,cAAR,CAAuBD,CAAvB,CAA7B,EAAkE;AAChE,uBAAO,OAAP;AACD;AACF;AALoC;AAAA;AAAA;AAAA;AAAA;AAMtC;AACF;;AACD,aAAO,QAAP;AACD;;;WACD,2BAA4B;AAC1B,aAAO;AACLE,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKvB,YAAL,EAAb;AACA,UAAM0B,aAAa,GAAG;AACpBC,QAAAA,SAAS,EAAE,EADS;AAEpBC,QAAAA,MAAM,EAAE;AACNC,UAAAA,KAAK,EAAE;AADD,SAFY;AAKpBC,QAAAA,KAAK,EAAE,EALa;AAMpBC,QAAAA,WAAW,EAAE,EANO;AAOpBC,QAAAA,IAAI,EAAE;AAAEH,UAAAA,KAAK,EAAE;AAAT,SAPc;AAQpBI,QAAAA,OAAO,EAAE,EARW;AASpBC,QAAAA,KAAK,EAAE,EATa;AAUpBC,QAAAA,IAAI,EAAE;AACJN,UAAAA,KAAK,EAAE;AADH,SAVc;AAapBO,QAAAA,WAAW,EAAE,EAbO;AAcpBC,QAAAA,IAAI,EAAE,EAdc;AAepBC,QAAAA,SAAS,EAAE,EAfS;AAgBpBC,QAAAA,YAAY,EAAE;AAhBM,OAAtB;AAkBA,aAAOb,aAAa,CAACH,IAAD,CAApB;AACD;;;WAED,wBAAoC;AAClC,UAAMiB,UAAU,GAAG,CACjB,WADiB,EAEjB,MAFiB,EAGjB,OAHiB,EAIjB,OAJiB,EAKjB,QALiB,EAMjB,aANiB,EAOjB,SAPiB,EAQjB,MARiB,EASjB,aATiB,EAUjB,MAViB,EAWjB,WAXiB,EAYjB,cAZiB,CAAnB;;AAcA,UAAI,KAAKC,WAAL,CAAiBC,MAAjB,CAAwBnB,IAAxB,KAAiC,KAArC,EAA4C;AAC1C,eAAO,aAAP;AACD;;AACD,UAAI,KAAKoB,SAAL,IAAkBH,UAAU,CAACI,QAAX,CAAoB,KAAKD,SAAzB,CAAtB,EAA2D;AACzD,eAAO,KAAKA,SAAZ;AACD;;AAGD,UAAME,SAAS,GAAG,KAAKC,cAAL,EAAlB;;AACA,kCAA6B,KAAKnC,cAAL,EAA7B;AAAA,UAAQC,OAAR,yBAAQA,OAAR;AAAA,UAAiBC,OAAjB,yBAAiBA,OAAjB;;AACA,UAAMC,OAAO,GAAG,KAAKC,WAAL,CAAiBC,UAAjB,EAAhB;AACA,UAAM+B,IAAI,GAAGF,SAAS,CAACG,IAAV,CAAe,UAACC,EAAD,EAAwB;AAClD,eAAOA,EAAE,CAAC7B,cAAH,CAAkB,OAAlB,CAAP;AACD,OAFY,CAAb;;AAGA,UAAI,CAAC2B,IAAL,EAAW;AAET,eAAO,KAAKG,yBAAL,EAAP;AACD,OAHD,MAGO;AACL,YAAMC,KAAK,GAAGJ,IAAI,CAACI,KAAnB;;AACA,YAAIA,KAAK,KAAK,KAAd,EAAqB;AACnB,iBAAO,QAAP;AACD;;AACD,YAAIA,KAAK,KAAK,QAAd,EAAwB;AACtB,iBAAO,aAAP;AACD;;AACD,YAAIA,KAAK,KAAK,OAAd,EAAuB;AACrB,iBAAO,OAAP;AACD;;AACD,YAAIA,KAAK,KAAK,WAAd,EAA2B;AACzB,iBAAO,WAAP;AACD;;AACD,YAAI,CAAAvC,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEK,OAAT,CAAiBkC,KAAjB,OAAsC,CAAC,CAA3C,EAA8C;AAC5C,iBAAO,MAAP;AACD;;AACD,YAAI,CAAAtC,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEI,OAAT,CAAiBkC,KAAjB,OAAsC,CAAC,CAA3C,EAA8C;AAC5C,iBAAO,SAAP;AACD;;AACD,YAAIrC,OAAO,CAACM,cAAR,CAAuB+B,KAAvB,CAAJ,EAA6C;AAC3C,iBAAO,OAAP;AACD;;AACD,eAAO,MAAP;AACD;AACF;;;;EAnIqCvD,S;;SAAnBE,U","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport BaseLayer from '../core/BaseLayer';\nimport { IPointLayerStyleOptions } from '../core/interface';\nimport PointModels, { PointType } from './models/index';\n\nexport default class PointLayer extends BaseLayer<IPointLayerStyleOptions> {\n public type: string = 'PointLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new PointModels[modelType](this);\n this.layerModel.initModels((models) => {\n this.models = models;\n this.layerService.updateLayerRenderList();\n this.renderLayers();\n });\n }\n public rebuildModels() {\n this.layerModel.buildModels((models) => (this.models = models));\n }\n\n /**\n * 在未传入数据的时候判断点图层的 shape 类型\n * @returns\n */\n public getModelTypeWillEmptyData(): PointType {\n if (this.shapeOption) {\n const { field, values } = this.shapeOption;\n const { shape2d, shape3d } = this.getLayerConfig();\n\n const iconMap = this.iconService.getIconMap();\n\n if (field && shape2d?.indexOf(field as string) !== -1) {\n return 'fill';\n }\n\n if (values && values instanceof Array) {\n for (const v of values) {\n if (typeof v === 'string' && iconMap.hasOwnProperty(v as string)) {\n return 'image';\n }\n }\n }\n }\n return 'normal';\n }\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n fillImage: {},\n normal: {\n blend: 'additive',\n },\n radar: {},\n simplePoint: {},\n fill: { blend: 'normal' },\n extrude: {},\n image: {},\n text: {\n blend: 'normal',\n },\n vectorpoint: {},\n tile: {},\n earthFill: {},\n earthExtrude: {},\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): PointType {\n const PointTypes = [\n 'fillImage',\n 'fill',\n 'radar',\n 'image',\n 'normal',\n 'simplePoint',\n 'extrude',\n 'text',\n 'vectorpoint',\n 'tile',\n 'earthFill',\n 'earthExtrude',\n ];\n if (this.layerSource.parser.type === 'mvt') {\n return 'vectorpoint';\n }\n if (this.layerType && PointTypes.includes(this.layerType)) {\n return this.layerType as PointType;\n }\n // pointlayer\n // 2D、 3d、 shape、image、text、normal、\n const layerData = this.getEncodedData();\n const { shape2d, shape3d } = this.getLayerConfig();\n const iconMap = this.iconService.getIconMap();\n const item = layerData.find((fe: IEncodeFeature) => {\n return fe.hasOwnProperty('shape');\n });\n if (!item) {\n // return 'normal';\n return this.getModelTypeWillEmptyData();\n } else {\n const shape = item.shape;\n if (shape === 'dot') {\n return 'normal';\n }\n if (shape === 'simple') {\n return 'simplePoint';\n }\n if (shape === 'radar') {\n return 'radar';\n }\n if (shape === 'fillImage') {\n return 'fillImage';\n }\n if (shape2d?.indexOf(shape as string) !== -1) {\n return 'fill';\n }\n if (shape3d?.indexOf(shape as string) !== -1) {\n return 'extrude';\n }\n if (iconMap.hasOwnProperty(shape as string)) {\n return 'image';\n }\n return 'text';\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/point/index.ts"],"names":["BaseLayer","PointModels","PointLayer","modelType","getModelType","layerModel","initModels","models","layerService","updateLayerRenderList","renderLayers","buildModels","shapeOption","field","values","getLayerConfig","shape2d","shape3d","iconMap","iconService","getIconMap","indexOf","Array","v","hasOwnProperty","properties","opacity","type","minimum","maximum","defaultConfig","fillImage","normal","blend","radar","simplePoint","fill","extrude","image","text","vectorpoint","tile","earthFill","earthExtrude","PointTypes","layerSource","parser","layerData","getEncodedData","item","find","fe","getModelTypeWillEmptyData","shape","layerType","mapService","version"],"mappings":";;;;;;;;;;;;;;;;;;AACA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,WAAP,MAAuC,gBAAvC;;IAEqBC,U;;;;;;;;;;;;;;;;2DACG,Y;;;;;;;WACtB,uBAAqB;AAAA;;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIJ,WAAW,CAACE,SAAD,CAAf,CAA2B,IAA3B,CAAlB;AACA,WAAKE,UAAL,CAAgBC,UAAhB,CAA2B,UAACC,MAAD,EAAY;AACrC,QAAA,MAAI,CAACA,MAAL,GAAcA,MAAd;;AACA,QAAA,MAAI,CAACC,YAAL,CAAkBC,qBAAlB;;AACA,QAAA,MAAI,CAACC,YAAL;AACD,OAJD;AAKD;;;WACD,yBAAuB;AAAA;;AACrB,WAAKL,UAAL,CAAgBM,WAAhB,CAA4B,UAACJ,MAAD;AAAA,eAAa,MAAI,CAACA,MAAL,GAAcA,MAA3B;AAAA,OAA5B;AACD;;;WAMD,qCAA8C;AAC5C,UAAI,KAAKK,WAAT,EAAsB;AACpB,gCAA0B,KAAKA,WAA/B;AAAA,YAAQC,KAAR,qBAAQA,KAAR;AAAA,YAAeC,MAAf,qBAAeA,MAAf;;AACA,mCAA6B,KAAKC,cAAL,EAA7B;AAAA,YAAQC,OAAR,wBAAQA,OAAR;AAAA,YAAiBC,OAAjB,wBAAiBA,OAAjB;;AAEA,YAAMC,OAAO,GAAG,KAAKC,WAAL,CAAiBC,UAAjB,EAAhB;;AAEA,YAAIP,KAAK,IAAI,CAAAG,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEK,OAAT,CAAiBR,KAAjB,OAAsC,CAAC,CAApD,EAAuD;AACrD,iBAAO,MAAP;AACD;;AAED,YAAIC,MAAM,IAAIA,MAAM,YAAYQ,KAAhC,EAAuC;AAAA,qDACrBR,MADqB;AAAA;;AAAA;AACrC,gEAAwB;AAAA,kBAAbS,CAAa;;AACtB,kBAAI,OAAOA,CAAP,KAAa,QAAb,IAAyBL,OAAO,CAACM,cAAR,CAAuBD,CAAvB,CAA7B,EAAkE;AAChE,uBAAO,OAAP;AACD;AACF;AALoC;AAAA;AAAA;AAAA;AAAA;AAMtC;AACF;;AACD,aAAO,QAAP;AACD;;;WACD,2BAA4B;AAC1B,aAAO;AACLE,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKvB,YAAL,EAAb;AACA,UAAM0B,aAAa,GAAG;AACpBC,QAAAA,SAAS,EAAE,EADS;AAEpBC,QAAAA,MAAM,EAAE;AACNC,UAAAA,KAAK,EAAE;AADD,SAFY;AAKpBC,QAAAA,KAAK,EAAE,EALa;AAMpBC,QAAAA,WAAW,EAAE,EANO;AAOpBC,QAAAA,IAAI,EAAE;AAAEH,UAAAA,KAAK,EAAE;AAAT,SAPc;AAQpBI,QAAAA,OAAO,EAAE,EARW;AASpBC,QAAAA,KAAK,EAAE,EATa;AAUpBC,QAAAA,IAAI,EAAE;AACJN,UAAAA,KAAK,EAAE;AADH,SAVc;AAapBO,QAAAA,WAAW,EAAE,EAbO;AAcpBC,QAAAA,IAAI,EAAE,EAdc;AAepBC,QAAAA,SAAS,EAAE,EAfS;AAgBpBC,QAAAA,YAAY,EAAE;AAhBM,OAAtB;AAkBA,aAAOb,aAAa,CAACH,IAAD,CAApB;AACD;;;WAED,wBAAoC;AAClC,UAAMiB,UAAU,GAAG,CACjB,WADiB,EAEjB,MAFiB,EAGjB,OAHiB,EAIjB,OAJiB,EAKjB,QALiB,EAMjB,aANiB,EAOjB,SAPiB,EAQjB,MARiB,EASjB,aATiB,EAUjB,MAViB,EAWjB,WAXiB,EAYjB,cAZiB,CAAnB;;AAcA,UAAI,KAAKC,WAAL,CAAiBC,MAAjB,CAAwBnB,IAAxB,KAAiC,KAArC,EAA4C;AAC1C,eAAO,aAAP;AACD;;AAID,UAAMoB,SAAS,GAAG,KAAKC,cAAL,EAAlB;;AACA,kCAA6B,KAAKjC,cAAL,EAA7B;AAAA,UAAQC,OAAR,yBAAQA,OAAR;AAAA,UAAiBC,OAAjB,yBAAiBA,OAAjB;;AACA,UAAMC,OAAO,GAAG,KAAKC,WAAL,CAAiBC,UAAjB,EAAhB;AACA,UAAM6B,IAAI,GAAGF,SAAS,CAACG,IAAV,CAAe,UAACC,EAAD,EAAwB;AAClD,eAAOA,EAAE,CAAC3B,cAAH,CAAkB,OAAlB,CAAP;AACD,OAFY,CAAb;;AAIA,UAAI,CAACyB,IAAL,EAAW;AACT,eAAO,KAAKG,yBAAL,EAAP;AACD,OAFD,MAEO;AACL,YAAMC,KAAK,GAAGJ,IAAI,CAACI,KAAnB;;AACA,YAAIA,KAAK,KAAK,KAAd,EAAqB;AACnB,iBAAO,QAAP;AACD;;AACD,YAAIA,KAAK,KAAK,QAAd,EAAwB;AACtB,iBAAO,aAAP;AACD;;AACD,YAAIA,KAAK,KAAK,OAAd,EAAuB;AACrB,iBAAO,OAAP;AACD;;AACD,YAAI,KAAKC,SAAL,KAAmB,WAAvB,EAAoC;AAClC,iBAAO,WAAP;AACD;;AACD,YAAI,CAAAtC,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEK,OAAT,CAAiBgC,KAAjB,OAAsC,CAAC,CAA3C,EAA8C;AAC5C,cAAI,KAAKE,UAAL,CAAgBC,OAAhB,KAA4B,QAAhC,EAA0C;AACxC,mBAAO,WAAP;AACD,WAFD,MAEO;AACL,mBAAO,MAAP;AACD;AACF;;AACD,YAAI,CAAAvC,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEI,OAAT,CAAiBgC,KAAjB,OAAsC,CAAC,CAA3C,EAA8C;AAC5C,cAAI,KAAKE,UAAL,CAAgBC,OAAhB,KAA4B,QAAhC,EAA0C;AACxC,mBAAO,cAAP;AACD,WAFD,MAEO;AACL,mBAAO,SAAP;AACD;AACF;;AACD,YAAItC,OAAO,CAACM,cAAR,CAAuB6B,KAAvB,CAAJ,EAA6C;AAC3C,iBAAO,OAAP;AACD;;AACD,eAAO,MAAP;AACD;AACF;;;;EAzIqCrD,S;;SAAnBE,U","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport BaseLayer from '../core/BaseLayer';\nimport { IPointLayerStyleOptions } from '../core/interface';\nimport PointModels, { PointType } from './models/index';\n\nexport default class PointLayer extends BaseLayer<IPointLayerStyleOptions> {\n public type: string = 'PointLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new PointModels[modelType](this);\n this.layerModel.initModels((models) => {\n this.models = models;\n this.layerService.updateLayerRenderList();\n this.renderLayers();\n });\n }\n public rebuildModels() {\n this.layerModel.buildModels((models) => (this.models = models));\n }\n\n /**\n * 在未传入数据的时候判断点图层的 shape 类型\n * @returns\n */\n public getModelTypeWillEmptyData(): PointType {\n if (this.shapeOption) {\n const { field, values } = this.shapeOption;\n const { shape2d, shape3d } = this.getLayerConfig();\n\n const iconMap = this.iconService.getIconMap();\n\n if (field && shape2d?.indexOf(field as string) !== -1) {\n return 'fill';\n }\n\n if (values && values instanceof Array) {\n for (const v of values) {\n if (typeof v === 'string' && iconMap.hasOwnProperty(v as string)) {\n return 'image';\n }\n }\n }\n }\n return 'normal';\n }\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n fillImage: {},\n normal: {\n blend: 'additive',\n },\n radar: {},\n simplePoint: {},\n fill: { blend: 'normal' },\n extrude: {},\n image: {},\n text: {\n blend: 'normal',\n },\n vectorpoint: {},\n tile: {},\n earthFill: {},\n earthExtrude: {},\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): PointType {\n const PointTypes = [\n 'fillImage',\n 'fill',\n 'radar',\n 'image',\n 'normal',\n 'simplePoint',\n 'extrude',\n 'text',\n 'vectorpoint',\n 'tile',\n 'earthFill',\n 'earthExtrude',\n ];\n if (this.layerSource.parser.type === 'mvt') {\n return 'vectorpoint';\n }\n\n // pointlayer\n // 2D、 3d、 shape、image、text、normal、\n const layerData = this.getEncodedData();\n const { shape2d, shape3d } = this.getLayerConfig();\n const iconMap = this.iconService.getIconMap();\n const item = layerData.find((fe: IEncodeFeature) => {\n return fe.hasOwnProperty('shape');\n });\n\n if (!item) {\n return this.getModelTypeWillEmptyData();\n } else {\n const shape = item.shape;\n if (shape === 'dot') {\n return 'normal';\n }\n if (shape === 'simple') {\n return 'simplePoint';\n }\n if (shape === 'radar') {\n return 'radar';\n }\n if (this.layerType === 'fillImage') {\n return 'fillImage';\n }\n if (shape2d?.indexOf(shape as string) !== -1) {\n if (this.mapService.version === 'GLOBEL') {\n return 'earthFill';\n } else {\n return 'fill';\n }\n }\n if (shape3d?.indexOf(shape as string) !== -1) {\n if (this.mapService.version === 'GLOBEL') {\n return 'earthExtrude';\n } else {\n return 'extrude';\n }\n }\n if (iconMap.hasOwnProperty(shape as string)) {\n return 'image';\n }\n return 'text';\n }\n }\n}\n"],"file":"index.js"}
@@ -559,6 +559,8 @@ var TextModel = function (_BaseModel) {
559
559
  stencil: getMask(mask, maskInside)
560
560
  }).then(function (model) {
561
561
  _this4.layer.models = [model];
562
+
563
+ _this4.layer.renderLayers();
562
564
  }).catch(function (err) {
563
565
  console.warn(err);
564
566
  _this4.layer.models = [];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/point/models/text.ts"],"names":["AttributeType","gl","boundsContains","calculateCentroid","getMask","padBounds","BaseModel","CollisionIndex","getGlyphQuads","shapeText","TextTriangulation","feature","that","id","vertices","indices","glyphInfoMap","size","centroid","coord","length","glyphQuads","forEach","quad","index","push","tex","x","y","height","tl","width","tr","br","bl","TextModel","callbackModel","layer","getLayerConfig","mask","maskInside","mapping","buildLayerModel","moduleName","vertexShader","textVert","fragmentShader","textFrag","triangulation","bind","depth","enable","blend","getBlend","stencil","then","model","catch","err","console","warn","initGlyph","updateTexture","filterGlyphs","reBuildModel","opacity","stroke","strokeWidth","textAnchor","textAllowOverlap","halo","gamma","raisingHeight","fontService","canvas","Object","keys","textCount","preTextStyle","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","rowCount","dataTexture","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_raisingHeight","Number","u_opacity","u_stroke_width","u_stroke_color","getStrokeColor","u_sdf_map","texture","u_halo_blur","u_gamma_scale","u_sdf_map_size","on","extent","textExtent","buildModels","zoom","mapService","getZoom","getBounds","flag","Math","abs","currentZoom","destroy","off","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","update","featureIdx","vertex","attributeIdx","rotate","Array","isArray","STATIC_DRAW","bounds","fontWeight","fontFamily","characterSet","item","shape","toString","char","indexOf","setFontOptions","iconfont","spacing","glyphInfo","map","textOffset","shaping","coordinates","originCentroid","version","originCoordinates","padding","rendererService","getViewportSize","collisionIndex","filterData","filter","fontScale","pixels","lngLatToContainer","placeCollisionBox","x1","left","x2","right","y1","top","y2","bottom","anchorPointX","anchorPointY","box","insertCollisionBox","initIconFontTex","initTextFont","generateGlyphLayout","textureHeight","mag","LINEAR","min","models"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport {\n boundsContains,\n calculateCentroid,\n getMask,\n padBounds,\n} from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport CollisionIndex from '../../utils/collision-index';\nimport {\n getGlyphQuads,\n IGlyphQuad,\n shapeText,\n} from '../../utils/symbol-layout';\nimport textFrag from '../shaders/text_frag.glsl';\nimport textVert from '../shaders/text_vert.glsl';\n\nexport function TextTriangulation(feature: IEncodeFeature) {\n // @ts-ignore\n const that = this as TextModel;\n const id = feature.id as number;\n const vertices: number[] = [];\n const indices: number[] = [];\n\n if (!that.glyphInfoMap || !that.glyphInfoMap[id]) {\n return {\n vertices: [], // [ x, y, z, tex.x,tex.y, offset.x. offset.y]\n indices: [],\n size: 7,\n };\n }\n const centroid = that.glyphInfoMap[id].centroid as number[]; // 计算中心点\n const coord =\n centroid.length === 2 ? [centroid[0], centroid[1], 0] : centroid;\n that.glyphInfoMap[id].glyphQuads.forEach(\n (quad: IGlyphQuad, index: number) => {\n vertices.push(\n ...coord,\n quad.tex.x,\n quad.tex.y + quad.tex.height,\n quad.tl.x,\n quad.tl.y,\n ...coord,\n quad.tex.x + quad.tex.width,\n quad.tex.y + quad.tex.height,\n quad.tr.x,\n quad.tr.y,\n ...coord,\n quad.tex.x + quad.tex.width,\n quad.tex.y,\n quad.br.x,\n quad.br.y,\n ...coord,\n quad.tex.x,\n quad.tex.y,\n quad.bl.x,\n quad.bl.y,\n );\n indices.push(\n 0 + index * 4,\n 1 + index * 4,\n 2 + index * 4,\n 2 + index * 4,\n 3 + index * 4,\n 0 + index * 4,\n );\n },\n );\n return {\n vertices, // [ x, y, z, tex.x,tex.y, offset.x. offset.y]\n indices,\n size: 7,\n };\n}\n\nexport default class TextModel extends BaseModel {\n public glyphInfo: IEncodeFeature[];\n public glyphInfoMap: {\n [key: string]: {\n shaping: any;\n glyphQuads: IGlyphQuad[];\n centroid: number[];\n };\n } = {};\n private texture: ITexture2D;\n private currentZoom: number = -1;\n private extent: [[number, number], [number, number]];\n private textureHeight: number = 0;\n private textCount: number = 0;\n private preTextStyle: Partial<IPointLayerStyleOptions> = {};\n public getUninforms(): IModelUniform {\n const {\n opacity = 1.0,\n stroke = '#fff',\n strokeWidth = 0,\n textAnchor = 'center',\n textAllowOverlap = false,\n halo = 0.5,\n gamma = 2.0,\n raisingHeight = 0,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const { canvas, mapping } = this.fontService;\n if (Object.keys(mapping).length !== this.textCount) {\n this.updateTexture();\n this.textCount = Object.keys(mapping).length;\n }\n this.preTextStyle = {\n textAnchor,\n textAllowOverlap,\n };\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n strokeWidth,\n stroke,\n })\n ) {\n this.judgeStyleAttributes({\n opacity,\n strokeWidth,\n stroke,\n });\n\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_raisingHeight: Number(raisingHeight),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_stroke_width: isNumber(strokeWidth) ? strokeWidth : 1.0,\n u_stroke_color: this.getStrokeColor(stroke),\n\n u_sdf_map: this.texture,\n u_halo_blur: halo,\n u_gamma_scale: gamma,\n u_sdf_map_size: [canvas.width, canvas.height],\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.layer.on('remapping', this.mapping);\n this.extent = this.textExtent();\n const {\n textAnchor = 'center',\n textAllowOverlap = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.preTextStyle = {\n textAnchor,\n textAllowOverlap,\n };\n this.buildModels(callbackModel);\n }\n\n public buildModels = async (callbackModel: (models: IModel[]) => void) => {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.mapping();\n\n this.layer\n .buildLayerModel({\n moduleName: 'pointText',\n vertexShader: textVert,\n fragmentShader: textFrag,\n triangulation: TextTriangulation.bind(this),\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n };\n public needUpdate() {\n const {\n textAllowOverlap = false,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n // textAllowOverlap 发生改变\n const zoom = this.mapService.getZoom();\n const extent = this.mapService.getBounds();\n const flag = boundsContains(this.extent, extent);\n // 文本不能压盖则进行过滤\n if (\n (!textAllowOverlap && (Math.abs(this.currentZoom - zoom) > 1 || !flag)) ||\n textAllowOverlap !== this.preTextStyle.textAllowOverlap\n ) {\n this.reBuildModel();\n return true;\n }\n return false;\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.layer.off('remapping', this.mapping);\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'rotate',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Rotate',\n buffer: {\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { rotate = 0 } = feature;\n return Array.isArray(rotate) ? [rotate[0]] : [rotate as number];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'textOffsets',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_textOffsets',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5], vertex[6]];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 12 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'textUv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_tex',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n\n private mapping = () => {\n this.initGlyph();\n this.updateTexture();\n this.filterGlyphs();\n this.reBuildModel();\n };\n private textExtent(): [[number, number], [number, number]] {\n const bounds = this.mapService.getBounds();\n return padBounds(bounds, 0.5);\n }\n /**\n * 生成文字纹理(生成文字纹理字典)\n */\n private initTextFont() {\n const {\n fontWeight = '400',\n fontFamily = 'sans-serif',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const data = this.layer.getEncodedData();\n const characterSet: string[] = [];\n data.forEach((item: IEncodeFeature) => {\n let { shape = '' } = item;\n shape = shape.toString();\n for (const char of shape) {\n // 去重\n if (characterSet.indexOf(char) === -1) {\n characterSet.push(char);\n }\n }\n });\n this.fontService.setFontOptions({\n characterSet,\n fontWeight,\n fontFamily,\n iconfont: false,\n });\n }\n\n /**\n * 生成 iconfont 纹理字典\n */\n private initIconFontTex() {\n const {\n fontWeight = '400',\n fontFamily = 'sans-serif',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const data = this.layer.getEncodedData();\n const characterSet: string[] = [];\n data.forEach((item: IEncodeFeature) => {\n let { shape = '' } = item;\n shape = `${shape}`;\n if (characterSet.indexOf(shape) === -1) {\n characterSet.push(shape);\n }\n });\n this.fontService.setFontOptions({\n characterSet,\n fontWeight,\n fontFamily,\n iconfont: true,\n });\n }\n\n /**\n * 生成文字布局(对照文字纹理字典提取对应文字的位置很好信息)\n */\n private generateGlyphLayout(iconfont: boolean) {\n // TODO:更新文字布局\n const { mapping } = this.fontService;\n const {\n spacing = 2,\n textAnchor = 'center',\n // textOffset,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const data = this.layer.getEncodedData();\n\n this.glyphInfo = data.map((feature: IEncodeFeature) => {\n const { shape = '', id, size = 1, textOffset = [0, 0] } = feature;\n\n const shaping = shapeText(\n shape.toString(),\n mapping,\n // @ts-ignore\n size,\n textAnchor,\n 'left',\n spacing,\n textOffset,\n iconfont,\n );\n const glyphQuads = getGlyphQuads(shaping, textOffset, false);\n feature.shaping = shaping;\n feature.glyphQuads = glyphQuads;\n // feature.centroid = calculteCentroid(coordinates);\n\n feature.centroid = calculateCentroid(feature.coordinates);\n\n // 此时地图高德2.0 originCentroid == centroid\n feature.originCentroid =\n feature.version === 'GAODE2.x'\n ? calculateCentroid(feature.originCoordinates)\n : (feature.originCentroid = feature.centroid);\n\n this.glyphInfoMap[id as number] = {\n shaping,\n glyphQuads,\n centroid: calculateCentroid(feature.coordinates),\n };\n return feature;\n });\n }\n /**\n * 文字避让 depend on originCentorid\n */\n private filterGlyphs() {\n const {\n padding = [4, 4],\n textAllowOverlap = false,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n if (textAllowOverlap) {\n // 如果允许文本覆盖\n // this.layer.setEncodedData(this.glyphInfo);\n return;\n }\n this.glyphInfoMap = {};\n this.currentZoom = this.mapService.getZoom();\n this.extent = this.textExtent();\n const { width, height } = this.rendererService.getViewportSize();\n const collisionIndex = new CollisionIndex(width, height);\n const filterData = this.glyphInfo.filter((feature: IEncodeFeature) => {\n const { shaping, id = 0 } = feature;\n // const centroid = feature.centroid as [number, number];\n // const centroid = feature.originCentroid as [number, number];\n const centroid = (feature.version === 'GAODE2.x'\n ? feature.originCentroid\n : feature.centroid) as [number, number];\n const size = feature.size as number;\n const fontScale: number = size / 24;\n const pixels = this.mapService.lngLatToContainer(centroid);\n const { box } = collisionIndex.placeCollisionBox({\n x1: shaping.left * fontScale - padding[0],\n x2: shaping.right * fontScale + padding[0],\n y1: shaping.top * fontScale - padding[1],\n y2: shaping.bottom * fontScale + padding[1],\n anchorPointX: pixels.x,\n anchorPointY: pixels.y,\n });\n if (box && box.length) {\n // TODO:featureIndex\n collisionIndex.insertCollisionBox(box, id);\n return true;\n } else {\n return false;\n }\n });\n filterData.forEach((item) => {\n // @ts-ignore\n this.glyphInfoMap[item.id as number] = item;\n });\n // this.layer.setEncodedData(filterData);\n }\n /**\n * 初始化文字布局\n */\n private initGlyph() {\n const { iconfont = false } = this.layer.getLayerConfig();\n // 1.生成文字纹理(或是生成 iconfont)\n iconfont ? this.initIconFontTex() : this.initTextFont();\n // this.initTextFont();\n\n // 2.生成文字布局\n this.generateGlyphLayout(iconfont);\n }\n /**\n * 更新文字纹理\n */\n private updateTexture() {\n const { createTexture2D } = this.rendererService;\n const { canvas } = this.fontService;\n this.textureHeight = canvas.height;\n if (this.texture) {\n this.texture.destroy();\n }\n\n this.texture = createTexture2D({\n data: canvas,\n mag: gl.LINEAR,\n min: gl.LINEAR,\n width: canvas.width,\n height: canvas.height,\n });\n }\n\n private reBuildModel() {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.filterGlyphs();\n this.layer\n .buildLayerModel({\n moduleName: 'pointText',\n vertexShader: textVert,\n fragmentShader: textFrag,\n triangulation: TextTriangulation.bind(this),\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n this.layer.models = [model];\n })\n .catch((err) => {\n console.warn(err);\n this.layer.models = [];\n });\n }\n}\n"],"file":"text.js"}
1
+ {"version":3,"sources":["../../../src/point/models/text.ts"],"names":["AttributeType","gl","boundsContains","calculateCentroid","getMask","padBounds","BaseModel","CollisionIndex","getGlyphQuads","shapeText","TextTriangulation","feature","that","id","vertices","indices","glyphInfoMap","size","centroid","coord","length","glyphQuads","forEach","quad","index","push","tex","x","y","height","tl","width","tr","br","bl","TextModel","callbackModel","layer","getLayerConfig","mask","maskInside","mapping","buildLayerModel","moduleName","vertexShader","textVert","fragmentShader","textFrag","triangulation","bind","depth","enable","blend","getBlend","stencil","then","model","catch","err","console","warn","initGlyph","updateTexture","filterGlyphs","reBuildModel","opacity","stroke","strokeWidth","textAnchor","textAllowOverlap","halo","gamma","raisingHeight","fontService","canvas","Object","keys","textCount","preTextStyle","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","rowCount","dataTexture","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_raisingHeight","Number","u_opacity","u_stroke_width","u_stroke_color","getStrokeColor","u_sdf_map","texture","u_halo_blur","u_gamma_scale","u_sdf_map_size","on","extent","textExtent","buildModels","zoom","mapService","getZoom","getBounds","flag","Math","abs","currentZoom","destroy","off","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","update","featureIdx","vertex","attributeIdx","rotate","Array","isArray","STATIC_DRAW","bounds","fontWeight","fontFamily","characterSet","item","shape","toString","char","indexOf","setFontOptions","iconfont","spacing","glyphInfo","map","textOffset","shaping","coordinates","originCentroid","version","originCoordinates","padding","rendererService","getViewportSize","collisionIndex","filterData","filter","fontScale","pixels","lngLatToContainer","placeCollisionBox","x1","left","x2","right","y1","top","y2","bottom","anchorPointX","anchorPointY","box","insertCollisionBox","initIconFontTex","initTextFont","generateGlyphLayout","textureHeight","mag","LINEAR","min","models","renderLayers"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport {\n boundsContains,\n calculateCentroid,\n getMask,\n padBounds,\n} from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport CollisionIndex from '../../utils/collision-index';\nimport {\n getGlyphQuads,\n IGlyphQuad,\n shapeText,\n} from '../../utils/symbol-layout';\nimport textFrag from '../shaders/text_frag.glsl';\nimport textVert from '../shaders/text_vert.glsl';\n\nexport function TextTriangulation(feature: IEncodeFeature) {\n // @ts-ignore\n const that = this as TextModel;\n const id = feature.id as number;\n const vertices: number[] = [];\n const indices: number[] = [];\n\n if (!that.glyphInfoMap || !that.glyphInfoMap[id]) {\n return {\n vertices: [], // [ x, y, z, tex.x,tex.y, offset.x. offset.y]\n indices: [],\n size: 7,\n };\n }\n const centroid = that.glyphInfoMap[id].centroid as number[]; // 计算中心点\n const coord =\n centroid.length === 2 ? [centroid[0], centroid[1], 0] : centroid;\n that.glyphInfoMap[id].glyphQuads.forEach(\n (quad: IGlyphQuad, index: number) => {\n vertices.push(\n ...coord,\n quad.tex.x,\n quad.tex.y + quad.tex.height,\n quad.tl.x,\n quad.tl.y,\n ...coord,\n quad.tex.x + quad.tex.width,\n quad.tex.y + quad.tex.height,\n quad.tr.x,\n quad.tr.y,\n ...coord,\n quad.tex.x + quad.tex.width,\n quad.tex.y,\n quad.br.x,\n quad.br.y,\n ...coord,\n quad.tex.x,\n quad.tex.y,\n quad.bl.x,\n quad.bl.y,\n );\n indices.push(\n 0 + index * 4,\n 1 + index * 4,\n 2 + index * 4,\n 2 + index * 4,\n 3 + index * 4,\n 0 + index * 4,\n );\n },\n );\n return {\n vertices, // [ x, y, z, tex.x,tex.y, offset.x. offset.y]\n indices,\n size: 7,\n };\n}\n\nexport default class TextModel extends BaseModel {\n public glyphInfo: IEncodeFeature[];\n public glyphInfoMap: {\n [key: string]: {\n shaping: any;\n glyphQuads: IGlyphQuad[];\n centroid: number[];\n };\n } = {};\n private texture: ITexture2D;\n private currentZoom: number = -1;\n private extent: [[number, number], [number, number]];\n private textureHeight: number = 0;\n private textCount: number = 0;\n private preTextStyle: Partial<IPointLayerStyleOptions> = {};\n public getUninforms(): IModelUniform {\n const {\n opacity = 1.0,\n stroke = '#fff',\n strokeWidth = 0,\n textAnchor = 'center',\n textAllowOverlap = false,\n halo = 0.5,\n gamma = 2.0,\n raisingHeight = 0,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const { canvas, mapping } = this.fontService;\n if (Object.keys(mapping).length !== this.textCount) {\n this.updateTexture();\n this.textCount = Object.keys(mapping).length;\n }\n this.preTextStyle = {\n textAnchor,\n textAllowOverlap,\n };\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n strokeWidth,\n stroke,\n })\n ) {\n this.judgeStyleAttributes({\n opacity,\n strokeWidth,\n stroke,\n });\n\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_raisingHeight: Number(raisingHeight),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_stroke_width: isNumber(strokeWidth) ? strokeWidth : 1.0,\n u_stroke_color: this.getStrokeColor(stroke),\n\n u_sdf_map: this.texture,\n u_halo_blur: halo,\n u_gamma_scale: gamma,\n u_sdf_map_size: [canvas.width, canvas.height],\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.layer.on('remapping', this.mapping);\n this.extent = this.textExtent();\n const {\n textAnchor = 'center',\n textAllowOverlap = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.preTextStyle = {\n textAnchor,\n textAllowOverlap,\n };\n this.buildModels(callbackModel);\n }\n\n public buildModels = async (callbackModel: (models: IModel[]) => void) => {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.mapping();\n\n this.layer\n .buildLayerModel({\n moduleName: 'pointText',\n vertexShader: textVert,\n fragmentShader: textFrag,\n triangulation: TextTriangulation.bind(this),\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n };\n public needUpdate() {\n const {\n textAllowOverlap = false,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n // textAllowOverlap 发生改变\n const zoom = this.mapService.getZoom();\n const extent = this.mapService.getBounds();\n const flag = boundsContains(this.extent, extent);\n // 文本不能压盖则进行过滤\n if (\n (!textAllowOverlap && (Math.abs(this.currentZoom - zoom) > 1 || !flag)) ||\n textAllowOverlap !== this.preTextStyle.textAllowOverlap\n ) {\n this.reBuildModel();\n return true;\n }\n return false;\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.layer.off('remapping', this.mapping);\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'rotate',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Rotate',\n buffer: {\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { rotate = 0 } = feature;\n return Array.isArray(rotate) ? [rotate[0]] : [rotate as number];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'textOffsets',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_textOffsets',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5], vertex[6]];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 12 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'textUv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_tex',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n\n private mapping = () => {\n this.initGlyph();\n this.updateTexture();\n this.filterGlyphs();\n this.reBuildModel();\n };\n private textExtent(): [[number, number], [number, number]] {\n const bounds = this.mapService.getBounds();\n return padBounds(bounds, 0.5);\n }\n /**\n * 生成文字纹理(生成文字纹理字典)\n */\n private initTextFont() {\n const {\n fontWeight = '400',\n fontFamily = 'sans-serif',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const data = this.layer.getEncodedData();\n const characterSet: string[] = [];\n data.forEach((item: IEncodeFeature) => {\n let { shape = '' } = item;\n shape = shape.toString();\n for (const char of shape) {\n // 去重\n if (characterSet.indexOf(char) === -1) {\n characterSet.push(char);\n }\n }\n });\n this.fontService.setFontOptions({\n characterSet,\n fontWeight,\n fontFamily,\n iconfont: false,\n });\n }\n\n /**\n * 生成 iconfont 纹理字典\n */\n private initIconFontTex() {\n const {\n fontWeight = '400',\n fontFamily = 'sans-serif',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const data = this.layer.getEncodedData();\n const characterSet: string[] = [];\n data.forEach((item: IEncodeFeature) => {\n let { shape = '' } = item;\n shape = `${shape}`;\n if (characterSet.indexOf(shape) === -1) {\n characterSet.push(shape);\n }\n });\n this.fontService.setFontOptions({\n characterSet,\n fontWeight,\n fontFamily,\n iconfont: true,\n });\n }\n\n /**\n * 生成文字布局(对照文字纹理字典提取对应文字的位置很好信息)\n */\n private generateGlyphLayout(iconfont: boolean) {\n // TODO:更新文字布局\n const { mapping } = this.fontService;\n const {\n spacing = 2,\n textAnchor = 'center',\n // textOffset,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const data = this.layer.getEncodedData();\n\n this.glyphInfo = data.map((feature: IEncodeFeature) => {\n const { shape = '', id, size = 1, textOffset = [0, 0] } = feature;\n\n const shaping = shapeText(\n shape.toString(),\n mapping,\n // @ts-ignore\n size,\n textAnchor,\n 'left',\n spacing,\n textOffset,\n iconfont,\n );\n const glyphQuads = getGlyphQuads(shaping, textOffset, false);\n feature.shaping = shaping;\n feature.glyphQuads = glyphQuads;\n // feature.centroid = calculteCentroid(coordinates);\n\n feature.centroid = calculateCentroid(feature.coordinates);\n\n // 此时地图高德2.0 originCentroid == centroid\n feature.originCentroid =\n feature.version === 'GAODE2.x'\n ? calculateCentroid(feature.originCoordinates)\n : (feature.originCentroid = feature.centroid);\n\n this.glyphInfoMap[id as number] = {\n shaping,\n glyphQuads,\n centroid: calculateCentroid(feature.coordinates),\n };\n return feature;\n });\n }\n /**\n * 文字避让 depend on originCentorid\n */\n private filterGlyphs() {\n const {\n padding = [4, 4],\n textAllowOverlap = false,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n if (textAllowOverlap) {\n // 如果允许文本覆盖\n // this.layer.setEncodedData(this.glyphInfo);\n return;\n }\n this.glyphInfoMap = {};\n this.currentZoom = this.mapService.getZoom();\n this.extent = this.textExtent();\n const { width, height } = this.rendererService.getViewportSize();\n const collisionIndex = new CollisionIndex(width, height);\n const filterData = this.glyphInfo.filter((feature: IEncodeFeature) => {\n const { shaping, id = 0 } = feature;\n // const centroid = feature.centroid as [number, number];\n // const centroid = feature.originCentroid as [number, number];\n const centroid = (feature.version === 'GAODE2.x'\n ? feature.originCentroid\n : feature.centroid) as [number, number];\n const size = feature.size as number;\n const fontScale: number = size / 24;\n const pixels = this.mapService.lngLatToContainer(centroid);\n const { box } = collisionIndex.placeCollisionBox({\n x1: shaping.left * fontScale - padding[0],\n x2: shaping.right * fontScale + padding[0],\n y1: shaping.top * fontScale - padding[1],\n y2: shaping.bottom * fontScale + padding[1],\n anchorPointX: pixels.x,\n anchorPointY: pixels.y,\n });\n if (box && box.length) {\n // TODO:featureIndex\n collisionIndex.insertCollisionBox(box, id);\n return true;\n } else {\n return false;\n }\n });\n filterData.forEach((item) => {\n // @ts-ignore\n this.glyphInfoMap[item.id as number] = item;\n });\n // this.layer.setEncodedData(filterData);\n }\n /**\n * 初始化文字布局\n */\n private initGlyph() {\n const { iconfont = false } = this.layer.getLayerConfig();\n // 1.生成文字纹理(或是生成 iconfont)\n iconfont ? this.initIconFontTex() : this.initTextFont();\n // this.initTextFont();\n\n // 2.生成文字布局\n this.generateGlyphLayout(iconfont);\n }\n /**\n * 更新文字纹理\n */\n private updateTexture() {\n const { createTexture2D } = this.rendererService;\n const { canvas } = this.fontService;\n this.textureHeight = canvas.height;\n if (this.texture) {\n this.texture.destroy();\n }\n\n this.texture = createTexture2D({\n data: canvas,\n mag: gl.LINEAR,\n min: gl.LINEAR,\n width: canvas.width,\n height: canvas.height,\n });\n }\n\n private reBuildModel() {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.filterGlyphs();\n this.layer\n .buildLayerModel({\n moduleName: 'pointText',\n vertexShader: textVert,\n fragmentShader: textFrag,\n triangulation: TextTriangulation.bind(this),\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n this.layer.models = [model];\n this.layer.renderLayers();\n })\n .catch((err) => {\n console.warn(err);\n this.layer.models = [];\n });\n }\n}\n"],"file":"text.js"}
@@ -172,7 +172,17 @@ export var TileLayerManager = function () {
172
172
  featureId = _ref$featureId === void 0 ? 'id' : _ref$featureId,
173
173
  _ref$workerEnabled = _ref.workerEnabled,
174
174
  workerEnabled = _ref$workerEnabled === void 0 ? false : _ref$workerEnabled,
175
- sourceLayer = _ref.sourceLayer;
175
+ sourceLayer = _ref.sourceLayer,
176
+ _ref$pixelConstant = _ref.pixelConstant,
177
+ pixelConstant = _ref$pixelConstant === void 0 ? 0 : _ref$pixelConstant,
178
+ _ref$pixelConstantR = _ref.pixelConstantR,
179
+ pixelConstantR = _ref$pixelConstantR === void 0 ? 256 * 256 : _ref$pixelConstantR,
180
+ _ref$pixelConstantG = _ref.pixelConstantG,
181
+ pixelConstantG = _ref$pixelConstantG === void 0 ? 256 : _ref$pixelConstantG,
182
+ _ref$pixelConstantB = _ref.pixelConstantB,
183
+ pixelConstantB = _ref$pixelConstantB === void 0 ? 1 : _ref$pixelConstantB,
184
+ _ref$pixelConstantRGB = _ref.pixelConstantRGB,
185
+ pixelConstantRGB = _ref$pixelConstantRGB === void 0 ? 0.1 : _ref$pixelConstantRGB;
176
186
 
177
187
  var colorValue = this.tileConfigManager.getAttributeScale(this.parent, 'color');
178
188
  var sizeValue = this.tileConfigManager.getAttributeScale(this.parent, 'size');
@@ -206,7 +216,12 @@ export var TileLayerManager = function () {
206
216
  domain: domain,
207
217
  rampColors: rampColors,
208
218
  rampColorsData: this.rampColorsData,
209
- workerEnabled: workerEnabled
219
+ workerEnabled: workerEnabled,
220
+ pixelConstant: pixelConstant,
221
+ pixelConstantR: pixelConstantR,
222
+ pixelConstantG: pixelConstantG,
223
+ pixelConstantB: pixelConstantB,
224
+ pixelConstantRGB: pixelConstantRGB
210
225
  };
211
226
  }
212
227
  }, {
@@ -223,6 +238,11 @@ export var TileLayerManager = function () {
223
238
  this.tileConfigManager.setConfig('domain', this.initOptions.domain);
224
239
  this.tileConfigManager.setConfig('clampHigh', this.initOptions.clampHigh);
225
240
  this.tileConfigManager.setConfig('clampLow', this.initOptions.clampLow);
241
+ this.tileConfigManager.setConfig('pixelConstant', this.initOptions.pixelConstant);
242
+ this.tileConfigManager.setConfig('pixelConstantR', this.initOptions.pixelConstantR);
243
+ this.tileConfigManager.setConfig('pixelConstantG', this.initOptions.pixelConstantG);
244
+ this.tileConfigManager.setConfig('pixelConstantB', this.initOptions.pixelConstantB);
245
+ this.tileConfigManager.setConfig('pixelConstantRGB', this.initOptions.pixelConstantRGB);
226
246
  } else {
227
247
  var _this$parent$getAttri, _this$parent$getAttri2, _this$parent$getAttri3;
228
248
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tile/manager/tileLayerManager.ts"],"names":["generateColorRamp","getTileFactory","getLayerShape","getMaskValue","TileConfigManager","TilePickManager","TileLayerManager","parent","mapService","rendererService","pickingService","layerService","children","layerChildren","tilePickManager","tileConfigManager","setSubLayerInitOptipn","setConfigListener","initTileFactory","tile","tileFactory","createTile","initOptions","layers","key","value","map","layer","style","mask","updateLayerConfig","push","layerIDList","refresh","remveLayerList","cacheLayerList","filter","child","includes","id","destroy","layerIndex","indexOf","splice","layerID","forEach","slice","length","checkConfig","normalRender","target","pickRender","getLayerConfig","zIndex","opacity","stroke","strokeWidth","strokeOpacity","clampLow","clampHigh","domain","rampColors","colors","positions","featureId","workerEnabled","sourceLayer","colorValue","getAttributeScale","sizeValue","source","getSource","data","tilesetOptions","coords","layerShape","type","rampColorsData","layerType","shape","color","size","setConfig","getAttribute","scale","on","updateConfigs","updateStyle","updateValue","scaleValue","setStyleAttributeField","layerConfig","config","updateLayersConfig","TileFactory","parser"],"mappings":"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","sourcesContent":["import {\n IInteractionTarget,\n ILayer,\n ILayerService,\n IMapService,\n IPickingService,\n IRendererService,\n ISubLayerInitOptions,\n ITileLayerManager,\n ITilePickManager,\n ScaleAttributeType,\n} from '@antv/l7-core';\nimport { generateColorRamp, IColorRamp, Tile } from '@antv/l7-utils';\nimport { getTileFactory, ITileFactory, TileType } from '../tileFactory';\nimport { getLayerShape, getMaskValue } from '../utils';\nimport TileConfigManager, { ITileConfigManager } from './tileConfigManager';\nimport TilePickManager from './tilePickerManager';\nexport class TileLayerManager implements ITileLayerManager {\n public sourceLayer: string;\n public parent: ILayer;\n public children: ILayer[];\n public mapService: IMapService;\n public rendererService: IRendererService;\n public tilePickManager: ITilePickManager;\n public tileConfigManager: ITileConfigManager;\n private tileFactory: ITileFactory;\n private initOptions: ISubLayerInitOptions;\n private rampColorsData: any;\n constructor(\n parent: ILayer,\n mapService: IMapService,\n rendererService: IRendererService,\n pickingService: IPickingService,\n layerService: ILayerService,\n ) {\n this.parent = parent;\n this.children = parent.layerChildren;\n this.mapService = mapService;\n this.rendererService = rendererService;\n this.tilePickManager = new TilePickManager(\n parent,\n rendererService,\n pickingService,\n this.children,\n layerService,\n );\n this.tileConfigManager = new TileConfigManager();\n\n this.setSubLayerInitOptipn();\n this.setConfigListener();\n this.initTileFactory();\n }\n\n public createTile(tile: Tile) {\n return this.tileFactory.createTile(tile, this.initOptions);\n }\n\n public updateLayersConfig(layers: ILayer[], key: string, value: any) {\n layers.map((layer) => {\n if (key === 'mask') {\n // Tip: 栅格瓦片生效、设置全局的 mask、瓦片被全局的 mask 影响\n layer.style({\n mask: value,\n });\n } else {\n layer.updateLayerConfig({\n [key]: value,\n });\n }\n });\n }\n\n public addChild(layer: ILayer) {\n this.children.push(layer);\n }\n\n public addChilds(layers: ILayer[]) {\n this.children.push(...layers);\n }\n\n public removeChilds(layerIDList: string[], refresh = true) {\n const remveLayerList: ILayer[] = [];\n const cacheLayerList: ILayer[] = [];\n this.children.filter((child) => {\n layerIDList.includes(child.id)\n ? remveLayerList.push(child)\n : cacheLayerList.push(child);\n });\n remveLayerList.map((layer) => layer.destroy(refresh));\n this.children = cacheLayerList;\n }\n\n public removeChild(layer: ILayer) {\n const layerIndex = this.children.indexOf(layer);\n if (layerIndex > -1) {\n this.children.splice(layerIndex, 1);\n }\n layer.destroy();\n }\n\n public getChilds(layerIDList: string[]) {\n return this.children.filter((child) => layerIDList.includes(child.id));\n }\n\n public getChild(layerID: string) {\n return this.children.filter((child) => child.id === layerID)[0];\n }\n\n public clearChild() {\n this.children.forEach((layer: any) => {\n layer.destroy();\n });\n\n this.children.slice(0, this.children.length);\n }\n\n public hasChild(layer: ILayer) {\n return this.children.includes(layer);\n }\n\n public render(): void {\n this.tileConfigManager?.checkConfig(this.parent);\n this.tilePickManager?.normalRender(this.children);\n }\n\n public pickLayers(target: IInteractionTarget) {\n return this.tilePickManager?.pickRender(this.children, target);\n }\n\n private setSubLayerInitOptipn() {\n const {\n zIndex = 0,\n opacity = 1,\n mask = false,\n stroke = '#fff',\n strokeWidth = 0,\n strokeOpacity = 1,\n\n clampLow = true,\n clampHigh = true,\n domain = [0, 1],\n rampColors = {\n colors: [\n 'rgb(166,97,26)',\n 'rgb(223,194,125)',\n 'rgb(245,245,245)',\n 'rgb(128,205,193)',\n 'rgb(1,133,113)',\n ],\n positions: [0, 0.25, 0.5, 0.75, 1.0],\n },\n featureId = 'id',\n workerEnabled = false,\n sourceLayer,\n } = this.parent.getLayerConfig() as ISubLayerInitOptions;\n\n const colorValue = this.tileConfigManager.getAttributeScale(\n this.parent,\n 'color',\n );\n const sizeValue = this.tileConfigManager.getAttributeScale(\n this.parent,\n 'size',\n );\n const source = this.parent.getSource();\n const { coords } = source?.data?.tilesetOptions || {};\n\n const layerShape = getLayerShape(this.parent.type, this.parent);\n\n if (rampColors) {\n // 构建统一的色带贴图\n this.rampColorsData = generateColorRamp(rampColors as IColorRamp);\n }\n\n this.initOptions = {\n layerType: this.parent.type,\n shape: layerShape,\n zIndex,\n opacity,\n sourceLayer,\n coords,\n featureId,\n color: colorValue,\n size: sizeValue,\n mask: getMaskValue(this.parent.type, mask),\n stroke,\n strokeWidth,\n strokeOpacity,\n // raster tiff\n clampLow,\n clampHigh,\n domain,\n rampColors,\n rampColorsData: this.rampColorsData,\n // worker\n workerEnabled,\n };\n }\n\n private setConfigListener() {\n // RasterLayer PolygonLayer LineLayer PointLayer\n // All Tile Layer Need Listen\n this.tileConfigManager.setConfig('opacity', this.initOptions.opacity);\n this.tileConfigManager.setConfig('zIndex', this.initOptions.zIndex);\n this.tileConfigManager.setConfig('mask', this.initOptions.mask);\n\n if (this.parent.type === 'RasterLayer') {\n // Raster Tile Layer Need Listen\n this.tileConfigManager.setConfig(\n 'rampColors',\n this.initOptions.rampColors,\n );\n this.tileConfigManager.setConfig('domain', this.initOptions.domain);\n this.tileConfigManager.setConfig('clampHigh', this.initOptions.clampHigh);\n this.tileConfigManager.setConfig('clampLow', this.initOptions.clampLow);\n } else {\n // Vector Tile Layer Need Listen\n this.tileConfigManager.setConfig('stroke', this.initOptions.stroke);\n this.tileConfigManager.setConfig(\n 'strokeWidth',\n this.initOptions.strokeWidth,\n );\n this.tileConfigManager.setConfig(\n 'strokeOpacity',\n this.initOptions.strokeOpacity,\n );\n this.tileConfigManager.setConfig(\n 'color',\n this.parent.getAttribute('color')?.scale,\n );\n this.tileConfigManager.setConfig(\n 'shape',\n this.parent.getAttribute('shape')?.scale,\n );\n this.tileConfigManager.setConfig(\n 'size',\n this.parent.getAttribute('size')?.scale,\n );\n }\n\n this.tileConfigManager.on('updateConfig', (updateConfigs) => {\n updateConfigs.map((key: string) => {\n this.updateStyle(key);\n return '';\n });\n });\n }\n\n private updateStyle(style: string) {\n let updateValue = null;\n if (['size', 'color', 'shape'].includes(style)) {\n const scaleValue = this.parent.getAttribute(style)?.scale;\n if (!scaleValue) {\n return;\n }\n updateValue = scaleValue;\n this.children.map((child) => {\n this.tileFactory.setStyleAttributeField(\n child,\n style as ScaleAttributeType,\n scaleValue,\n );\n return '';\n });\n } else {\n const layerConfig = this.parent.getLayerConfig() as ISubLayerInitOptions;\n if (!(style in layerConfig)) {\n return;\n }\n // @ts-ignore\n const config = layerConfig[style];\n updateValue = config;\n this.updateLayersConfig(this.children, style, config);\n if (style === 'rampColors' && config) {\n this.rampColorsData = generateColorRamp(config as IColorRamp);\n }\n }\n // @ts-ignore\n this.initOptions[style] = updateValue;\n }\n\n private initTileFactory() {\n const source = this.parent.getSource();\n const TileFactory = getTileFactory(\n this.parent.type as TileType,\n source.parser,\n );\n this.tileFactory = new TileFactory({\n parent: this.parent,\n mapService: this.mapService,\n rendererService: this.rendererService,\n });\n }\n}\n"],"file":"tileLayerManager.js"}
1
+ {"version":3,"sources":["../../../src/tile/manager/tileLayerManager.ts"],"names":["generateColorRamp","getTileFactory","getLayerShape","getMaskValue","TileConfigManager","TilePickManager","TileLayerManager","parent","mapService","rendererService","pickingService","layerService","children","layerChildren","tilePickManager","tileConfigManager","setSubLayerInitOptipn","setConfigListener","initTileFactory","tile","tileFactory","createTile","initOptions","layers","key","value","map","layer","style","mask","updateLayerConfig","push","layerIDList","refresh","remveLayerList","cacheLayerList","filter","child","includes","id","destroy","layerIndex","indexOf","splice","layerID","forEach","slice","length","checkConfig","normalRender","target","pickRender","getLayerConfig","zIndex","opacity","stroke","strokeWidth","strokeOpacity","clampLow","clampHigh","domain","rampColors","colors","positions","featureId","workerEnabled","sourceLayer","pixelConstant","pixelConstantR","pixelConstantG","pixelConstantB","pixelConstantRGB","colorValue","getAttributeScale","sizeValue","source","getSource","data","tilesetOptions","coords","layerShape","type","rampColorsData","layerType","shape","color","size","setConfig","getAttribute","scale","on","updateConfigs","updateStyle","updateValue","scaleValue","setStyleAttributeField","layerConfig","config","updateLayersConfig","TileFactory","parser"],"mappings":"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","sourcesContent":["import {\n IInteractionTarget,\n ILayer,\n ILayerService,\n IMapService,\n IPickingService,\n IRendererService,\n ISubLayerInitOptions,\n ITileLayerManager,\n ITilePickManager,\n ScaleAttributeType,\n} from '@antv/l7-core';\nimport { generateColorRamp, IColorRamp, Tile } from '@antv/l7-utils';\nimport { getTileFactory, ITileFactory, TileType } from '../tileFactory';\nimport { getLayerShape, getMaskValue } from '../utils';\nimport TileConfigManager, { ITileConfigManager } from './tileConfigManager';\nimport TilePickManager from './tilePickerManager';\nexport class TileLayerManager implements ITileLayerManager {\n public sourceLayer: string;\n public parent: ILayer;\n public children: ILayer[];\n public mapService: IMapService;\n public rendererService: IRendererService;\n public tilePickManager: ITilePickManager;\n public tileConfigManager: ITileConfigManager;\n private tileFactory: ITileFactory;\n private initOptions: ISubLayerInitOptions;\n private rampColorsData: any;\n constructor(\n parent: ILayer,\n mapService: IMapService,\n rendererService: IRendererService,\n pickingService: IPickingService,\n layerService: ILayerService,\n ) {\n this.parent = parent;\n this.children = parent.layerChildren;\n this.mapService = mapService;\n this.rendererService = rendererService;\n this.tilePickManager = new TilePickManager(\n parent,\n rendererService,\n pickingService,\n this.children,\n layerService,\n );\n this.tileConfigManager = new TileConfigManager();\n\n this.setSubLayerInitOptipn();\n this.setConfigListener();\n this.initTileFactory();\n }\n\n public createTile(tile: Tile) {\n return this.tileFactory.createTile(tile, this.initOptions);\n }\n\n public updateLayersConfig(layers: ILayer[], key: string, value: any) {\n layers.map((layer) => {\n if (key === 'mask') {\n // Tip: 栅格瓦片生效、设置全局的 mask、瓦片被全局的 mask 影响\n layer.style({\n mask: value,\n });\n } else {\n layer.updateLayerConfig({\n [key]: value,\n });\n }\n });\n }\n\n public addChild(layer: ILayer) {\n this.children.push(layer);\n }\n\n public addChilds(layers: ILayer[]) {\n this.children.push(...layers);\n }\n\n public removeChilds(layerIDList: string[], refresh = true) {\n const remveLayerList: ILayer[] = [];\n const cacheLayerList: ILayer[] = [];\n this.children.filter((child) => {\n layerIDList.includes(child.id)\n ? remveLayerList.push(child)\n : cacheLayerList.push(child);\n });\n remveLayerList.map((layer) => layer.destroy(refresh));\n this.children = cacheLayerList;\n }\n\n public removeChild(layer: ILayer) {\n const layerIndex = this.children.indexOf(layer);\n if (layerIndex > -1) {\n this.children.splice(layerIndex, 1);\n }\n layer.destroy();\n }\n\n public getChilds(layerIDList: string[]) {\n return this.children.filter((child) => layerIDList.includes(child.id));\n }\n\n public getChild(layerID: string) {\n return this.children.filter((child) => child.id === layerID)[0];\n }\n\n public clearChild() {\n this.children.forEach((layer: any) => {\n layer.destroy();\n });\n\n this.children.slice(0, this.children.length);\n }\n\n public hasChild(layer: ILayer) {\n return this.children.includes(layer);\n }\n\n public render(): void {\n this.tileConfigManager?.checkConfig(this.parent);\n this.tilePickManager?.normalRender(this.children);\n }\n\n public pickLayers(target: IInteractionTarget) {\n return this.tilePickManager?.pickRender(this.children, target);\n }\n\n private setSubLayerInitOptipn() {\n const {\n zIndex = 0,\n opacity = 1,\n mask = false,\n stroke = '#fff',\n strokeWidth = 0,\n strokeOpacity = 1,\n\n clampLow = true,\n clampHigh = true,\n domain = [0, 1],\n rampColors = {\n colors: [\n 'rgb(166,97,26)',\n 'rgb(223,194,125)',\n 'rgb(245,245,245)',\n 'rgb(128,205,193)',\n 'rgb(1,133,113)',\n ],\n positions: [0, 0.25, 0.5, 0.75, 1.0],\n },\n featureId = 'id',\n workerEnabled = false,\n sourceLayer,\n\n pixelConstant = 0,\n pixelConstantR = 256 * 256,\n pixelConstantG = 256,\n pixelConstantB = 1,\n pixelConstantRGB = 0.1,\n } = this.parent.getLayerConfig() as ISubLayerInitOptions;\n\n const colorValue = this.tileConfigManager.getAttributeScale(\n this.parent,\n 'color',\n );\n const sizeValue = this.tileConfigManager.getAttributeScale(\n this.parent,\n 'size',\n );\n const source = this.parent.getSource();\n const { coords } = source?.data?.tilesetOptions || {};\n\n const layerShape = getLayerShape(this.parent.type, this.parent);\n\n if (rampColors) {\n // 构建统一的色带贴图\n this.rampColorsData = generateColorRamp(rampColors as IColorRamp);\n }\n\n this.initOptions = {\n layerType: this.parent.type,\n shape: layerShape,\n zIndex,\n opacity,\n sourceLayer,\n coords,\n featureId,\n color: colorValue,\n size: sizeValue,\n mask: getMaskValue(this.parent.type, mask),\n stroke,\n strokeWidth,\n strokeOpacity,\n // raster tiff\n clampLow,\n clampHigh,\n domain,\n rampColors,\n rampColorsData: this.rampColorsData,\n // worker\n workerEnabled,\n\n pixelConstant,\n pixelConstantR,\n pixelConstantG,\n pixelConstantB,\n pixelConstantRGB,\n };\n }\n\n private setConfigListener() {\n // RasterLayer PolygonLayer LineLayer PointLayer\n // All Tile Layer Need Listen\n this.tileConfigManager.setConfig('opacity', this.initOptions.opacity);\n this.tileConfigManager.setConfig('zIndex', this.initOptions.zIndex);\n this.tileConfigManager.setConfig('mask', this.initOptions.mask);\n\n if (this.parent.type === 'RasterLayer') {\n // Raster Tile Layer Need Listen\n this.tileConfigManager.setConfig(\n 'rampColors',\n this.initOptions.rampColors,\n );\n this.tileConfigManager.setConfig('domain', this.initOptions.domain);\n this.tileConfigManager.setConfig('clampHigh', this.initOptions.clampHigh);\n this.tileConfigManager.setConfig('clampLow', this.initOptions.clampLow);\n\n this.tileConfigManager.setConfig(\n 'pixelConstant',\n this.initOptions.pixelConstant,\n );\n this.tileConfigManager.setConfig(\n 'pixelConstantR',\n this.initOptions.pixelConstantR,\n );\n this.tileConfigManager.setConfig(\n 'pixelConstantG',\n this.initOptions.pixelConstantG,\n );\n this.tileConfigManager.setConfig(\n 'pixelConstantB',\n this.initOptions.pixelConstantB,\n );\n this.tileConfigManager.setConfig(\n 'pixelConstantRGB',\n this.initOptions.pixelConstantRGB,\n );\n } else {\n // Vector Tile Layer Need Listen\n this.tileConfigManager.setConfig('stroke', this.initOptions.stroke);\n this.tileConfigManager.setConfig(\n 'strokeWidth',\n this.initOptions.strokeWidth,\n );\n this.tileConfigManager.setConfig(\n 'strokeOpacity',\n this.initOptions.strokeOpacity,\n );\n this.tileConfigManager.setConfig(\n 'color',\n this.parent.getAttribute('color')?.scale,\n );\n this.tileConfigManager.setConfig(\n 'shape',\n this.parent.getAttribute('shape')?.scale,\n );\n this.tileConfigManager.setConfig(\n 'size',\n this.parent.getAttribute('size')?.scale,\n );\n }\n\n this.tileConfigManager.on('updateConfig', (updateConfigs) => {\n updateConfigs.map((key: string) => {\n this.updateStyle(key);\n return '';\n });\n });\n }\n\n private updateStyle(style: string) {\n let updateValue = null;\n if (['size', 'color', 'shape'].includes(style)) {\n const scaleValue = this.parent.getAttribute(style)?.scale;\n if (!scaleValue) {\n return;\n }\n updateValue = scaleValue;\n this.children.map((child) => {\n this.tileFactory.setStyleAttributeField(\n child,\n style as ScaleAttributeType,\n scaleValue,\n );\n return '';\n });\n } else {\n const layerConfig = this.parent.getLayerConfig() as ISubLayerInitOptions;\n if (!(style in layerConfig)) {\n return;\n }\n // @ts-ignore\n const config = layerConfig[style];\n updateValue = config;\n this.updateLayersConfig(this.children, style, config);\n if (style === 'rampColors' && config) {\n this.rampColorsData = generateColorRamp(config as IColorRamp);\n }\n }\n // @ts-ignore\n this.initOptions[style] = updateValue;\n }\n\n private initTileFactory() {\n const source = this.parent.getSource();\n const TileFactory = getTileFactory(\n this.parent.type as TileType,\n source.parser,\n );\n this.tileFactory = new TileFactory({\n parent: this.parent,\n mapService: this.mapService,\n rendererService: this.rendererService,\n });\n }\n}\n"],"file":"tileLayerManager.js"}
@@ -38,13 +38,6 @@ export default class ExtrudePolyline {
38
38
  startIndex: number;
39
39
  indexes: number[];
40
40
  };
41
- simpleExtrude_gaode2(points: number[][], originPoints: number[][]): {
42
- positions: number[];
43
- indices: number[];
44
- normals: number[];
45
- startIndex: number;
46
- indexes: number[];
47
- };
48
41
  extrude(points: number[][]): {
49
42
  positions: number[];
50
43
  indices: number[];
@@ -52,15 +45,7 @@ export default class ExtrudePolyline {
52
45
  startIndex: number;
53
46
  indexes: number[];
54
47
  };
55
- simpleExtrude(points: number[][]): {
56
- positions: number[];
57
- indices: number[];
58
- normals: number[];
59
- startIndex: number;
60
- indexes: number[];
61
- };
62
48
  private segment_gaode2;
63
- private simpleSegment;
64
49
  private segment;
65
50
  private extrusions;
66
51
  private lineSegmentDistance;
@@ -132,46 +132,6 @@ var ExtrudePolyline = function () {
132
132
  return complex;
133
133
  }
134
134
  }, {
135
- key: "simpleExtrude_gaode2",
136
- value: function simpleExtrude_gaode2(points, originPoints) {
137
- var complex = this.complex;
138
-
139
- if (points.length <= 1) {
140
- return complex;
141
- }
142
-
143
- this.lastFlip = -1;
144
- this.started = false;
145
- this.normal = null;
146
- this.totalDistance = 0;
147
- var total = points.length;
148
- var count = complex.startIndex;
149
-
150
- for (var i = 1; i < total; i++) {
151
- var _originPoints$3, _originPoints$i$2, _originPoints$4;
152
-
153
- var last = points[i - 1];
154
- last.push((_originPoints$3 = originPoints[i - 1][2]) !== null && _originPoints$3 !== void 0 ? _originPoints$3 : 0);
155
- var originLast = originPoints[i - 1];
156
- var cur = points[i];
157
- cur.push((_originPoints$i$2 = originPoints[i][2]) !== null && _originPoints$i$2 !== void 0 ? _originPoints$i$2 : 0);
158
- var originCur = originPoints[i];
159
- var next = i < points.length - 1 ? [].concat(_toConsumableArray(points[i + 1]), [(_originPoints$4 = originPoints[i + 1][2]) !== null && _originPoints$4 !== void 0 ? _originPoints$4 : 0]) : null;
160
- var originNext = i < originPoints.length - 1 ? originPoints[i + 1] : null;
161
- var amt = this.simpleSegment(complex, count, last, cur, next, originLast, originCur, originNext);
162
- count += amt;
163
- }
164
-
165
- if (this.dash) {
166
- for (var _i2 = 0; _i2 < complex.positions.length / 6; _i2++) {
167
- complex.positions[_i2 * 6 + 5] = this.totalDistance;
168
- }
169
- }
170
-
171
- complex.startIndex = complex.positions.length / 6;
172
- return complex;
173
- }
174
- }, {
175
135
  key: "extrude",
176
136
  value: function extrude(points) {
177
137
  var complex = this.complex;
@@ -196,41 +156,8 @@ var ExtrudePolyline = function () {
196
156
  }
197
157
 
198
158
  if (this.dash) {
199
- for (var _i3 = 0; _i3 < complex.positions.length / 6; _i3++) {
200
- complex.positions[_i3 * 6 + 5] = this.totalDistance;
201
- }
202
- }
203
-
204
- complex.startIndex = complex.positions.length / 6;
205
- return complex;
206
- }
207
- }, {
208
- key: "simpleExtrude",
209
- value: function simpleExtrude(points) {
210
- var complex = this.complex;
211
-
212
- if (points.length <= 1) {
213
- return complex;
214
- }
215
-
216
- this.lastFlip = -1;
217
- this.started = false;
218
- this.normal = null;
219
- this.totalDistance = 0;
220
- var total = points.length;
221
- var count = complex.startIndex;
222
-
223
- for (var i = 1; i < total; i++) {
224
- var last = points[i - 1];
225
- var cur = points[i];
226
- var next = i < points.length - 1 ? points[i + 1] : null;
227
- var amt = this.simpleSegment(complex, count, last, cur, next);
228
- count += amt;
229
- }
230
-
231
- if (this.dash) {
232
- for (var _i4 = 0; _i4 < complex.positions.length / 6; _i4++) {
233
- complex.positions[_i4 * 6 + 5] = this.totalDistance;
159
+ for (var _i2 = 0; _i2 < complex.positions.length / 6; _i2++) {
160
+ complex.positions[_i2 * 6 + 5] = this.totalDistance;
234
161
  }
235
162
  }
236
163
 
@@ -360,65 +287,6 @@ var ExtrudePolyline = function () {
360
287
  return count;
361
288
  }
362
289
  }, {
363
- key: "simpleSegment",
364
- value: function simpleSegment(complex, index, last, cur, next) {
365
- var count = 0;
366
- var indices = complex.indices;
367
- var positions = complex.positions;
368
- var normals = complex.normals;
369
- var flatCur = aProjectFlat([cur[0], cur[1]]);
370
- var flatLast = aProjectFlat([last[0], last[1]]);
371
- direction(lineA, flatCur, flatLast);
372
- var segmentDistance = 0;
373
-
374
- if (this.dash) {
375
- segmentDistance = this.lineSegmentDistance(flatCur, flatLast);
376
- this.totalDistance += segmentDistance;
377
- }
378
-
379
- if (!this.normal) {
380
- this.normal = vec2.create();
381
- computeNormal(this.normal, lineA);
382
- }
383
-
384
- if (!this.started) {
385
- this.started = true;
386
- this.extrusions(positions, normals, last, this.normal, this.thickness, this.totalDistance - segmentDistance);
387
- }
388
-
389
- indices.push(index + 0, index + 1, index + 2);
390
-
391
- if (!next) {
392
- computeNormal(this.normal, lineA);
393
- this.extrusions(positions, normals, cur, this.normal, this.thickness, this.totalDistance);
394
- indices.push.apply(indices, _toConsumableArray(this.lastFlip === 1 ? [index, index + 2, index + 3] : [index + 2, index + 1, index + 3]));
395
- count += 2;
396
- } else {
397
- var flatNext = aProjectFlat([next[0], next[1]]);
398
-
399
- if (isPointEqual(flatCur, flatNext)) {
400
- vec2.add(flatNext, flatCur, vec2.normalize(flatNext, vec2.subtract(flatNext, flatCur, flatLast)));
401
- }
402
-
403
- direction(lineB, flatNext, flatCur);
404
-
405
- var _computeMiter3 = computeMiter(tangent, vec2.create(), lineA, lineB, this.thickness),
406
- _computeMiter4 = _slicedToArray(_computeMiter3, 2),
407
- miterLen = _computeMiter4[0],
408
- miter = _computeMiter4[1];
409
-
410
- var flip = vec2.dot(tangent, this.normal) < 0 ? -1 : 1;
411
- this.extrusions(positions, normals, cur, miter, miterLen, this.totalDistance);
412
- indices.push.apply(indices, _toConsumableArray(this.lastFlip === 1 ? [index, index + 2, index + 3] : [index + 2, index + 1, index + 3]));
413
- flip = -1;
414
- vec2.copy(this.normal, miter);
415
- count += 2;
416
- this.lastFlip = flip;
417
- }
418
-
419
- return count;
420
- }
421
- }, {
422
290
  key: "segment",
423
291
  value: function segment(complex, index, last, cur, next) {
424
292
  var count = 0;
@@ -496,10 +364,10 @@ var ExtrudePolyline = function () {
496
364
 
497
365
  direction(lineB, flatNext, flatCur);
498
366
 
499
- var _computeMiter5 = computeMiter(tangent, vec2.create(), lineA, lineB, this.thickness),
500
- _computeMiter6 = _slicedToArray(_computeMiter5, 2),
501
- miterLen = _computeMiter6[0],
502
- miter = _computeMiter6[1];
367
+ var _computeMiter3 = computeMiter(tangent, vec2.create(), lineA, lineB, this.thickness),
368
+ _computeMiter4 = _slicedToArray(_computeMiter3, 2),
369
+ miterLen = _computeMiter4[0],
370
+ miter = _computeMiter4[1];
503
371
 
504
372
  var flip = vec2.dot(tangent, this.normal) < 0 ? -1 : 1;
505
373
  var bevel = joinBevel;