/** * Cesium - https://github.com/AnalyticalGraphicsInc/cesium * * Copyright 2011-2017 Cesium Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * * 该版本修改了部分代码,主要是汉化、优化功能、添加接口 等 by 火星科技 http://marsgis.cn * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Columbus View (Pat. Pend.) * * Portions licensed separately. * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. */ define(["exports","./defined-b9ff0e39","./Check-e6691f86","./freezeObject-2d5b18ce","./defaultValue-199f5aa8","./Math-92bd3539","./defineProperties-ae15c9d5"],function(e,A,t,n,c,V,a){"use strict";function b(e,t,n){this.x=c.defaultValue(e,0),this.y=c.defaultValue(t,0),this.z=c.defaultValue(n,0)}b.fromSpherical=function(e,t){A.defined(t)||(t=new b);var n=e.clock,a=e.cone,i=c.defaultValue(e.magnitude,1),r=i*Math.sin(a);return t.x=r*Math.cos(n),t.y=r*Math.sin(n),t.z=i*Math.cos(a),t},b.fromElements=function(e,t,n,a){return A.defined(a)?(a.x=e,a.y=t,a.z=n,a):new b(e,t,n)},b.fromCartesian4=b.clone=function(e,t){if(A.defined(e))return A.defined(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new b(e.x,e.y,e.z)},b.packedLength=3,b.pack=function(e,t,n){return n=c.defaultValue(n,0),t[n++]=e.x,t[n++]=e.y,t[n]=e.z,t},b.unpack=function(e,t,n){return t=c.defaultValue(t,0),A.defined(n)||(n=new b),n.x=e[t++],n.y=e[t++],n.z=e[t],n},b.packArray=function(e,t){var n=e.length;A.defined(t)?t.length=3*n:t=new Array(3*n);for(var a=0;aV.CesiumMath.EPSILON12);return A.defined(i)?(i.x=r*_,i.y=u*C,i.z=o*z,i):new b(r*_,u*C,o*z)}function m(e,t,n){this.longitude=c.defaultValue(e,0),this.latitude=c.defaultValue(t,0),this.height=c.defaultValue(n,0)}m.fromRadians=function(e,t,n,a){return n=c.defaultValue(n,0),A.defined(a)?(a.longitude=e,a.latitude=t,a.height=n,a):new m(e,t,n)},m.fromDegrees=function(e,t,n,a){return e=V.CesiumMath.toRadians(e),t=V.CesiumMath.toRadians(t),m.fromRadians(e,t,n,a)};var y=new b,p=new b,g=new b,x=new b(1/6378137,1/6378137,1/6356752.314245179),M=new b(1/40680631590769,1/40680631590769,1/40408299984661.445),w=V.CesiumMath.EPSILON1;function v(e,t,n,a){t=c.defaultValue(t,0),n=c.defaultValue(n,0),a=c.defaultValue(a,0),e._radii=new b(t,n,a),e._radiiSquared=new b(t*t,n*n,a*a),e._radiiToTheFourth=new b(t*t*t*t,n*n*n*n,a*a*a*a),e._oneOverRadii=new b(0===t?0:1/t,0===n?0:1/n,0===a?0:1/a),e._oneOverRadiiSquared=new b(0===t?0:1/(t*t),0===n?0:1/(n*n),0===a?0:1/(a*a)),e._minimumRadius=Math.min(t,n,a),e._maximumRadius=Math.max(t,n,a),e._centerToleranceSquared=V.CesiumMath.EPSILON1,0!==e._radiiSquared.z&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function _(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,v(this,e,t,n)}m.fromCartesian=function(e,t,n){var a=A.defined(t)?t.oneOverRadii:x,i=A.defined(t)?t.oneOverRadiiSquared:M,r=l(e,a,i,A.defined(t)?t._centerToleranceSquared:w,p);if(A.defined(r)){var u=b.multiplyComponents(r,i,y);u=b.normalize(u,u);var o=b.subtract(e,r,g),d=Math.atan2(u.y,u.x),s=Math.asin(u.z),h=V.CesiumMath.sign(b.dot(o,e))*b.magnitude(o);return A.defined(n)?(n.longitude=d,n.latitude=s,n.height=h,n):new m(d,s,h)}},m.toCartesian=function(e,t,n){return b.fromRadians(e.longitude,e.latitude,e.height,t,n)},m.clone=function(e,t){if(A.defined(e))return A.defined(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new m(e.longitude,e.latitude,e.height)},m.equals=function(e,t){return e===t||A.defined(e)&&A.defined(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},m.equalsEpsilon=function(e,t,n){return e===t||A.defined(e)&&A.defined(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},m.ZERO=n.freezeObject(new m(0,0,0)),m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},a.defineProperties(_.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),_.clone=function(e,t){if(A.defined(e)){var n=e._radii;return A.defined(t)?(b.clone(n,t._radii),b.clone(e._radiiSquared,t._radiiSquared),b.clone(e._radiiToTheFourth,t._radiiToTheFourth),b.clone(e._oneOverRadii,t._oneOverRadii),b.clone(e._oneOverRadiiSquared,t._oneOverRadiiSquared),t._minimumRadius=e._minimumRadius,t._maximumRadius=e._maximumRadius,t._centerToleranceSquared=e._centerToleranceSquared,t):new _(n.x,n.y,n.z)}},_.fromCartesian3=function(e,t){return A.defined(t)||(t=new _),A.defined(e)&&v(t,e.x,e.y,e.z),t},_.WGS84=n.freezeObject(new _(6378137,6378137,6356752.314245179)),_.UNIT_SPHERE=n.freezeObject(new _(1,1,1)),_.MOON=n.freezeObject(new _(V.CesiumMath.LUNAR_RADIUS,V.CesiumMath.LUNAR_RADIUS,V.CesiumMath.LUNAR_RADIUS)),_.prototype.clone=function(e){return _.clone(this,e)},_.packedLength=b.packedLength,_.pack=function(e,t,n){return n=c.defaultValue(n,0),b.pack(e._radii,t,n),t},_.unpack=function(e,t,n){t=c.defaultValue(t,0);var a=b.unpack(e,t);return _.fromCartesian3(a,n)},_.prototype.geocentricSurfaceNormal=b.normalize,_.prototype.geodeticSurfaceNormalCartographic=function(e,t){var n=e.longitude,a=e.latitude,i=Math.cos(a),r=i*Math.cos(n),u=i*Math.sin(n),o=Math.sin(a);return A.defined(t)||(t=new b),t.x=r,t.y=u,t.z=o,b.normalize(t,t)},_.prototype.geodeticSurfaceNormal=function(e,t){return A.defined(t)||(t=new b),t=b.multiplyComponents(e,this._oneOverRadiiSquared,t),b.normalize(t,t)};var C=new b,z=new b;_.prototype.cartographicToCartesian=function(e,t){var n=C,a=z;this.geodeticSurfaceNormalCartographic(e,n),b.multiplyComponents(this._radiiSquared,n,a);var i=Math.sqrt(b.dot(n,a));return b.divideByScalar(a,i,a),b.multiplyByScalar(n,e.height,n),A.defined(t)||(t=new b),b.add(a,n,t)},_.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;A.defined(t)?t.length=n:t=new Array(n);for(var a=0;a=this._radii.z-t))return n},a.defineProperties(O.prototype,{width:{get:function(){return O.computeWidth(this)}},height:{get:function(){return O.computeHeight(this)}}}),O.packedLength=4,O.pack=function(e,t,n){return n=c.defaultValue(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},O.unpack=function(e,t,n){return t=c.defaultValue(t,0),A.defined(n)||(n=new O),n.west=e[t++],n.south=e[t++],n.east=e[t++],n.north=e[t],n},O.computeWidth=function(e){var t=e.east,n=e.west;return tV.CesiumMath.PI&&(a-=V.CesiumMath.TWO_PI),n>V.CesiumMath.PI&&(n-=V.CesiumMath.TWO_PI)),A.defined(t)?(t.west=n,t.south=u,t.east=a,t.north=o,t):new O(n,u,a,o)},O.fromCartesianArray=function(e,t,n){t=c.defaultValue(t,_.WGS84);for(var a=Number.MAX_VALUE,i=-Number.MAX_VALUE,r=Number.MAX_VALUE,u=-Number.MAX_VALUE,o=Number.MAX_VALUE,d=-Number.MAX_VALUE,s=0,h=e.length;sV.CesiumMath.PI&&(i-=V.CesiumMath.TWO_PI),a>V.CesiumMath.PI&&(a-=V.CesiumMath.TWO_PI)),A.defined(n)?(n.west=a,n.south=o,n.east=i,n.north=d,n):new O(a,o,i,d)},O.clone=function(e,t){if(A.defined(e))return A.defined(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new O(e.west,e.south,e.east,e.north)},O.equalsEpsilon=function(e,t,n){return e===t||A.defined(e)&&A.defined(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},O.prototype.clone=function(e){return O.clone(this,e)},O.prototype.equals=function(e){return O.equals(this,e)},O.equals=function(e,t){return e===t||A.defined(e)&&A.defined(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},O.prototype.equalsEpsilon=function(e,t){return O.equalsEpsilon(this,e,t)},O.validate=function(e){},O.southwest=function(e,t){return A.defined(t)?(t.longitude=e.west,t.latitude=e.south,t.height=0,t):new m(e.west,e.south)},O.northwest=function(e,t){return A.defined(t)?(t.longitude=e.west,t.latitude=e.north,t.height=0,t):new m(e.west,e.north)},O.northeast=function(e,t){return A.defined(t)?(t.longitude=e.east,t.latitude=e.north,t.height=0,t):new m(e.east,e.north)},O.southeast=function(e,t){return A.defined(t)?(t.longitude=e.east,t.latitude=e.south,t.height=0,t):new m(e.east,e.south)},O.center=function(e,t){var n=e.east,a=e.west;n=e.south&&a<=e.north};var R=new m;function P(e,t){this.x=c.defaultValue(e,0),this.y=c.defaultValue(t,0)}O.subsample=function(e,t,n,a){t=c.defaultValue(t,_.WGS84),n=c.defaultValue(n,0),A.defined(a)||(a=[]);var i=0,r=e.north,u=e.south,o=e.east,d=e.west,s=R;s.height=n,s.longitude=d,s.latitude=r,a[i]=t.cartographicToCartesian(s,a[i]),i++,s.longitude=o,a[i]=t.cartographicToCartesian(s,a[i]),i++,s.latitude=u,a[i]=t.cartographicToCartesian(s,a[i]),i++,s.longitude=d,a[i]=t.cartographicToCartesian(s,a[i]),i++,s.latitude=r<0?r:0