首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数据驱动改变大geojson颜色的性能(与使用setPaintProperty相比)

使用数据驱动改变大geojson颜色的性能(与使用setPaintProperty相比)
EN

Stack Overflow用户
提问于 2017-12-22 13:30:11
回答 1查看 170关注 0票数 1

我一直在将多边形的FeatureCollection渲染到贴图中(在一个GeoJSONLayer中)。每个多边形的大小都很大(5mb,10mb)。通过用户交互,多边形的颜色将不断地重新计算和更改。我们使用data-driven方法,并将数据保存在每个特征的属性中。因此,每当数据和颜色发生变化时,GeoJSONLayer都必须调用.setData(geojson) (它们保存在属性中)。我发现上面的方法导致了性能问题,因为geojsons的大小和调用.setData()的开销都很大。我正在考虑分离geojson源和数据,无论何时颜色改变,样式、着色和调用直接function (setPaintProperty)都会比。

有人告诉我,.setData.setPaintProperty会做同样的事情,两个都会触发重新渲染整个多边形。

在这件事上需要帮助。

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2017-12-22 17:26:59

如果我没理解错的话,你是在问这两个中哪一个更快:

代码语言:javascript
复制
map.setData(mylayer, mygeojson)

map.setPaintProperty(mylayer, 'fill-color', ...mydatadrivenproperty)

我还没有测试过,但我假设第二个更快,因为第一个必须:

将GeoJSON

  • Convert it解析为向量tiles

  • Repaint

而第二个只需要解析属性repaint。两个都试一试,看看。

您还可以考虑第三种方法,即拥有第二层,这是一个亮点,您可以通过调用map.setFilter(mylayer, ...)来更新它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47936287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档