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

? 將最大塊的作為底圖的要素的style的zIndex設(shè)置成1000,其他上面的設(shè)置成2000。這樣子事情完美解決了!
? ?誰也不會壓著誰了。。吼吼吼^_^