Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Mapbox性能-分离层与setData与过滤器_Performance_Mapbox_Mapbox Gl Js - Fatal编程技术网

Performance Mapbox性能-分离层与setData与过滤器

Performance Mapbox性能-分离层与setData与过滤器,performance,mapbox,mapbox-gl-js,Performance,Mapbox,Mapbox Gl Js,关于在mapbox中处理相当大(5MB)的GeoJSON数据集,是否有任何指导信息 我有3-4,我需要在一张地图上显示和切换。我是否最好合并数据源并在图层上使用过滤器来选择我想要的数据?还是最好创建3-4层并根据需要显示/隐藏?或者最好是使用一个层并通过层上的setData输入数据?这个问题的答案取决于您的性能瓶颈: 如果瓶颈是向工作线程传输数据或从工作线程传输数据,则使用setFilter将消除向工作线程传输数据的需要 如果瓶颈是过滤工作线程中的数据,并且您可以更有效地预处理该数据,那么使用

关于在mapbox中处理相当大(5MB)的GeoJSON数据集,是否有任何指导信息


我有3-4,我需要在一张地图上显示和切换。我是否最好合并数据源并在图层上使用
过滤器
来选择我想要的数据?还是最好创建3-4层并根据需要显示/隐藏?或者最好是使用一个层并通过层上的
setData
输入数据?

这个问题的答案取决于您的性能瓶颈:

  • 如果瓶颈是向工作线程传输数据或从工作线程传输数据,则使用
    setFilter
    将消除向工作线程传输数据的需要
  • 如果瓶颈是过滤工作线程中的数据,并且您可以更有效地预处理该数据,那么使用
    setData
    将消除过滤工作线程中数据的需要
  • 如果您有大量可用内存,并且需要快速显示/隐藏层,那么最好创建3-4个单独的层并根据需要显示/隐藏

瓶颈将取决于数据、使用模式和设备。和往常一样,我建议做任何最简单的事情&如果性能不够好,就进行评测

谢谢你的信息,卢卡斯。请原谅我的否认,但我不确定您所说的将数据传输到工作线程和从工作线程传输数据是什么意思,因为我没有意识到使用工作线程。你能详细说明一下吗?我对性能瓶颈的印象是,这是客户端渲染,但我不是100%。我特别欢迎关于在mapbox中测量和识别瓶颈的任何提示。我有同样的问题,并且希望@lucas wojciechowski能够更清楚地了解如何衡量瓶颈是在工作线程之间传输数据还是在工作线程内部进行过滤@我的理解是,
mapboxgljs
在内部使用工作线程。