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

云南网站备案自己做的网站怎么弄成app

云南网站备案,自己做的网站怎么弄成app,个人网页设计首页,海诚网站建设概述 在上一篇文章源码分析之Openlayers中Geom篇中提到Geometry类是继承于 Openlayers 中的BaseObject类(参考源码分析之Openlayers中核心BaseObject类).而Geometry类通常情况下也是作为一个抽象基类,作为Geom几何图形的基类或父类,不会在应用中去实例化它.Geometry类回去注册…概述 在上一篇文章源码分析之Openlayers中Geom篇中提到Geometry类是继承于 Openlayers 中的BaseObject类(参考源码分析之Openlayers中核心BaseObject类).而Geometry类通常情况下也是作为一个抽象基类,作为Geom几何图形的基类或父类,不会在应用中去实例化它.Geometry类回去注册几何对象实例的监听.当几何对象发生改变时,会收到通知,进而进行其它处理. 源码分析 Geometry类的源码实现 Geometry类的源码实现如下: class Geometry extends BaseObject {constructor() {super()this.extent_createEmpty()this.extentRevision_-1;this.simplifiedGeometryMaxMinSquaredTolerance 0;this.simplifiedGeometryRevision 0;this.simplifyTransformedInternal memoizeOne((revision, squaredTolerance, transform) {if (!transform) {return this.getSimplifiedGeometry(squaredTolerance);}const clone this.clone();clone.applyTransform(transform);return clone.getSimplifiedGeometry(squaredTolerance);},);}simplifyTransformed(squaredTolerance, trnasform) {}clone() {return abstract();}closestPointXY(x, y, closestPoint, minSquaredDistance) {return abstract()}containXY(x,y){const corrdthis.getClosetPoint([x,y]);return coord[0] x coord[1] y}getClosestPoint(point,closestPoint){closestPoint closestPoint ? closestPoint:[NaN,NaN];this.closestPointXY(point[0],point[1],closestPoint,Infinity)return closestPoint;}intersectsCoordinate(coordinate){return this.containsXY(coordinate[0],coordinate[1])}computeExtent(extent){return abstract()}getExtent(extent){if(this.extentRevision_!this.getRevision()){const extentthis.computeExtent(this.extent_);if(isNaN(extent[0])||isNaN(extent[1])){createOrUpdateEmpty(extent)}this.extentRevision_this.getRevision();}return returnOrUpdate(this.extent_,extent)}rotate(angle,anchor){abstract()}scale(xs,xy,anchor){abstract()}simplify(tolerance){return this.getSimplifiedGeometry(tolerance * tolerance)}getSimplifiedGeometry(squaredTolerance){return abstract();}getType(){return abstract();}applyTransform(transformFn){abstract()}intersectsExtent(extent){return abstract()}translate(deltaX,deltaY){abstract()}transform(source,destination){const tmpTransformcreateTransform()const sourceProjgetProjection(source);const transformFn sourceProj.getUnits()tile-pixels?function (inCoordinates,outCoordinates,stride){const pixelExtentsourceProj.getExtent();const projectedExtent sourceProj.getWorldExtent();const scalegetHeight(projectedExtent)/getHeight(pixelExtent);composeTransform(tmpTransform,projectedExtent[0],projectedExtent[3]),scale,-scale,0,0,0);transform2D(inCoordinates,0,inCoordinates.length,stride,tmpTransform,outCoordinates);return getTransform(sourceProj,destination)(inCoordinates,outCoordinates,stride)}: getTransform(sourceProj,destination);this.appyTransform(transformFn)return this;} }Geometry类构造函数 Geometry类的构造函数中调用createEmpty方法返回了一个数组[Infinity, Infinity, -Infinity, -Infinity]给this.extent_,this.extent_表示的是几何对象的边界范围;然后初始化this.extentRevision_为-1,这个变量是用来记录边界范围的更改次数(修订版本);再初始化this.simplifiedGeometryMaxMinSquaredTolerance变量即几何对象的最大最小平方公差为0,初始化this.simplifiedGeometryRevision为0,记录几何对象的变化次数;调用memoizeOne方法用于获取几何对象的转换和简化版本,返回值赋给this.simplifyTransformedInternal. memoizeOne方法主要就是包装并返回一个函数,它会记录函数第一次被调用时的返回值,参数以及this,当函数再次被调用时,它会拿新的参数和this与记录上一次的参数和this作比较,若他们相同,则直接返回上一次的返回值;否则执行函数,并再次记录下返回值,参数和this用于下一次被调用时作比较. Geometry类的方法 Geometry类中定义了一些方法,其中有许多未实现,只是定义了,实现的是基础核心的方法,如下: simplifyTransformed方法:接受两个参数squaredTolerance平方公差和transform转换函数,内部就是调用this.simplifyTransformedInternal方法并返回结果 clone方法:未实现,用于复制几何对象 closestPointXY方法:未实现,用于比较一个目标点与几何对象中的点之间的距离,并更新最近点的坐标,返回更小的距离 containsXY方法:接受一个坐标x和y,然后调用this.getClosestPoint获取最近点坐标,判断参数坐标是不是与最近点坐标相同 getClosestPoint方法:接受两个坐标,目标点坐标和最近点坐标,其中若最近点坐标不存在,则赋值为[NaN,NaN],然后调用this.closestPointXY更新最近点坐标并返回 intersectsCoordinate方法:接受一个点坐标,然后调用this.containsXY并返回;该方法就是用于判断点是否在几何对象的边界上; computeExtent方法:未实现,用于计算边界范围 getExtent方法:用于获取边界范围;内部会调用this.getRevision方法获取revision_,它们都是在Observable类中定义的,Observable类就是BaseObject类的父类,关于Observable类可以参考;当获取到的revision和this.extentRevision_不等时,会调用this.computeExtent计算边界范围,然后判断,若计算得到的extent不存在,则调用createOrUpdateEmpty创建一个边界范围,然后更新this.extentRevision_的值,最后调用returnOrUpdate得到边界范围并返回. rotate方法:未实现,该方法就是给定一个坐标值,然后旋转几何对象,这个操作会修改几何对象的坐标 scale方法:未实现,该方法用于对几何对象进行缩放,同样地,会修改几何对象的坐标值 simplify方法:未实现,该方法用于创建一个几何对象的简化版本 getSimplifiedGeometry方法:未实现,该方法用于获取几何对象的简化版 getType方法:未实现,该方法用于获取几何对象的类型 applyTransform方法:未实现,该方法用于对几何对象的坐标应用transform函数进行转换, intersectsExtent方法:未实现,该方法用于判断几何对象与参数extent范围是否相交 translate方法:该方法用于对几何对象进行平移,同样地,会修改几何对象的坐标值 transform方法:该方法目的是将几何对象的坐标从一个投影系转换到另一个投影系.接受两个参数source源投影和destination目标投影;先是调用getProjection获取源投影source的投影对象,然后判断,若投影对象的单位类型是栅格投影,就获取源投影的像素范围pixelExtent和projectedExtent投影范围,通过它们计算一个缩放比例scale,然后调用composeTransform构建一个转换矩阵tmpTransform,用于像素坐标转换到投影坐标.然后调用transform2D,通过转换矩阵tmpTransform将输入坐标inCoordinates转化为目标坐标outCoordinates,再调用getTransform获取坐标转换函数,该函数就是用于将坐标从源投影转换到目标投影;若投影对象的单位类型不是栅格投影,则直接使用getTransform获取转换函数;最后调用this.applyTransform将得到的transformFn作为变换函数应用到几何对象上,对几何对象的所有点坐标进行转换. 总结 Openlayers 中的 Geometry 类是所有几何类型的基础类通过继承它的子类可以表示不同类型的几何对象。Geometry 类提供了丰富的方法来操作几何数据如坐标变换、几何计算、空间关系判断等.
http://www.eeditor.cn/news/119552/

相关文章:

  • wordpress官方中文版seo网站优化对象
  • 宣讲家网站生态文明建设电商代运营公司100强
  • 网站建设选谋者智能小程序开发
  • 华为网站开发app下载平台哪个好
  • 当当网网站建设案例网络营销外包价格
  • 古典风格网站模板htmlwordpress主题的连接函数
  • 中国十大企业襄阳网站seo方法
  • 企业网站的重要性钉钉付费版多少钱
  • 深圳网站建设公司建设wordpress插件 标签
  • 华梦服饰网站建设中北京市建设厅网站首页
  • 天津正规网站建设调试公司网站设计目的与规划
  • 在家里怎样做网站如何写网站建设实验结果分析
  • 建网站原型图中小企业门户网站建设策略
  • 优惠券直播网站怎么做的郑州汉狮做网站多少钱
  • 静态网站建设的流程人才网站app建设建议
  • 电子商务和网站建设区别软件发展的四个阶段
  • 黄山工程建设信息网站电子商务网站dw建设实验报告
  • 房产网站建设产品中国十大建筑设计院
  • 资质类网站如何做优化专业的教育行业网站制作
  • 做游戏网站的目地有没有在家做的手工活网站
  • 做康复医院网站怎样找到工厂直招网站
  • 网站建设:成都今网科技wordpress 大气模板
  • 网站地图用法大安网站建设
  • 宁夏建设工程交易中心网站记事本做网站怎么插图
  • 鸣蝉网站建设公司建筑公司网站管理员
  • 域名如何做网站百度云 免费 网站主机
  • 烟台优化网站公司wordpress 主题 教程
  • 网站建站步骤做外贸需掌握的网站
  • 展开网站建设网站模板 psd
  • 台州建设网站公司生鲜电商网站建设