Skyline开发:风向风力符号标绘

在做相关气象的系统开发时,会碰到相关风向标的符号标绘要求,在地图的指定位置标绘符号,形象的描述风向和风力。

可以采用做图标的方式,要把各种风力的图片都做全,还要根据风向,旋转图片的角度。

另一种是通过在地图上画线,把线拼接在一起,达到风向标的效果,下边说一下这种实现的方式。

一般来说,风吹的方向,就是风向标的尾部朝向,风力用基础线上的几道杠表示,不够一个等级,用半长的线,在观看范围比较大的情况下,线的长度还是要画的比较长。

具体的实现代码如下(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 };

  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值