我一直在将多边形的FeatureCollection渲染到贴图中(在一个GeoJSONLayer中)。每个多边形的大小都很大(5mb,10mb)。通过用户交互,多边形的颜色将不断地重新计算和更改。我们使用data-driven方法,并将数据保存在每个特征的属性中。因此,每当数据和颜色发生变化时,GeoJSONLayer都必须调用.setData(geojson) (它们保存在属性中)。我发现上面的方法导致了性能问题,因为geojsons的大小和调用.setData()的开销都很大。我正在考虑分离geojson源和数据,无论何时颜色改变,样式、着色和调用直接function (setPaintProperty)都会比。
有人告诉我,.setData和.setPaintProperty会做同样的事情,两个都会触发重新渲染整个多边形。
在这件事上需要帮助。
非常感谢!
发布于 2017-12-22 17:26:59
如果我没理解错的话,你是在问这两个中哪一个更快:
map.setData(mylayer, mygeojson)
map.setPaintProperty(mylayer, 'fill-color', ...mydatadrivenproperty)我还没有测试过,但我假设第二个更快,因为第一个必须:
将GeoJSON
的
而第二个只需要解析属性repaint。两个都试一试,看看。
您还可以考虑第三种方法,即拥有第二层,这是一个亮点,您可以通过调用map.setFilter(mylayer, ...)来更新它。
https://stackoverflow.com/questions/47936287
复制相似问题