這篇文章將為大家詳細(xì)講解有關(guān)TE二次開發(fā)中如何實現(xiàn)風(fēng)向風(fēng)力符號標(biāo)繪,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)技術(shù)團(tuán)隊十多年來致力于為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、高端網(wǎng)站設(shè)計、成都全網(wǎng)營銷、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗豐富的技術(shù)團(tuán)隊,先后服務(wù)、推廣了數(shù)千家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機構(gòu)單位。
在做相關(guān)氣象的系統(tǒng)開發(fā)時,會碰到相關(guān)風(fēng)向標(biāo)的符號標(biāo)繪要求,在地圖的指定位置標(biāo)繪符號,形象的描述風(fēng)向和風(fēng)力。
可以采用做圖標(biāo)的方式,要把各種風(fēng)力的圖片都做全,還要根據(jù)風(fēng)向,旋轉(zhuǎn)圖片的角度。
另一種是通過在地圖上畫線,把線拼接在一起,達(dá)到風(fēng)向標(biāo)的效果,下邊說一下這種實現(xiàn)的方式。
一般來說,風(fēng)吹的方向,就是風(fēng)向標(biāo)的尾部朝向,風(fēng)力用基礎(chǔ)線上的幾道杠表示,不夠一個等級,用半長的線,在觀看范圍比較大的情況下,線的長度還是要畫的比較長。
具體的實現(xiàn)代碼如下(C#)版:
//_pos1為風(fēng)向標(biāo)的位置,_level為風(fēng)力
void DrawIcon(IPosition70 _pos1, double _level)
{
IPosition70 _aiPos;
ITerrainPolyline70 _cPolyline;
double[] _arr;
ILineString _cRing;
//根據(jù)等級計算出幾道風(fēng)力杠
double _cValue = Math.Ceiling(_level);
for (double ile = 0; ile < _cValue; ile++)
{
//先按照風(fēng)向移動距離
_aiPos = _pos1.Move(8000 * ile, _pos1.Yaw, 0);
if ((_level - 1 - ile) >= 0)
{
//夠一級風(fēng)力的情況下
//以風(fēng)向的角度旋轉(zhuǎn)120度,畫出來風(fēng)力的方向
var _aiPos1 = _aiPos.Move(20000, _pos1.Yaw + 120, 0);
_arr = new double[] { _aiPos.X, _aiPos.Y, 1000, _aiPos1.X, _aiPos1.Y, 1000 };
//兩點拼出來一條直線
_cRing = _sgworld.Creator.GeometryCreator.CreateLineStringGeometry(_arr);
_cPolyline = _sgworld.Creator.CreatePolyline(_cRing, 0xff0000ff, AltitudeTypeCode.ATC_TERRAIN_RELATIVE, string.Empty, "100k500");
}
else
{
//不夠一級風(fēng)力的情況下
//以風(fēng)向的角度旋轉(zhuǎn)120度,畫出來半個風(fēng)力的方向
var _aiPos1 = _aiPos.Move(20000 * 0.5, _pos1.Yaw + 120, 0);
_arr = new double[] { _aiPos.X, _aiPos.Y, 1000, _aiPos1.X, _aiPos1.Y, 1000 };
_cRing = _sgworld.Creator.GeometryCreator.CreateLineStringGeometry(_arr);
_cPolyline = _sgworld.Creator.CreatePolyline(_cRing, 0xff0000ff, AltitudeTypeCode.ATC_TERRAIN_RELATIVE, string.Empty, "100k500");
}
}
//移動距離畫出來風(fēng)向標(biāo)的橫柄線
_aiPos = _pos1.Move(40000, _pos1.Yaw, 0);
_arr = new double[] { _pos1.X, _pos1.Y, 1000, _aiPos.X, _aiPos.Y, 1000 };
_cRing = _sgworld.Creator.GeometryCreator.CreateLineStringGeometry(_arr);
_cPolyline = _sgworld.Creator.CreatePolyline(_cRing, 0xff0000ff, AltitudeTypeCode.ATC_TERRAIN_RELATIVE, string.Empty, "100k500");
}
以下是標(biāo)繪的效果圖:
關(guān)于“TE二次開發(fā)中如何實現(xiàn)風(fēng)向風(fēng)力符號標(biāo)繪”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
網(wǎng)頁名稱:TE二次開發(fā)中如何實現(xiàn)風(fēng)向風(fēng)力符號標(biāo)繪
標(biāo)題網(wǎng)址:http://chinadenli.net/article42/gieoec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、企業(yè)建站、企業(yè)網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)站制作、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)