91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

TE二次開發中如何實現風向風力符號標繪

發布時間:2022-01-13 16:59:24 來源:億速云 閱讀:135 作者:小新 欄目:大數據

這篇文章將為大家詳細講解有關TE二次開發中如何實現風向風力符號標繪,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

在做相關氣象的系統開發時,會碰到相關風向標的符號標繪要求,在地圖的指定位置標繪符號,形象的描述風向和風力。

可以采用做圖標的方式,要把各種風力的圖片都做全,還要根據風向,旋轉圖片的角度。

另一種是通過在地圖上畫線,把線拼接在一起,達到風向標的效果,下邊說一下這種實現的方式。

一般來說,風吹的方向,就是風向標的尾部朝向,風力用基礎線上的幾道杠表示,不夠一個等級,用半長的線,在觀看范圍比較大的情況下,線的長度還是要畫的比較長。

具體的實現代碼如下(C#)版:

//_pos1為風向標的位置,_level為風力

       void DrawIcon(IPosition70 _pos1, double _level)

        { 

            IPosition70 _aiPos;

            ITerrainPolyline70 _cPolyline;

            double[] _arr;

            ILineString _cRing;

            //根據等級計算出幾道風力杠

            double _cValue = Math.Ceiling(_level);

            for (double ile = 0; ile < _cValue; ile++)

            {

              //先按照風向移動距離

                _aiPos = _pos1.Move(8000 * ile, _pos1.Yaw, 0);

                if ((_level - 1 - ile) >= 0)

                {

                //夠一級風力的情況下

                //以風向的角度旋轉120度,畫出來風力的方向

                    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

                {

                //不夠一級風力的情況下

                //以風向的角度旋轉120度,畫出來半個風力的方向

                    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");

                }

            }   

       //移動距離畫出來風向標的橫柄線

            _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"); 

        }

以下是標繪的效果圖:

TE二次開發中如何實現風向風力符號標繪

關于“TE二次開發中如何實現風向風力符號標繪”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

te
AI

中江县| 泌阳县| 苍溪县| 于都县| 错那县| 华坪县| 古浪县| 依安县| 浮山县| 沈阳市| 鄂托克旗| 扎鲁特旗| 疏勒县| 安塞县| 惠安县| 左贡县| 龙南县| 静宁县| 青冈县| 沙坪坝区| 罗源县| 敦煌市| 任丘市| 浠水县| 涞源县| 闸北区| 仙游县| 黄浦区| 泗阳县| 佳木斯市| 柘荣县| 微山县| 三明市| 南丰县| 双江| 福海县| 岚皋县| 金堂县| 扬中市| 张家川| 武清区|