我一直在将多边形的FeatureCollection渲染到Map中(在一个GeoJSONLayer
中)。每个多边形的大小很大(5mb,10mb)。通过用户交互,可以重新计算多边形的颜色。不断变化。我们使用data-driven
方法并将数据保存在每个要素的属性中。因此,GeoJSONLayer
每次数据和颜色发生变化时都必须调用.setData(geojson)
(它们保存在属性中)。
我发现上面的方法会导致性能问题,因为geojsons
的大小很大而且调用.setData()
很昂贵。
我想要分离geojson源和数据,样式,着色并直接调用function (setPaintProperty)
,只要颜色变好就会好。
有人告诉我,.setData
和.setPaintProperty
会做同样的事情,两者都会触发重新渲染整个多边形。
请就此事提供建议
非常感谢!
答案 0 :(得分:0)
如果我理解正确,你会问这两个中哪一个更快:
map.setData(mylayer, mygeojson)
map.setPaintProperty(mylayer, 'fill-color', ...mydatadrivenproperty)
我没有测试过,但我认为第二个更快,因为第一个必须:
而第二个只需要解析属性重绘。试试看他们两个。
你也可以考虑第三种方法,即第二层是一个突出显示,你可以通过调用map.setFilter(mylayer, ...)
来更新。