飞渡二次开发-关于天气参数

本文介绍了如何通过6.1版本的CloudAPI获取天气信息并实时调整光照、云层、雨雪等效果,同时提醒了雾的效果需要配合计时器使用,以及对天气参数进行适度调整的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我使用的Cloud是6.1版本,天气支持调节光照,雨,雪,雾。

组合了晴天、阴天、雨、小雨、雪、雾。

需要注意的是,这个雾目前好像不支持自动消失,使用时需要配合计时器使用。 

先通过免费API获取天气信息
getWeather() {
      AMap.plugin("AMap.Weather", function () {
        var weather = new AMap.Weather();
        weather.getLive("重庆", function (err, data) {
          if (!err) {
            this.weather = data.weather;
          }
        });
      });
    },

设置监听方法,在打开页面时自动调整天气。 

这个方法只是实例,可根据选用的API的返回信息自行调整。

setWeather() {
      switch (true) {
        case this.weather.includes("雨" && "小"):
          console.log("小雨")
          this.rain_s()
          break;
        case this.weather.includes("雨"):
          console.log("雨")
          this.rain()
          break;
        case this.weather.includes("阴"):
          console.log("晴天")
          this.windy()
          break;
        default:
          console.log("一般天气")
          this.normalWeather()
          break;
      }


watch: {
    weather(newVal, oldVal) {
      const interval = setInterval(() => {
        if (__g) {
          clearInterval(interval);
          setTimeout(() => {
            this.setWeather(newVal)
          }, 1000);
        }
      }, 1500);
    }
  },

设置天气,需要注意雨雪需要先设置云,雾不会自己消散需要配合计时器,通过设置雾的参数 fogHeightFalloff 可将雾效果关闭。,这里提供一些配置的参数,仅供参考。

    setAmbientLight(intensity) {
      //环境光强度,取值范围:[0~5]
      __g.weather.setAmbientLightIntensity(intensity)
    },
    setCloud(density, thickness, height) {
      //设置云层的密度[0~1.0]
      //云厚度取值范围:[0~0.5]
      //云高度[0~20]km
      __g.weather.setCloudDensity(density)
      __g.weather.setCloudThickness(thickness)
      __g.weather.setCloudHeight(height)
    },
    setSun(intensity, size, temperature) {
      //!!!rain()和snow()禁止调用!!!
      //太阳光照射强度,取值范围:[0~40]
      //太阳尺寸,取值范围:[0~10]
      //色温值,单位:开尔文,简称K,取值范围:[1700~12000]
      __g.weather.setSunIntensity(intensity)
      __g.weather.setSunSize(size)
      __g.weather.setTemperature(temperature)
    },
    fog(n) {
      this.isRainOrSnow()
      this.setAmbientLight(1)
      /*
      * 雾的浓度,取值范围:[0~2.0]
      * 雾的颜色
      * 高度衰减,取值范围:[0~2]
      * 起雾距离,取值范围:[0~10000]
      * 透明度,取值范围:[0.00~1.00]
      * */
      let fogDensity = 2;
      let fogColor = 'RGB(136,134,134)'
      let fogHeightFalloff = n
      let fogStartDistance = 50
      let fogOpacity = 0.5
      __g.weather.setFogParam(fogDensity, fogColor, fogHeightFalloff, fogStartDistance, fogOpacity)
    },
    rain() {
      this.fog(2)
      this.setAmbientLight(3)
      this.setCloud(1, 0.1, 15)
      __g.weather.setSunSize(0)
      __g.weather.setMoonSize(0)
      //雨效强度,取值范围:[0~1.0]
      //雨效速度,取值范围:[0~1.0]
      //雨滴大小,取值范围:[0~1.0]
      let strength = 0.7;
      let speed = 0.5;
      let raindropSize = 0.7;
      __g.weather.setRainParam(strength, speed, raindropSize)
    },
    rain_s() {
      this.fog(2)
      this.setAmbientLight(3)
      this.setCloud(1, 0.1, 15)
      __g.weather.setSunSize(0)
      __g.weather.setMoonSize(0)
      //雨效强度,取值范围:[0~1.0]
      //雨效速度,取值范围:[0~1.0]
      //雨滴大小,取值范围:[0~1.0]
      let strength = 0.4;
      let speed = 0.2;
      let raindropSize = 0.3;
      __g.weather.setRainParam(strength, speed, raindropSize)
    },
    snow() {
      this.fog(2)
      this.setAmbientLight(3)
      this.setCloud(1, 0.1, 15)
      __g.weather.setSunSize(0)
      __g.weather.setMoonSize(0)
      //雪效强度,取值范围:[0~1.0]
      //雪效速度,取值范围:[0~1.0]
      //雪花大小,取值范围:[0~1.0]
      let strength = 0.1;
      let speed = 0.1;
      let snowflakeSize = 0.5;
      __g.weather.setSnowParam(strength, speed, snowflakeSize)
    },
    sunny() {
      this.fog(2)
      this.isRainOrSnow()
      this.setAmbientLight(2)
      this.setCloud(0.5, 0.3, 5)
      this.setSun(10, 2, 5500)
    },
    windy() {
      this.fog(2)
      this.isRainOrSnow()
      this.setAmbientLight(1)
      this.setCloud(1, 0.5, 15)
      this.setSun(5, 1, 5500)
    },
    isRainOrSnow() {
      let data = {}
      __g.weather.getParams().then(
          (result) => {
            data = result;
          }
      )
      if (data.rainsnow !== 0) {
        __g.weather.disableRainSnow()
      }
    },
    normalWeather() {
      this.fog(2)
      this.isRainOrSnow()
      this.setAmbientLight(2)
      this.setCloud(1, 0.4, 10)
      this.setSun(7, 1, 5500)
    },

方法从上到下分别是:设置环境光,设置云,设置太阳,雾,雨,小雨,雪,晴天,阴天,是否是雨或雪,其他天气。 

调整天气参数,主要开始看环境光强度和阴影效果,阴影的设置我这台电脑配置不高就没尝试。雨雪效果不宜过大或过快,影响对模型建筑的实际视觉,古人都讲究适宜,所以一点点就可以看出很nice的效果。

### 飞渡科技面试经验及相关准备 #### 背景概述 飞渡科技是一家专注于数字化转型和技术创新的企业,其招聘流程通常会围绕候选人的技术能力、项目经验和职业规划展开。根据已知的信息,在类似的公司和技术岗位的面试过程中,时间长度一般为20分钟左右[^1]。 #### 常见面试环节及问题分析 ##### 1. 自我介绍 自我介绍是面试中的重要部分,候选人应准备好清晰表达自己的过往经历以及未来的职业目标。具体来说,可以包括以下几个方面: - **工作背景**:描述之前的工作职责、取得的成绩以及所涉及的技术领域。 - **技能专长**:突出自己掌握的核心技术和工具,例如编程语言、数据库管理或云计算平台等。 - **职业愿景**:说明个人对未来发展的期望如何与公司的战略方向相契合。 ##### 2. 进一步针对职业规划提问 在初步了解应聘者的背景之后,面试官可能会深入探讨关于长期发展目标的具体细节。这类问题旨在评估求职者是否有明确的方向感,并且能够将其转化为实际行动计划。可能的形式有: - 如何定义成功?您认为实现这些目标的关键因素是什么? - 如果加入我们团队,三年后的理想状态应该怎样? 除了上述通用型话题外,对于特定职位还可能存在更多专业技术层面考核内容: #### 技术类考察重点 虽然未提供确切题目列表,但从行业惯例推测,以下主题可能是测试范围内的核心要素之一: - 数据结构与算法设计基础知识; - 实际编码挑战——通过在线评测系统完成指定功能模块开发任务; - 对新兴趋势保持敏感度的能力展示(比如人工智能应用案例分享); 以下是基于常规情况下的Python快速排序函数作为例子来体现逻辑思考过程的一个片段: ```python def quick_sort(arr): if len(arr) <= 1: return arr else: pivot = arr[len(arr)//2] left = [x for x in arr if x<pivot ] middle=[x for x in arr if x==pivot] right= [x for x in arr if x>pivot] return quick_sort(left)+middle+quick_sort(right) ``` 此代码展示了递归方法解决数组排列问题的方式,有助于理解分治法原理及其应用场景。 #### 总结建议 为了更好地应对飞渡科技或其他同类企业的选拔程序,请务必提前做好充分准备工作,不仅限于理论学习还要注重实战演练效果提升综合竞争力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值