? ? ?openlayers3中記載geojson文件,其實沒有那么難,官網有例子,網上有demo,是呀,加載個圖形,線段或者點的很容易,但是哥這次加載的是一幅json格式的室內地圖(高逼格),各種圖形錯綜復雜,交疊更替,一會上一會下,額。說哪去了。。小伙伴不要想多哦~ (壞笑),由此來說,不可避免的就是要素的互相遮蓋導致顯示不全的問題。
? ? 事情的起因是這樣的,我用了一個很普通的矢量圖層,ol.source.Vector來放置json要素,為了提高加載效率呢,我選擇了ol.layer.Image來作為要素的承載圖層,運行結果是當縮放級別不是很大的時候顯示的很全,但是進一步縮放的話呢,會出現部分要素圖形消失或者移位。我了個去,見鬼了塞,經過多方調試,最終無恥的我判定是ol3的bug(壞笑再一次)。
? ? 算了,還是按套路出牌的吧,改成用ol.layer.vector來作為要素的承載圖層,咦?果然好了。圖形要素不會無緣無故的消失了,也不會移位了,但是有些圖形壓根就不顯示了,我了個去。。這次也按套路出牌了,怎么還不行?好吧,calm down baby,再確認了圖形以及加載邏輯沒問題的情況下,我開始將目光慢慢的轉向用于渲染的style這個家伙了,在加載geojson的時候是json里面的特定的順序加載的,白話來講就是一層壓一層,假如最上面那層是個大的要素,還是最后被渲染,就是不是就慘了,前面的圖形要素全被無情的壓在了下面。。(不要笑!壞銀)好吧,解決問題的方法隨之而來,那就是把大塊的作為底圖的要素不管你啥時候加載(加載順序可能是隨機的),就讓你保持在最下面。。(還笑,嘿嘿我也不是什么好人)?
? ?慶幸的是Ol3中提供這樣了利器,那就是zIndex,如下圖。
? 將最大塊的作為底圖的要素的style的zIndex設置成1000,其他上面的設置成2000。這樣子事情完美解決了!
? ?誰也不會壓著誰了。。吼吼吼^_^