Skip to content

Commit

Permalink
feat: type-friendly export mode
Browse files Browse the repository at this point in the history
  • Loading branch information
hujiulong committed Jan 16, 2023
1 parent a6155e8 commit dc48766
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 136 deletions.
156 changes: 36 additions & 120 deletions src/crs/BD09MC.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,150 +6,66 @@ const MCBAND = [12890594.86, 8362377.87, 5591021, 3481989.83, 1678043.12, 0];
const LLBAND = [75, 60, 45, 30, 15, 0];
const MC2LL = [
[
1.410526172116255e-8,
0.00000898305509648872,
-1.9939833816331,
200.9824383106796,
-187.2403703815547,
91.6087516669843,
-23.38765649603339,
2.57121317296198,
-0.03801003308653,
17337981.2,
1.410526172116255e-8, 0.00000898305509648872, -1.9939833816331,
200.9824383106796, -187.2403703815547, 91.6087516669843, -23.38765649603339,
2.57121317296198, -0.03801003308653, 17337981.2,
],
[
-7.435856389565537e-9,
0.000008983055097726239,
-0.78625201886289,
96.32687599759846,
-1.85204757529826,
-59.36935905485877,
47.40033549296737,
-16.50741931063887,
2.28786674699375,
10260144.86,
-7.435856389565537e-9, 0.000008983055097726239, -0.78625201886289,
96.32687599759846, -1.85204757529826, -59.36935905485877, 47.40033549296737,
-16.50741931063887, 2.28786674699375, 10260144.86,
],
[
-3.030883460898826e-8,
0.00000898305509983578,
0.30071316287616,
59.74293618442277,
7.357984074871,
-25.38371002664745,
13.45380521110908,
-3.29883767235584,
0.32710905363475,
6856817.37,
-3.030883460898826e-8, 0.00000898305509983578, 0.30071316287616,
59.74293618442277, 7.357984074871, -25.38371002664745, 13.45380521110908,
-3.29883767235584, 0.32710905363475, 6856817.37,
],
[
-1.981981304930552e-8,
0.000008983055099779535,
0.03278182852591,
40.31678527705744,
0.65659298677277,
-4.44255534477492,
0.85341911805263,
0.12923347998204,
-0.04625736007561,
4482777.06,
-1.981981304930552e-8, 0.000008983055099779535, 0.03278182852591,
40.31678527705744, 0.65659298677277, -4.44255534477492, 0.85341911805263,
0.12923347998204, -0.04625736007561, 4482777.06,
],
[
3.09191371068437e-9,
0.000008983055096812155,
0.00006995724062,
23.10934304144901,
-0.00023663490511,
-0.6321817810242,
-0.00663494467273,
0.03430082397953,
-0.00466043876332,
2555164.4,
3.09191371068437e-9, 0.000008983055096812155, 0.00006995724062,
23.10934304144901, -0.00023663490511, -0.6321817810242, -0.00663494467273,
0.03430082397953, -0.00466043876332, 2555164.4,
],
[
2.890871144776878e-9,
0.000008983055095805407,
-3.068298e-8,
7.47137025468032,
-0.00000353937994,
-0.02145144861037,
-0.00001234426596,
0.00010322952773,
-0.00000323890364,
826088.5,
2.890871144776878e-9, 0.000008983055095805407, -3.068298e-8,
7.47137025468032, -0.00000353937994, -0.02145144861037, -0.00001234426596,
0.00010322952773, -0.00000323890364, 826088.5,
],
];
const LL2MC = [
[
-0.0015702102444,
111320.7020616939,
1704480524535203,
-10338987376042340,
26112667856603880,
-35149669176653700,
26595700718403920,
-10725012454188240,
1800819912950474,
82.5,
-0.0015702102444, 111320.7020616939, 1704480524535203, -10338987376042340,
26112667856603880, -35149669176653700, 26595700718403920,
-10725012454188240, 1800819912950474, 82.5,
],
[
0.0008277824516172526,
111320.7020463578,
647795574.6671607,
-4082003173.641316,
10774905663.51142,
-15171875531.51559,
12053065338.62167,
-5124939663.577472,
913311935.9512032,
67.5,
0.0008277824516172526, 111320.7020463578, 647795574.6671607,
-4082003173.641316, 10774905663.51142, -15171875531.51559,
12053065338.62167, -5124939663.577472, 913311935.9512032, 67.5,
],
[
0.00337398766765,
111320.7020202162,
4481351.045890365,
-23393751.19931662,
79682215.47186455,
-115964993.2797253,
97236711.15602145,
-43661946.33752821,
8477230.501135234,
52.5,
0.00337398766765, 111320.7020202162, 4481351.045890365, -23393751.19931662,
79682215.47186455, -115964993.2797253, 97236711.15602145,
-43661946.33752821, 8477230.501135234, 52.5,
],
[
0.00220636496208,
111320.7020209128,
51751.86112841131,
3796837.749470245,
992013.7397791013,
-1221952.21711287,
1340652.697009075,
-620943.6990984312,
144416.9293806241,
37.5,
0.00220636496208, 111320.7020209128, 51751.86112841131, 3796837.749470245,
992013.7397791013, -1221952.21711287, 1340652.697009075, -620943.6990984312,
144416.9293806241, 37.5,
],
[
-0.0003441963504368392,
111320.7020576856,
278.2353980772752,
2485758.690035394,
6070.750963243378,
54821.18345352118,
9540.606633304236,
-2710.55326746645,
1405.483844121726,
22.5,
-0.0003441963504368392, 111320.7020576856, 278.2353980772752,
2485758.690035394, 6070.750963243378, 54821.18345352118, 9540.606633304236,
-2710.55326746645, 1405.483844121726, 22.5,
],
[
-0.0003218135878613132,
111320.7020701615,
0.00369383431289,
823725.6402795718,
0.46104986909093,
2351.343141331292,
1.58060784298199,
8.77738589078284,
0.37238884252424,
7.45,
-0.0003218135878613132, 111320.7020701615, 0.00369383431289,
823725.6402795718, 0.46104986909093, 2351.343141331292, 1.58060784298199,
8.77738589078284, 0.37238884252424, 7.45,
],
];

Expand Down
39 changes: 24 additions & 15 deletions src/helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import {
Feature,
FeatureCollection,
GeometryCollection,
Geometry,
Position,
Point,
LineString,
MultiPoint,
Expand Down Expand Up @@ -67,11 +69,8 @@ export function isString(input: any): input is string {

/**
* compose
*
* @param {function[]} functions
* @returns {function}
*/
export function compose(...funcs: Function[]) {
export function compose(...funcs: Function[]): Function {
const start = funcs.length - 1;
/* eslint-disable func-names */
return function (...args: any[]) {
Expand Down Expand Up @@ -108,22 +107,32 @@ export function compose(...funcs: Function[]) {
/* eslint-disable no-param-reassign */
export function coordEach(
geojson: GeoJSON,
callback: Function,
callback: (
currentCoord: Position,
coordIndex: number,
featureIndex: number,
multiFeatureIndex: number,
geometryIndex: number
) => any,
excludeWrapCoord = false
): boolean | void | never {
// Handles null Geometry -- Skips this GeoJSON
if (geojson === null) return;
/* eslint-disable-next-line */
let j,
k,
l,
geometry,
stopG,
coords,
geometryMaybeCollection,
wrapShrink = 0,
coordIndex = 0,
isGeometryCollection;

let j: number;
let k: number;
let l: number;
let geometry: Geometry | GeometryCollection | null;
let coords: Position | Position[] | Position[][] | Position[][][];
let stopG: number;

let wrapShrink = 0;
let coordIndex = 0;

let geometryMaybeCollection: any;

let isGeometryCollection: boolean;

const { type } = geojson;
const isFeatureCollection = type === 'FeatureCollection';
Expand Down
7 changes: 6 additions & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
import { CRSTypes } from './crs';

import transform from './transform';

export { GeoJSON } from './geojson';

export { CRSTypes };

export { transform };

const exported = {
...CRSTypes, // 兼容原来gcoord.WGS84的使用方式
CRSTypes,
Expand Down

0 comments on commit dc48766

Please sign in to comment.