【发布时间】:2021-06-04 16:30:56
【问题描述】:
Openlayers 6.5.0 (https://openlayers.org/en/latest/apidoc/module-ol_layer_Vector-VectorLayer.html) 的文档提到了 Vector Layers 的以下属性:
| Name | Type | Description |
|---|---|---|
| renderOrder | module:ol/render~OrderFunction | Render order. Function to be used when sorting features before rendering. By default features are drawn in the order that they are created. Use null to avoid the sort, but get an undefined draw order. |
这很不清楚,据我检查,文档和论坛中都没有示例。该代码似乎表明 sort() 函数适用于这些功能。所以,我尝试了以下方法:
...
renderOrder: function(a, b){
return {b.getGeometry().getLastCoordinate() - a.getGeometry().getLastCoordinate()};
},
...
我已经尝试了 First/Last 和 a/b 的所有 4 种组合,但它并没有改变任何东西。有人知道我们如何在矢量图层中对特征的渲染进行排序,以便它们是 y 排序的吗? (顶部最低 y/lat)
【问题讨论】:
-
从另一个数组中减去一个 [x, y] 数组不会返回数字。对于 y 坐标,请尝试
b.getGeometry().getLastCoordinate()[1] - a.getGeometry().getLastCoordinate()[1] -
非常感谢@Mike!我真的很难理解文档,并且误解了“Last”坐标的含义。我会相应地发布答案。
标签: javascript gis openlayers openlayers-6