当前位置: 首页 > news >正文

产品摄影网站推荐黄页网大全免费软件

产品摄影网站推荐,黄页网大全免费软件,郑州中心站,产品网页的制作目录 1.前言2.添加一个面要素3.线性渐变3.1 第一个注意点3.2 第二个注意点 4.中心渐变#xff08;径向渐变#xff09;5.总结 1.前言 OpenLayers官网有整个图层的渐变示例#xff0c;但是没有单个要素的渐变示例#xff0c;我们这里来补充一下。OpenLayers中的渐变是通过fi… 目录 1.前言2.添加一个面要素3.线性渐变3.1 第一个注意点3.2 第二个注意点 4.中心渐变径向渐变5.总结 1.前言 OpenLayers官网有整个图层的渐变示例但是没有单个要素的渐变示例我们这里来补充一下。OpenLayers中的渐变是通过fill选项中实现的。fill选项可以传一个ColorLike本质是通过Canvas实现的,此时ColorLike对应的是CanvasPattern或CanvasGradient。 2.添加一个面要素 const source new VectorSource();let polygon new Feature({geometry:new Polygon([[[106.542384,30.485627],[106.542384,40.485627],[117.542384,40.485627],[117.542384,30.485627],[106.542384,30.485627],]])});source.addFeature(polygon)const vectorLayer new VectorLayer({source: source,});const map new Map({layers: [vectorLayer],target: map,view: new View({center: [126.980366, 37.52654],zoom: 1,projection:EPSG:4326}),});3.线性渐变 //import {DEVICE_PIXEL_RATIO} from ol/has getLineGradientStyle(){const canvas document.createElement(canvas);const context canvas.getContext(2d);const pixelRatio DEVICE_PIXEL_RATIO;let gradient context.createLinearGradient(0,0,1024*pixelRatio,0);let mainColor #56e90e;let secondColor #0e57e9;gradient.addColorStop(0,mainColor);gradient.addColorStop(1,secondColor);return gradient; } let style new Style({fill:new Fill({color:this.getLineGradientStyle()}) }) polygon.setStyle(style)3.1 第一个注意点 现在我们的要素在地图的正中间能看到两个颜色之间的过渡。我们把地图左键进行移动一下使得要素分别在最后边和最后边然后再来看看效果。   发现了什么效果是变化的所以我们的渐变策略是不太对的渐变填充应该根据面的范围以及当前所处的位置来进行动态计算。具体来说就是要在createLinearGradient的时候去动态计算.现在我把渐变改成从【5120】到【10240】的渐变然后我们把地图往左移动,再看看效果 let gradient context.createLinearGradient(512*pixelRatio,0,1024*pixelRatio,0);这次发现了什么貌似始终是在【5120】到【10240】渐变。但如果你真的这样以为了那你就错了。现在把地图往右移动看看会发生什么事   好像渐变的位置发生了偏移不是我们最初设定的【5120】到【10240】了。为什么挥发生这种现象。我们来看OpenLayers官网是是怎么解释的。在OpenLayers官网关于渐变有这样一段描述 翻译过来就是 CanvasRenderingContext2D.fillStyle或CanvasRendering Context2D.strokeStyle接受的类型。表示颜色、图案或渐变。图案和渐变作为填充样式的原点是从地图坐标[00]增加512个css像素。对于无缝重复图案图案图像的宽度和高度必须是两倍248…512。 重点是这一句图案和渐变作为填充样式的原点是从地图坐标[00]增加512个css像素   也就是说这个[0,0]是屏幕坐标不是我们以为的经纬度坐标。而且渐变的位置也不是我们想要的我们想要的是从某个经纬度到某个经纬度的渐变。 3.2 第二个注意点 512个css像素是什么意思   答屏幕在出厂时就从硬件上面决定了用几个物理像素来代表一个css像素。因此才有设备像素比这个参数也就是我们上文导入的DEVICE_PIXEL_RATIO。 4.中心渐变径向渐变 getCenterGradientStyle(polygon){let canvas document.createElement(canvas);const context canvas.getContext(2d);let extent polygon.getExtent()let minLon extent[0]let maxLon extent[2]let minLat extent[1]let maxLat extent[3]let resolution this.map.getView().getResolution()const pixelRatio DEVICE_PIXEL_RATIO;let height (maxLat - minLat)/resolution*pixelRatiolet width (maxLon-minLon)/resolution*pixelRatiocanvas.width widthcanvas.height heightlet radius Math.max(height,width)let center map.getPixelFromCoordinate([(minLonmaxLon)/2,(maxLatminLat)/2])let gradient context.createRadialGradient(center[0],center[1],radius/6,center[0],center[1],radius/2)let mainColor #56e90e;let secondColor #0e57e9;gradient.addColorStop(0,mainColor);gradient.addColorStop(1,secondColor);return gradient; } let style new Style({fill:new Fill({color:this.getCenterGradientStyle()}) }) polygon.setStyle(style)在change:resolution事件中去调用保证算出来的宽高的正确性 5.总结 OpenLayers中的渐变效果实在很难令人满意又或者是我们理解的有问题因为其是动态变化的我们很难得到想要的结果。目前我们要时刻注意监听视图的变化来修改渐变的效果。本文算是抛砖引玉吧如果某位有志之士能谁能解决掉这个问题希望能告诉我一下回见~
http://www.zqtcl.cn/news/989954/

相关文章:

  • 建设部网站人员查询wordpress中文 手机版
  • 大港油田建设网站电子商务公司取名字参考大全
  • 贵阳网站建设多点互动wordpress分页出现404
  • wap微信网站模板网站如何做链接
  • 泉州专业网站开发公司怎么免费做公司网页
  • 嵌入式软件开发前景怎么样百度官方优化指南
  • 网站访问速度优化工具网页设计模板图片大全
  • 哪里有手机网站制作公司网页设计与制作心得体会800字
  • 湖南建设厅网站首页简述网站建设的基本思路
  • 蚌埠公司做网站网站开发月薪
  • 怎么更换网站logo推荐几个没封的正能量网站
  • 开网站的宣传图片怎么做php网站建设面试
  • 哪些网站可以下载视频网站建设评价量规
  • 惠州市建设局网站网站模块设计怎么做
  • 群晖可不可以做网站用如何查询商标是否已经被注册
  • 北京欢迎你网站制作公司建设厅和应急管理厅焊工证区别
  • 如何开办网站微信公众平台号申请注册
  • 网站建设找哪个平台浦东区建设工程监督网站
  • 如何创业做网站设计公司工作室
  • 游戏网站建设多少中国煤炭建设协网站
  • 动态图表网站宁津做网站
  • 黑龙江生产建设兵团各连网站成功网站建设案例
  • 一级a做爰精免费网站肇庆网站制作软件
  • wordpress加分页北京优化生育
  • 乐至建设局网站工程项目管理软件哪个好
  • 太原公司网站建立wordpress插件直播
  • 比较有名的diy制作网站做照片视频的网站
  • 河北石家庄建设网站wordpress nginx apache
  • 上海免费网站建设品牌wordpress主题安装失败下载失败
  • 买公司的网站商城系统开发