果てしない探索の末、壁にぶち当たりました。多くのラベルを使用する OpenLayers マップがあります。私の 2 つのオプションは、Popup クラスまたはラベル付きの Vector Feature を使用することです。Popup クラスを使用してみましたが、レイヤの更新時に DOM に非常に負荷がかかり、CPU 負荷の約 75% を占めます (Chrome Developer CPU Profiling で検証)。ポップアップからラベル付きのベクトル機能に切り替えた後、すべてのプロセッサーの重みが DOM から解放され、すべてがスムーズに実行されるようになりました。ただし、唯一の問題は、ラベルの後ろに単色のボックスが表示されないことです。
ラベルは、テキストおよび tspan svg 要素内でレンダリングされます。私が読んだことから、テキストまたは tspan の属性を使用して背景色のプロパティを指定する方法はありません。これは無限の検索です。getBBox を使用してテキスト要素の周りに四角形を追加することはできますが、OpenLayers は tspan 要素を管理し、OpenLayers と一緒にそれを操作することは不可能に思えます。
次に、四角形のラベル付きベクター フィーチャを追加できると考えていました。ただし、ここでは、ラベルの正確なサイズとその背後に長方形を描画する方法はありません。多分これは不可能です。うまくいけば、あなたの一人が解決策を知っています。ありがとう。