NONGYESHUZIDIZUO/public/Cesium/Workers/EllipsoidRhumbLine-394d2834.js

2 lines
6.5 KiB
JavaScript

define(["exports","./Cartographic-1d953166","./Check-2514d21d","./when-d186add7","./Rectangle-f841217d","./Math-7f5f2992"],(function(t,i,e,a,n,s){"use strict";function h(t,i,e){if(0===t)return i*e;var a=t*t,n=a*a,s=n*a,h=s*a,d=h*a,o=d*a,r=e;return i*((1-a/4-3*n/64-5*s/256-175*h/16384-441*d/65536-4851*o/1048576)*r-(3*a/8+3*n/32+45*s/1024+105*h/4096+2205*d/131072+6237*o/524288)*Math.sin(2*r)+(15*n/256+45*s/1024+525*h/16384+1575*d/65536+155925*o/8388608)*Math.sin(4*r)-(35*s/3072+175*h/12288+3675*d/262144+13475*o/1048576)*Math.sin(6*r)+(315*h/131072+2205*d/524288+43659*o/8388608)*Math.sin(8*r)-(693*d/1310720+6237*o/5242880)*Math.sin(10*r)+1001*o/8388608*Math.sin(12*r))}function d(t,i){if(0===t)return Math.log(Math.tan(.5*(s.e.PI_OVER_TWO+i)));var e=t*Math.sin(i);return Math.log(Math.tan(.5*(s.e.PI_OVER_TWO+i)))-t/2*Math.log((1+e)/(1-e))}var o=new i.t,r=new i.t;function u(t,a,n,u){var l=i.t.normalize(u.cartographicToCartesian(a,r),o),c=i.t.normalize(u.cartographicToCartesian(n,r),r);e.o.typeOf.number.greaterThanOrEquals("value",Math.abs(Math.abs(i.t.angleBetween(l,c))-Math.PI),.0125);var _=u.maximumRadius,g=u.minimumRadius,M=_*_,f=g*g;t._ellipticitySquared=(M-f)/M,t._ellipticity=Math.sqrt(t._ellipticitySquared),t._start=i.t$1.clone(a,t._start),t._start.height=0,t._end=i.t$1.clone(n,t._end),t._end.height=0,t._heading=function(t,i,e,a,n){var h=d(t._ellipticity,e),o=d(t._ellipticity,n);return Math.atan2(s.e.negativePiToPi(a-i),o-h)}(t,a.longitude,a.latitude,n.longitude,n.latitude),t._distance=function(t,i,e,a,n,d,o){var r=t._heading,u=d-a,l=0;if(s.e.equalsEpsilon(Math.abs(r),s.e.PI_OVER_TWO,s.e.EPSILON8))if(i===e)l=i*Math.cos(n)*s.e.negativePiToPi(u);else{var c=Math.sin(n);l=i*Math.cos(n)*s.e.negativePiToPi(u)/Math.sqrt(1-t._ellipticitySquared*c*c)}else{var _=h(t._ellipticity,i,n);l=(h(t._ellipticity,i,o)-_)/Math.cos(r)}return Math.abs(l)}(t,u.maximumRadius,u.minimumRadius,a.longitude,a.latitude,n.longitude,n.latitude)}function l(t,e,n,o,r,u){var l,c,_,g=r*r;if(Math.abs(s.e.PI_OVER_TWO-Math.abs(e))>s.e.EPSILON8){c=function(t,i,e){var a=t/e;if(0===i)return a;var n=a*a,s=n*a,h=s*a,d=i*i,o=d*d,r=o*d,u=r*d,l=u*d,c=l*d,_=Math.sin(2*a),g=Math.cos(2*a),M=Math.sin(4*a),f=Math.cos(4*a),p=Math.sin(6*a),P=Math.cos(6*a),v=Math.sin(8*a),O=Math.cos(8*a),m=Math.sin(10*a);return a+a*d/4+7*a*o/64+15*a*r/256+579*a*u/16384+1515*a*l/65536+16837*a*c/1048576+(3*a*o/16+45*a*r/256-a*(32*n-561)*u/4096-a*(232*n-1677)*l/16384+a*(399985-90560*n+512*h)*c/5242880)*g+(21*a*r/256+483*a*u/4096-a*(224*n-1969)*l/16384-a*(33152*n-112599)*c/1048576)*f+(151*a*u/4096+4681*a*l/65536+1479*a*c/16384-453*s*c/32768)*P+(1097*a*l/65536+42783*a*c/1048576)*O+8011*a*c/1048576*Math.cos(10*a)+(3*d/8+3*o/16+213*r/2048-3*n*r/64+255*u/4096-33*n*u/512+20861*l/524288-33*n*l/512+h*l/1024+28273*c/1048576-471*n*c/8192+9*h*c/4096)*_+(21*o/256+21*r/256+533*u/8192-21*n*u/512+197*l/4096-315*n*l/4096+584039*c/16777216-12517*n*c/131072+7*h*c/2048)*M+(151*r/6144+151*u/4096+5019*l/131072-453*n*l/16384+26965*c/786432-8607*n*c/131072)*p+(1097*u/131072+1097*l/65536+225797*c/10485760-1097*n*c/65536)*v+(8011*l/2621440+8011*c/1048576)*m+293393*c/251658240*Math.sin(12*a)}(h(r,o,t.latitude)+n*Math.cos(e),r,o);var M=d(r,t.latitude),f=d(r,c);_=Math.tan(e)*(f-M),l=s.e.negativePiToPi(t.longitude+_)}else{var p;if(c=t.latitude,0===r)p=o*Math.cos(t.latitude);else{var P=Math.sin(t.latitude);p=o*Math.cos(t.latitude)/Math.sqrt(1-g*P*P)}_=n/p,l=e>0?s.e.negativePiToPi(t.longitude+_):s.e.negativePiToPi(t.longitude-_)}return a.e(u)?(u.longitude=l,u.latitude=c,u.height=0,u):new i.t$1(l,c,0)}function c(t,e,s){var h=a.u(s,n.t.WGS84);this._ellipsoid=h,this._start=new i.t$1,this._end=new i.t$1,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,a.e(t)&&a.e(e)&&u(this,t,e,h)}Object.defineProperties(c.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return e.o.defined("distance",this._distance),this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return e.o.defined("distance",this._distance),this._heading}}}),c.fromStartHeadingDistance=function(t,i,h,d,o){e.o.defined("start",t),e.o.defined("heading",i),e.o.defined("distance",h),e.o.typeOf.number.greaterThan("distance",h,0);var r=a.u(d,n.t.WGS84),u=r.maximumRadius,_=r.minimumRadius,g=u*u,M=_*_,f=Math.sqrt((g-M)/g),p=l(t,i=s.e.negativePiToPi(i),h,r.maximumRadius,f);return!a.e(o)||a.e(d)&&!d.equals(o.ellipsoid)?new c(t,p,r):(o.setEndPoints(t,p),o)},c.prototype.setEndPoints=function(t,i){e.o.defined("start",t),e.o.defined("end",i),u(this,t,i,this._ellipsoid)},c.prototype.interpolateUsingFraction=function(t,i){return this.interpolateUsingSurfaceDistance(t*this._distance,i)},c.prototype.interpolateUsingSurfaceDistance=function(t,i){if(e.o.typeOf.number("distance",t),!a.e(this._distance)||0===this._distance)throw new e.t("EllipsoidRhumbLine must have distinct start and end set.");return l(this._start,this._heading,t,this._ellipsoid.maximumRadius,this._ellipticity,i)},c.prototype.findIntersectionWithLongitude=function(t,n){if(e.o.typeOf.number("intersectionLongitude",t),!a.e(this._distance)||0===this._distance)throw new e.t("EllipsoidRhumbLine must have distinct start and end set.");var h=this._ellipticity,d=this._heading,o=Math.abs(d),r=this._start;if(t=s.e.negativePiToPi(t),s.e.equalsEpsilon(Math.abs(t),Math.PI,s.e.EPSILON14)&&(t=s.e.sign(r.longitude)*Math.PI),a.e(n)||(n=new i.t$1),Math.abs(s.e.PI_OVER_TWO-o)<=s.e.EPSILON8)return n.longitude=t,n.latitude=r.latitude,n.height=0,n;if(s.e.equalsEpsilon(Math.abs(s.e.PI_OVER_TWO-o),s.e.PI_OVER_TWO,s.e.EPSILON8))return s.e.equalsEpsilon(t,r.longitude,s.e.EPSILON12)?void 0:(n.longitude=t,n.latitude=s.e.PI_OVER_TWO*s.e.sign(s.e.PI_OVER_TWO-d),n.height=0,n);var u,l=r.latitude,c=h*Math.sin(l),_=Math.tan(.5*(s.e.PI_OVER_TWO+l))*Math.exp((t-r.longitude)/Math.tan(d)),g=(1+c)/(1-c),M=r.latitude;do{u=M;var f=h*Math.sin(u),p=(1+f)/(1-f);M=2*Math.atan(_*Math.pow(p/g,h/2))-s.e.PI_OVER_TWO}while(!s.e.equalsEpsilon(M,u,s.e.EPSILON12));return n.longitude=t,n.latitude=M,n.height=0,n},c.prototype.findIntersectionWithLatitude=function(t,n){if(e.o.typeOf.number("intersectionLatitude",t),!a.e(this._distance)||0===this._distance)throw new e.t("EllipsoidRhumbLine must have distinct start and end set.");var h=this._ellipticity,o=this._heading,r=this._start;if(!s.e.equalsEpsilon(Math.abs(o),s.e.PI_OVER_TWO,s.e.EPSILON8)){var u=d(h,r.latitude),l=d(h,t),c=Math.tan(o)*(l-u),_=s.e.negativePiToPi(r.longitude+c);return a.e(n)?(n.longitude=_,n.latitude=t,n.height=0,n):new i.t$1(_,t,0)}},t.P=c}));