此篇部落格主要講述cesium 繪製經緯度柵格網路及平滑顯示柵格經緯度曲線功能.查了一些資料,感謝下邊兩位大佬的分享繪製經緯度及標註和 cesium畫線不光滑.本人是站在巨人的肩膀上完成此篇部落格.
主要實現方法很簡單就是,迴圈在三維球上繪製polyline,經緯度疊加後呈現出來的就是經緯度網格效果;
一.繪製經度線
const viewer =
newcesium.viewer
("cesiumcontainer");
const entities = viewer.entities;
//每隔20讀繪製一條經度線和經度標註,自己控制間隔
for(
let lang =
-180
; lang <=
180; lang +=20)
text += lang ===0?
"":""+ lang +
"°";
if(lang ===
-180
) entities.
add(
, label:,});}
二.繪製緯度線//緯度
let langs =
;for
(let lang =
-180
; lang <=
180; lang +=5)
//每隔10讀繪製一條緯度線和緯度標註,自己控制間隔
for(
let lat =-80
; lat <=
80; lat +=10)
entities.
add().
join
(",").
split
(",").
map(
(item)
=>
number
(item)))
, width:
1.0,
material: cesium.color.
white,}
, label:,});}
完成以上兩步,三維球即可顯示繪製出的經緯度柵格.如圖所示,拉近視角可以看出繪製經緯線呈鋸齒狀;只有在垂直視角才會顯示為一條直線;這就需要參考第二篇文章了.
三.設定解析度,配置cesium抗鋸齒;
if
(cesium.featuredetection.
supportsimagerenderingpixelated()
)//開啟抗鋸齒
viewer.scene.fxaa =
true
;viewer.scene.postprocessstages.fxaa.enabled =
true
;
cesium sandcastle檢視效果及**.
問題
開啟抗鋸齒,只是把突出的鋸齒磨掉了.polyline還是會明暗隔間,未找到優化方法,歡迎指教.
因為繪製的是一段一段的曲線,所以高度拉到500以下超出迴圈繪製範圍時,繪製的經緯度線會顯示為虛線.我的處理方法是,判斷相機高度.低於1km隱藏柵格線.
cesium公尺轉換經緯度 Cesium座標轉換
笛卡爾空間座標的原點就是橢球的中心。在實際應用中用的最多的操作就是 lng,lat,alt x,y,z 之間的相互轉換,cesiumjs為我們提供了這些轉換 var ellipsoid viewer.scene.globe.ellipsoid var coord wgs84 cesium.carto...
經緯度計算
define earth radius,6371 地球半徑,平均半徑為6371km 計算某個經緯度的周圍某段距離的正方形的四個點 param lng float 經度 param lat float 緯度 param distance float 該點所在圓的半徑,該圓與此正方形內切,預設值為0.5...
經緯度轉化
經緯度的表示 1.經緯度以度數表示,2.度 角分 1角分等於六十分之一度 秒 一秒等於六十分之一分 表示。如 北緯n39 34 14.95 東經e116 34 52.18 化為小數點的度為 北緯39.5708181173,東經116.5811614825 具體化法 北緯n39 34 14.95 39...