簡體   English   中英

OpenLayers-在標記的矢量要素周圍繪制一個框

[英]OpenLayers - Draw a box around labeled vector feature

經過無休止的搜索,我撞到了牆。 我有一個使用許多標簽的OpenLayers地圖。 我的兩個選擇是使用Popup類或帶有標簽的Vector Feature。 我曾嘗試使用Popup類,但是在更新該層時,DOM非常沉重,約占CPU負載的75%(已通過Chrome Developer CPU Profiling驗證)。 從帶有標簽的彈出窗口切換到矢量功能后,所有處理器的權重都減輕了DOM的負擔,現在一切運行順利。 但是,唯一的問題是我在標簽后面找不到純色框。

標簽將在text和tspan svg元素內呈現。 根據我的閱讀,無法使用text或tspan的屬性指定backcolor屬性。 這是無止境的搜索。 我可以使用getBBox在text元素周圍添加一個rect,但是OpenLayers管理tspan元素,並與OpenLayers一起操縱它似乎是不可能的。

接下來,我想我可以添加一個標記的矢量特征,即矩形。 但是,這里沒有辦法以標簽的確切大小及其后面繪制矩形。 也許這是不可能的。 希望你們中的一個知道解決方案。 謝謝。

我想到了。 一旦我花了一些時間在GitHub上查看OpenLayers,我就知道了在查看Popup類。 首先,必須將autosize設置為false,並且除了contentsize之外還必須設置size屬性。 由於contentsize是構造函數的一部分,因此必須在初始化后顯式設置popup.size。 這將阻止setSize()方法的執行,這會將負載減少約50%。 然后,我去修改了該類並刪除了大量的事件處理程序。 這兩種方法將CPU負載減少了約50-75%。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM