UNPKG

@huaiyinhcy/trans-coord

Version:

支持墨卡托(Mercator)、WGS84、高德(GCJ02)、百度(BD09)之间的坐标转换,无需调用外部接口,可在本地直接执行。

2 lines (1 loc) 2.01 kB
(function(c,a){typeof exports=="object"&&typeof module!="undefined"?a(exports,require("@turf/turf")):typeof define=="function"&&define.amd?define(["exports","@turf/turf"],a):(c=typeof globalThis!="undefined"?globalThis:c||self,a(c["trans-coord"]={},c.turf))})(this,function(c,a){"use strict";const s=Math.PI,j=6378245,m=.006693421622965943,d=s*3e3/180;function g([t,o]){return t<72.004||t>137.8347?!0:o<.8293||o>55.8271}function W([t,o]){let e=G(t-105,o-35),n=b(t-105,o-35);const i=o/180*s;let r=Math.sin(i);r=1-m*r*r;const q=Math.sqrt(r);return e=e*180/(j*(1-m)/(r*q)*s),n=n*180/(j/q*Math.cos(i)*s),[n,e]}function G(t,o){let e=-100+2*t+3*o+.2*o*o+.1*t*o+.2*Math.sqrt(Math.abs(t));return e+=(20*Math.sin(6*t*s)+20*Math.sin(2*t*s))*2/3,e+=(20*Math.sin(o*s)+40*Math.sin(o/3*s))*2/3,e+=(160*Math.sin(o/12*s)+320*Math.sin(o*s/30))*2/3,e}function b(t,o){let e=300+t+2*o+.1*t*t+.1*t*o+.1*Math.sqrt(Math.abs(t));return e+=(20*Math.sin(6*t*s)+20*Math.sin(2*t*s))*2/3,e+=(20*Math.sin(t*s)+40*Math.sin(t/3*s))*2/3,e+=(150*Math.sin(t/12*s)+300*Math.sin(t/30*s))*2/3,e}const u={toWgs84:t=>{const o=a.toWgs84(a.point(t)).geometry.coordinates;return[o[0],o[1]]},toGcj02:t=>M.toGcj02(u.toWgs84(t)),toBd09:t=>h.toBd09(u.toGcj02(t))},M={toMerc:t=>a.toMercator(a.point(t)).geometry.coordinates,toGcj02:([t,o])=>{if(!g([t,o])){const[e,n]=W([t,o]);t+=e,o+=n}return[t,o]},toBd09:t=>h.toBd09(M.toGcj02(t))},h={toWgs84:([t,o])=>{if(!g([t,o])){const[e,n]=W([t,o]);t-=e,o-=n}return[t,o]},toBd09:([t,o])=>{let e=t,n=o;const i=Math.sqrt(e*e+n*n)+2e-5*Math.sin(n*d),r=Math.atan2(n,e)+3e-6*Math.cos(e*d);return e=i*Math.cos(r)+.0065,n=i*Math.sin(r)+.006,[e,n]},toMerc:t=>M.toMerc(h.toWgs84(t))},f={toWgs84:t=>h.toWgs84(f.toGcj02(t)),toGcj02:([t,o])=>{let e=t-.0065,n=o-.006;const i=Math.sqrt(e*e+n*n)-2e-5*Math.sin(n*d),r=Math.atan2(n,e)-3e-6*Math.cos(e*d);return e=i*Math.cos(r),n=i*Math.sin(r),[e,n]},toMerc:t=>M.toMerc(f.toWgs84(t))};c.bd09=f,c.gcj02=h,c.merc=u,c.wgs84=M,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});