Skip to content

Conversation

@deyihu
Copy link
Collaborator

@deyihu deyihu commented Nov 28, 2025

优化vt数据 feature.geometry的 worker数据传输

问题分析:

  • pick时需要feature.geometry 信息,这个用户的必要的需求
  • getRenderedFeatures需要 geomety 信息
  • pick是大众需求,getRenderedFeatures是小众需求,即pick 使用的概率要远远高于getRenderedFeatures

改进方案:

  • worker里总是返回全量的feature.geometry信息
  • 将全量的features信息编码成typearray
  • 主线程里按需解码对应的瓦片,补全featuer geometry的信息
  • 每个瓦片只需要解码一次

优点:

  • 保证worker返回主线程的通信效率的稳定,不会因为返回feature.geometry导致传输效率下降
  • pick时只需要解码一个瓦片,原来老的方式当用户配置了pickingGeometry,每个瓦片都要进行worker的数据结构化的,假设当前有20个瓦片,意味着需要worker传输20个features集合,而pick是一个瓦片,原来的方式浪费严重

缺点:

  • 需要再主线程里解码 typearray
  • 当用户getRenderedFeatures时,要解码所有的瓦片,还不如原来的 worker clone geometry,但是毕竟是小众需求,总体而已比原来的方式要好一点

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant