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

电子商务网站规划的原则有哪些展示型网站建设多少钱

电子商务网站规划的原则有哪些,展示型网站建设多少钱,网站ui设计是什么意思,网站内页收录目录 1.前言2.olext官方示例3.重写Transform.js4.自定义样式5.自定义选中机制6.拓展思考6.1包围框的角度问题6.2不选中要素如何平移 7总结 1.前言 首先OpenLayers本身是支持旋转、平移、缩放的。olext 只是在 OpenLayers 的基础上又做了一层封装#xff0c;使得看起来比较好看… 目录 1.前言2.olext官方示例3.重写Transform.js4.自定义样式5.自定义选中机制6.拓展思考6.1包围框的角度问题6.2不选中要素如何平移 7总结 1.前言 首先OpenLayers本身是支持旋转、平移、缩放的。olext 只是在 OpenLayers 的基础上又做了一层封装使得看起来比较好看用起来也比较好用。当然olext 里的功能可不止旋转、平移缩放还有很多比如样式、动画、过滤器、控制器、各类要素交互、重做撤销、图例、搜索、路径规划、等高线以及移动端适配等等。官方示例地址为 GitHub ES6版本可以参考 olext4.0.14 ES5及以下版本可以参考 olext3.1.5 2.olext官方示例 olext 的使用很简单只需要引入olext初始化一下就 ok 了。 import ExtTransform from ol-ext/interaction/Transform import {always} from ol/events/condition const transform new ExtTransform({hitTolerance: 2,//点选容差即将鼠标所在位置扩大2px进行选择translate: false, // 平移-点击要素的中心触发translateFeature: true,//平移-点击要素任意位置触发stretch: false, // 拉伸scale: true, // 缩放rotate: true, // 旋转noFlip: true,//禁止翻转keepRectangle:true,//保持包围框为矩形状态keepAspectRation:always //保持要素宽高比缩放时}) this.map.addInteraction(transform)3.重写Transform.js 现在我们知道了是 Transform 这个类在控制这图形的变换。那我们就来看下源码就知道是怎么回事了。   原来是重写了ol/interaction/Pointer.js这个类。那我们怎么重写这个类呢抄呗不会写还不会抄么代码原封不动我们自己写个类把它的代码复制过去。文件就叫olPaintingTransform.js然后引入我们自己的文件, new 的时候就 new 我们自己的类,然后加上事件的监听。 // import ExtTransform from ol-ext/interaction/Transform import olPaintTransfrom from ./olPaintTransform const transform new olPaintTransfrom({hitTolerance: 2,//点选容差即将鼠标所在位置扩大2px进行选择translate: false, // 平移-点击要素的中心触发translateFeature: true,//平移-点击要素任意位置触发stretch: true, // 拉伸scale: true, // 缩放rotate: true, // 旋转noFlip: true,//禁止翻转keepRectangle:true,//保持包围框为矩形状态keepAspectRation:always //保持要素宽高比缩放时 })map.addInteraction(transform)//开始事件transform.on([rotatestart,translatestart], function(e){// Rotationlet startangle e.feature.get(angle)||0;// Translationconsole.log(xxx);console.log(startangle);});//旋转transform.on(rotating, function (e){console.log(xxx);console.log(rotate: ((e.angle*180/Math.PI -180)%360180).toFixed(2));console.log(e);});//移动transform.on(translating, function (e){console.log(xxx);console.log(e.delta);console.log(e);});//拖拽事件transform.on(scaling, function (e){console.log(xxx);console.log(e.scale);console.log(e);});//事件结束transform.on([rotateend, translateend, scaleend], function (e) {console.log(xxx);});4.自定义样式 现在我觉的这个样式不好看缩放和拉伸我不想要方框了我要改成实心圆并且加上颜色来区分功能,修改 setDefaultStyle方法中bigpt 和 samllpt的样式即可。 setDefaultStyle(options) {options options || {}// Stylevar stroke options.pointStroke || new ol_style_Stroke({ color: [255, 0, 0, 1], width: 1 })var strokedash options.stroke || new ol_style_Stroke({ color: [255, 0, 0, 1], width: 1, lineDash: [4, 4] })var fill0 options.fill || new ol_style_Fill({ color: [255, 0, 0, 0.01] })var fillScale options.pointFill || new ol_style_Fill({ color: [255, 255, 255, 0.8] })var fill options.pointFill || new ol_style_Fill({ color: [255, 255, 255, 0.8] })var circle new ol_style_RegularShape({fill: fill,stroke: stroke,radius: this.isTouch ? 12 : 6,displacement: this.isTouch ? [24, -24] : [12, -12],points: 15})// Old version with no displacementif (!circle.setDisplacement)circle.getAnchor()[0] this.isTouch ? -10 : -5var bigpt new ol_style_RegularShape({fill: new ol_style_Fill({ color: #0029f3 }),stroke: new ol_style_Stroke({ color: #0029f3 , width: 1 }),radius: this.isTouch ? 12 : 6,points: 18,angle: Math.PI / 4})var smallpt new ol_style_RegularShape({fill: new ol_style_Fill({ color: #00f31e }),stroke: new ol_style_Stroke({ color: #00f31e , width: 1 }),radius: this.isTouch ? 12 : 6,points: 18,angle: Math.PI / 4})function createStyle(img, stroke, fill) {return [new ol_style_Style({ image: img, stroke: stroke, fill: fill })]}/** Style for handles */this.style {default: createStyle(bigpt, strokedash, fill0),translate: createStyle(bigpt, stroke, fill),rotate: createStyle(circle, stroke, fill),rotate0: createStyle(bigpt, stroke, fill),scale: createStyle(bigpt, stroke, fill),scale1: createStyle(bigpt, stroke, fill),scale2: createStyle(bigpt, stroke, fill),scale3: createStyle(bigpt, stroke, fill),scalev: createStyle(smallpt, stroke, fill),scaleh1: createStyle(smallpt, stroke, fill),scalev2: createStyle(smallpt, stroke, fill),scaleh3: createStyle(smallpt, stroke, fill),}this.drawSketch_()}这个旋转点位置也看起来怪怪的移动正上方去吧修改画草图方法drawSketch_中的Rotate的计算方式和setDefaultStyle中的circle 的样式 // Rotate if (!this.iscircle_ this.get(rotate)) {f new ol_Feature({ geometry: new ol_geom_Point([(g[0][0]g[2][0])/2,g[2][1]]), handle: rotate })features.push(f) }var circle new ol_style_RegularShape({fill: fill,stroke: stroke,radius: this.isTouch ? 12 : 6,//displacement: this.isTouch ? [24, -24] : [12, -12],displacement: [0, 30],points: 15 })5.自定义选中机制 现在我们已经改完样式了接下要做的是我不想通过鼠标点选来设置。为什么因为鼠标点选只能选择一个我们要做的是通过代码设置想设置选中多少个就设置选中多少个。首先设置多个选中在olext里是提供了方法的叫做setSelection。   那么我们要做的就是取消olext默认的选中事件就行了。而默认选中事件的逻辑是在handleDownEvent中处理我们只需要注销掉最后一个else if就可以了。 6.拓展思考 6.1包围框的角度问题 当我的要素旋转了以后我希望olext画出来的包围框角度也跟着变化一下该怎么做呢   答当前也是在画草图方法drawSketch_中找到new Polygon的地方设置角度即可。 6.2不选中要素如何平移 olext唯一不好的地方就是不选中就不能进行旋转、平移、缩放。但是一些情况下需要不选中也能平移要素。这种应该怎么实现   答自然也是用ol/interaction/Pointer类来实现因为这里能处理mouseDown事件具体可以参考OpenLayers官网的不选中平移例子 7总结 本篇中我们深刻的剖析了olext中的Transform类修改了默认的样式默认的选中事件等等。还提出了拓展思考及对应的解决方案希望能对后来者有所启发,回见~。
http://www.zqtcl.cn/news/567264/

相关文章:

  • 奉贤网站建设专家高端自适应网站设计
  • 网站正在建设中 动态徐州网站建设方案咨询
  • 广东世纪达建设集团有限公司官方网站专业电商网站开发
  • 抚顺建设网站自适应网站建设推荐
  • 做网站的大公司手机页面
  • 网站建设的公司实习做什么系统设计
  • 兰州网站设计哪个平台好外贸网站定制公司哪家好
  • 做网站需要先买域名吗在线音乐网站开发数据库
  • 深圳优化网站搬家网站模板
  • 网站建设做的人多吗门户网站制作建设
  • 哪个网站可以做logo怀柔网页公司制作
  • 网站被抄袭怎么投诉网站建设丨金手指15
  • 中国交建平台seo搜索引擎优化是通过优化答案
  • 简述网站的建设流程图食品网站app建设方案
  • 西安建设厅网站首页听说上海又要封了
  • 兼职python做网站如何制作一个网站包含多个网页
  • 花园桥网站建设百度怎么创建网站
  • 做网站 客户一直要求改做网站学不需要做后台管理系统
  • 企业网站托管电话输入姓名查询个人征信
  • 域名注册了后怎么建设网站荆州市建设厅网站
  • 厦门网站建设合同wordpress的设置网址
  • 澎湃动力网站建设公司门户类网站建设需要多少钱
  • 祭祖网站怎么做咨询类网站开发的意义
  • 简书网站开发热门电影推荐
  • 中学教材数字化学习资源的建设——教材配套网站的设计及发展趋势建网站 发信息 做推广
  • 怎么写网站建设方案书制做网站的公司
  • 服务网站 建设原则游戏服务器租用多少钱一年
  • 软件网站下载现在出入深圳最新规定
  • 长宁专业网站制作公司陕西网站建设哪家专业
  • 重庆做的好的房产网站衡水的网站建设