ArcGIS js api 4.x 淹没分析 、水淹分析

效果图如下:

ArcGIS js 4.x 水淹分析 淹没分析

代码如下


console.log('459584547@qq.com');

function gradientColor(startColor,endColor,step){
    startRGB = this.colorRgb(startColor);//转换为rgb数组模式
    startR = startRGB[0];
    startG = startRGB[1];
    startB = startRGB[2];
    endRGB = this.colorRgb(endColor);
    endR = endRGB[0];
    endG = endRGB[1];
    endB = endRGB[2];
    sR = (endR-startR)/step;//总差值
    sG = (endG-startG)/step;
    sB = (endB-startB)/step;
    var colorArr = [];
    for(var i=0;i<step;i++){
    //计算每一步的hex值 
     var hex = this.colorHex('rgb('+parseInt((sR*i+startR))+','+parseInt((sG*i+startG))+','+parseInt((sB*i+startB))+')');
     colorArr.push(hex);
    }
    return colorArr;
   }
   // 将hex表示方式转换为rgb表示方式(这里返回rgb数组模式)
   gradientColor.prototype.colorRgb = function(sColor){
    var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
    var sColor = sColor.toLowerCase();
    if(sColor && reg.test(sColor)){
     if(sColor.length === 4){
      var sColorNew = "#";
      for(var i=1; i<4; i+=1){
       sColorNew += sColor.slice(i,i+1).concat(sColor.slice(i,i+1));
      }
      sColor = sColorNew;
     }
     //处理六位的颜色值
     var sColorChange = [];
     for(var i=1; i<7; i+=2){
      sColorChange.push(parseInt("0x"+sColor.slice(i,i+2)));
     }
     return sColorChange;
    }else{
     return sColor;
    }
   };
   // 将rgb表示方式转换为hex表示方式
   gradientColor.prototype.colorHex = function(rgb){
    var _this = rgb;
    var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
    if(/^(rgb|RGB)/.test(_this)){
     var aColor = _this.replace(/(?:(|)|rgb|RGB)*/g,"").split(",");
     var strHex = "#";
     for(var i=0; i<aColor.length; i++){
      var hex = Number(aColor[i]).toString(16);
      hex = hex<10 ? 0+''+hex :hex;// 保证每个rgb的值为2位
      if(hex === "0"){
       hex += hex;
      }
      strHex += hex;
     }
     if(strHex.length !== 7){
      strHex = _this;
     }
     return strHex;
    }else if(reg.test(_this)){
     var aNum = _this.replace(/#/,"").split("");
     if(aNum.length === 6){
      return _this;
     }else if(aNum.length === 3){
      var numHex = "#";
      for(var i=0; i<aNum.length; i+=1){
       numHex += (aNum[i]+aNum[i]);
      }
      return numHex;
     }
    }else{
     return _this;
    }
   }

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值