You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2 lines
953 B
2 lines
953 B
const t=Math.PI;function n(t,n){return t<72.004||t>137.8347||n<.8293||n>55.8271}function a(a,s){if(n(a,s))return{lng:a,lat:s};const h=6378245,i=.006693421622965943;let M=function(n,a){let s=2*n-100+3*a+.2*a*a+.1*n*a+.2*Math.sqrt(Math.abs(n));return s+=2*(20*Math.sin(6*n*t)+20*Math.sin(2*n*t))/3,s+=2*(20*Math.sin(a*t)+40*Math.sin(a/3*t))/3,s+=2*(160*Math.sin(a/12*t)+320*Math.sin(a*t/30))/3,s}(a-105,s-35),r=function(n,a){let s=300+n+2*a+.1*n*n+.1*n*a+.1*Math.sqrt(Math.abs(n));return s+=2*(20*Math.sin(6*n*t)+20*Math.sin(2*n*t))/3,s+=2*(20*Math.sin(n*t)+40*Math.sin(n/3*t))/3,s+=2*(150*Math.sin(n/12*t)+300*Math.sin(n/30*t))/3,s}(a-105,s-35);const l=s/180*t;let e=Math.sin(l);e=1-i*e*e;const o=Math.sqrt(e);return M=180*M/(h*(1-i)/(e*o)*t),r=180*r/(h/o*Math.cos(l)*t),{lng:a+r,lat:s+M}}function s(t,s){if(n(t,s))return{lng:t,lat:s};let h=t,i=s;for(let n=0;n<2;n++){const n=a(h,i);h=t-(n.lng-h),i=s-(n.lat-i)}return{lng:h,lat:i}}export{s as g,a as w};
|