前言
cesium 官網的api文檔介紹地址cesium官網api,里面詳細的介紹 cesium 各個類的介紹,還有就是在線例子:cesium 官網在線例子,這個也是學習 cesium 的好素材。
該篇文章實現的自定義氣泡窗口是基於修改 cesium 源代碼基礎上,這種做法只是援兵之計,湊合應付的,投機取巧罷了,實際上是不太適合的,cesium api 更新版本替換,又得手動的去設置一下源代碼;本篇則是從另一個角度真正的實現了自定義氣泡窗口,氣泡窗口的樣式定義則是 leaflet 風格的,效果截圖如下:
具體實現思路
- 氣泡窗口 css 樣式
/*leaflet風格氣泡窗口樣式模板*/ .leaflet-popup { position: absolute; text-align: center; } .leaflet-popup-close-button { position: absolute; top: 0; right: 0; padding: 4px 4px 0 0; text-align: center; width: 18px; height: 14px; font: 16px/14px Tahoma, Verdana, sans-serif; color: #c3c3c3; text-decoration: none; font-weight: bold; background: transparent; } .leaflet-popup-content-wrapper { text-align: center; max-height: 200px; overflow-y: auto; background: white; box-shadow: 0 3px 14px rgba(0,0,0,0.4); padding: 1px; text-align: left; border-radius: 12px; } .leaflet-popup-content { margin: 13px 19px; line-height: 1.4; } .leaflet-popup-tip-container { margin: 0 auto; width: 40px; height: 20px; position: relative; overflow: hidden; } .leaflet-popup-tip { background: white; box-shadow: 0 3px 14px rgba(0,0,0,0.4); width: 17px; height: 17px; padding: 1px; margin: -10px auto 0; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); -o-transform: rotate(45deg); transform: rotate(45deg); }
- 氣泡窗口 div 面板
//動態添加氣泡窗口DIV var infoDiv = '<div id="trackPopUp" style="display:none;">'+ '<div id="trackPopUpContent" class="leaflet-popup" style="top:5px;left:0;">'+ '<a class="leaflet-popup-close-button" href="#">×</a>'+ '<div class="leaflet-popup-content-wrapper">'+ '<div id="trackPopUpLink" class="leaflet-popup-content" style="max-width: 300px;"></div>'+ '</div>'+ '<div class="leaflet-popup-tip-container">'+ '<div class="leaflet-popup-tip"></div>'+ '</div>'+ '</div>'+ '</div>'; $("#"+cesium.mapDivId).append(infoDiv);
氣泡窗口 div 面板看實際情況的,也可以設置在頁面 htm l里面,我這里由於需要,是在 js 動態添加進來的。
更多的詳情見:GIS之家小專欄
文章尾部提供源代碼下載,對本專欄感興趣的話,可以關注一波