wkid
Version:
CGCS2000 coordinate system definitions library with multiple format support
283 lines (281 loc) • 26.4 kB
JavaScript
'use strict';
// wkid.ts
Object.defineProperty(exports, "__esModule", { value: true });
exports.CGCS2000_DEFINITIONS = exports.CGCS2000_GK_6DEG_WITH_ZONE = exports.CGCS2000_GK_6DEG_NO_ZONE = exports.CGCS2000_GK_3DEG_WITH_ZONE = exports.CGCS2000_GK_3DEG_NO_ZONE = exports.CGCS2000_GEOGRAPHIC = void 0;
exports.findCoordinateSystemByWkid = findCoordinateSystemByWkid;
exports.findCoordinateSystemByName = findCoordinateSystemByName;
exports.getGk3DegNoZone = getGk3DegNoZone;
exports.getGk3DegWithZone = getGk3DegWithZone;
exports.getGk6DegNoZone = getGk6DegNoZone;
exports.getGk6DegWithZone = getGk6DegWithZone;
/**
* CGCS2000地理坐标系定义
*/
exports.CGCS2000_GEOGRAPHIC = {
wkid: 4490,
name: "CGCS2000 Geographic Coordinate System",
ogcWkt: 'GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]]',
ogcWkt2: 'GEODCRS["China Geodetic Coordinate System 2000",DATUM["China 2000",ELLIPSOID["CGCS2000",6378137,298.257222101,LENGTHUNIT["metre",1.0],ID["EPSG",1024]],ID["EPSG",1043]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]],CS[ellipsoidal,2],AXIS["longitude",east,ORDER[1],ANGLEUNIT["degree",0.0174532925199433,ID["EPSG",9122]]],AXIS["latitude",north,ORDER[2],ANGLEUNIT["degree",0.0174532925199433,ID["EPSG",9122]]],ID["EPSG",4490]]',
esriWkt: 'GEOGCS["CGCS2000",DATUM["D_China_Geodetic_Coordinate_System_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]',
proj4: '+proj=longlat +ellps=GRS80 +no_defs',
proj4js: '+proj=longlat +ellps=GRS80 +datum=GRS80 +no_defs',
json: {
wkid: 4490,
latestWkid: 4490,
xyTolerance: 8.983152841195213e-9,
zTolerance: 0.001,
mTolerance: 0.001,
falseX: -400,
falseY: -400,
xyUnits: 11258999068426.24,
zUnits: 10000,
mUnits: 10000,
datum: {
wkid: 1043,
latestWkid: 1043,
ellipseName: "CGCS2000",
radius: 6378137,
flattening: 298.257222101
}
},
geoserver: '<ProjectionDefinition><name>EPSG:4490</name><wkt>GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]]</wkt></ProjectionDefinition>',
mapserver: 'PROJECTION "proj=longlat" "ellps=GRS80" "datum=GRS80" END',
mapnik: '+proj=longlat +ellps=GRS80 +datum=GRS80 +no_defs',
postgis: 'INSERT into spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext) values ( 4490, \'EPSG\', 4490, \'+proj=longlat +ellps=GRS80 +no_defs\', \'GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]]\');'
};
/**
* CGCS2000高斯-克吕格投影(3度带不带带号)定义
*/
exports.CGCS2000_GK_3DEG_NO_ZONE = [];
// 生成3度带不带带号定义 (EPSG:4534 - EPSG:4554)
for (let i = 25; i <= 45; i++) {
const centralMeridian = i * 3;
const wkid = 4533 + i - 24; // 从4534开始
exports.CGCS2000_GK_3DEG_NO_ZONE.push({
wkid: wkid,
name: `CGCS2000 / 3-degree Gauss-Kruger CM ${centralMeridian}E`,
ogcWkt: `PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM ${centralMeridian}E",GEOGCS["CGCS2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",${centralMeridian}],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","${wkid}"]]`,
ogcWkt2: `PROJCRS["CGCS2000 / 3-degree Gauss-Kruger CM ${centralMeridian}E",BASEGEODCRS["CGCS2000",DATUM["China 2000",ELLIPSOID["CGCS2000",6378137,298.257222101,LENGTHUNIT["metre",1.0],ID["EPSG",1024]],ID["EPSG",1043]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["3-degree Gauss-Kruger CM ${centralMeridian}E",METHOD["Transverse Mercator",ID["EPSG",9807]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",${centralMeridian},ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",1,SCALEUNIT["unity",1.0],ID["EPSG",8805]],PARAMETER["False easting",500000,LENGTHUNIT["metre",1.0],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1.0],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1.0,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1.0,ID["EPSG",9001]]],ID["EPSG",${wkid}]]`,
esriWkt: `PROJCS["CGCS2000_3_Degree_GK_CM_${centralMeridian}E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_Geodetic_Coordinate_System_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",${centralMeridian}],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]`,
proj4: `+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs`,
proj4js: `+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs`,
json: {
wkid: wkid,
latestWkid: wkid,
xyTolerance: 0.001,
zTolerance: 0.001,
mTolerance: 0.001,
falseX: -400,
falseY: -400,
xyUnits: 10000,
zUnits: 10000,
mUnits: 10000,
datum: {
wkid: 1043,
latestWkid: 1043,
ellipseName: "CGCS2000",
radius: 6378137,
flattening: 298.257222101
}
},
geoserver: `<ProjectionDefinition><name>EPSG:${wkid}</name><wkt>PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM ${centralMeridian}E",GEOGCS["CGCS2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",${centralMeridian}],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","${wkid}"]]</wkt></ProjectionDefinition>`,
mapserver: `PROJECTION "proj=tmerc" "lat_0=0" "lon_0=${centralMeridian}" "k=1" "x_0=500000" "y_0=0" "ellps=GRS80" "units=m" END`,
mapnik: `+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs`,
postgis: `INSERT into spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext) values ( ${wkid}, 'EPSG', ${wkid}, '+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs', 'PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM ${centralMeridian}E",GEOGCS["CGCS2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",${centralMeridian}],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","${wkid}"]]');`
});
}
/**
* CGCS2000高斯-克吕格投影(3度带带带号)定义
*/
exports.CGCS2000_GK_3DEG_WITH_ZONE = [];
// 生成3度带带带号定义 (EPSG:4513 - EPSG:4533)
for (let i = 25; i <= 45; i++) {
const zone = i;
const wkid = 4512 + zone - 24; // 从4513开始
const centralMeridian = zone * 3;
exports.CGCS2000_GK_3DEG_WITH_ZONE.push({
wkid: wkid,
name: `CGCS2000 / 3-degree Gauss-Kruger zone ${zone}`,
ogcWkt: `PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone ${zone}",GEOGCS["CGCS2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",${centralMeridian}],PARAMETER["scale_factor",1],PARAMETER["false_easting",${zone * 1000000 + 500000}],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","${wkid}"]]`,
ogcWkt2: `PROJCRS["CGCS2000 / 3-degree Gauss-Kruger zone ${zone}",BASEGEODCRS["CGCS2000",DATUM["China 2000",ELLIPSOID["CGCS2000",6378137,298.257222101,LENGTHUNIT["metre",1.0],ID["EPSG",1024]],ID["EPSG",1043]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["3-degree Gauss-Kruger zone ${zone}",METHOD["Transverse Mercator",ID["EPSG",9807]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",${centralMeridian},ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",1,SCALEUNIT["unity",1.0],ID["EPSG",8805]],PARAMETER["False easting",${zone * 1000000 + 500000},LENGTHUNIT["metre",1.0],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1.0],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1.0,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1.0,ID["EPSG",9001]]],ID["EPSG",${wkid}]]`,
esriWkt: `PROJCS["CGCS2000_3_Degree_GK_Zone_${zone}",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_Geodetic_Coordinate_System_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",${zone * 1000000 + 500000}],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",${centralMeridian}],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]`,
proj4: `+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=${zone * 1000000 + 500000} +y_0=0 +ellps=GRS80 +units=m +no_defs`,
proj4js: `+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=${zone * 1000000 + 500000} +y_0=0 +ellps=GRS80 +units=m +no_defs`,
json: {
wkid: wkid,
latestWkid: wkid,
xyTolerance: 0.001,
zTolerance: 0.001,
mTolerance: 0.001,
falseX: -400,
falseY: -400,
xyUnits: 10000,
zUnits: 10000,
mUnits: 10000,
datum: {
wkid: 1043,
latestWkid: 1043,
ellipseName: "CGCS2000",
radius: 6378137,
flattening: 298.257222101
}
},
geoserver: `<ProjectionDefinition><name>EPSG:${wkid}</name><wkt>PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone ${zone}",GEOGCS["CGCS2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",${centralMeridian}],PARAMETER["scale_factor",1],PARAMETER["false_easting",${zone * 1000000 + 500000}],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","${wkid}"]]</wkt></ProjectionDefinition>`,
mapserver: `PROJECTION "proj=tmerc" "lat_0=0" "lon_0=${centralMeridian}" "k=1" "x_0=${zone * 1000000 + 500000}" "y_0=0" "ellps=GRS80" "units=m" END`,
mapnik: `+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=${zone * 1000000 + 500000} +y_0=0 +ellps=GRS80 +units=m +no_defs`,
postgis: `INSERT into spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext) values ( ${wkid}, 'EPSG', ${wkid}, '+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=${zone * 1000000 + 500000} +y_0=0 +ellps=GRS80 +units=m +no_defs', 'PROJCS["CGCS2000 / 3-degree Gauss-Kruger zone ${zone}",GEOGCS["CGCS2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",${centralMeridian}],PARAMETER["scale_factor",1],PARAMETER["false_easting",${zone * 1000000 + 500000}],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","${wkid}"]]');`
});
}
/**
* CGCS2000高斯-克吕格投影(6度带不带带号)定义
*/
exports.CGCS2000_GK_6DEG_NO_ZONE = [];
// 生成6度带不带带号定义 (EPSG:4502 - EPSG:4512)
for (let i = 13; i <= 23; i++) {
const centralMeridian = i * 6 - 3;
const wkid = 4501 + i - 12; // 从4502开始
exports.CGCS2000_GK_6DEG_NO_ZONE.push({
wkid: wkid,
name: `CGCS2000 / 6-degree Gauss-Kruger CM ${centralMeridian}E`,
ogcWkt: `PROJCS["CGCS2000 / 6-degree Gauss-Kruger CM ${centralMeridian}E",GEOGCS["CGCS2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",${centralMeridian}],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","${wkid}"]]`,
ogcWkt2: `PROJCRS["CGCS2000 / 6-degree Gauss-Kruger CM ${centralMeridian}E",BASEGEODCRS["CGCS2000",DATUM["China 2000",ELLIPSOID["CGCS2000",6378137,298.257222101,LENGTHUNIT["metre",1.0],ID["EPSG",1024]],ID["EPSG",1043]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["6-degree Gauss-Kruger CM ${centralMeridian}E",METHOD["Transverse Mercator",ID["EPSG",9807]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",${centralMeridian},ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",1,SCALEUNIT["unity",1.0],ID["EPSG",8805]],PARAMETER["False easting",500000,LENGTHUNIT["metre",1.0],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1.0],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1.0,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1.0,ID["EPSG",9001]]],ID["EPSG",${wkid}]]`,
esriWkt: `PROJCS["CGCS2000_6_Degree_GK_CM_${centralMeridian}E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_Geodetic_Coordinate_System_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",${centralMeridian}],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]`,
proj4: `+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs`,
proj4js: `+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs`,
json: {
wkid: wkid,
latestWkid: wkid,
xyTolerance: 0.001,
zTolerance: 0.001,
mTolerance: 0.001,
falseX: -400,
falseY: -400,
xyUnits: 10000,
zUnits: 10000,
mUnits: 10000,
datum: {
wkid: 1043,
latestWkid: 1043,
ellipseName: "CGCS2000",
radius: 6378137,
flattening: 298.257222101
}
},
geoserver: `<ProjectionDefinition><name>EPSG:${wkid}</name><wkt>PROJCS["CGCS2000 / 6-degree Gauss-Kruger CM ${centralMeridian}E",GEOGCS["CGCS2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",${centralMeridian}],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","${wkid}"]]</wkt></ProjectionDefinition>`,
mapserver: `PROJECTION "proj=tmerc" "lat_0=0" "lon_0=${centralMeridian}" "k=1" "x_0=500000" "y_0=0" "ellps=GRS80" "units=m" END`,
mapnik: `+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs`,
postgis: `INSERT into spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext) values ( ${wkid}, 'EPSG', ${wkid}, '+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs', 'PROJCS["CGCS2000 / 6-degree Gauss-Kruger CM ${centralMeridian}E",GEOGCS["CGCS2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",${centralMeridian}],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","${wkid}"]]');`
});
}
/**
* CGCS2000高斯-克吕格投影(6度带带带号)定义
*/
exports.CGCS2000_GK_6DEG_WITH_ZONE = [];
// 生成6度带带带号定义 (EPSG:4491 - EPSG:4501)
for (let i = 13; i <= 23; i++) {
const zone = i;
const wkid = 4490 + zone - 12; // 从4491开始
const centralMeridian = zone * 6 - 3;
exports.CGCS2000_GK_6DEG_WITH_ZONE.push({
wkid: wkid,
name: `CGCS2000 / 6-degree Gauss-Kruger zone ${zone}`,
ogcWkt: `PROJCS["CGCS2000 / 6-degree Gauss-Kruger zone ${zone}",GEOGCS["CGCS2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",${centralMeridian}],PARAMETER["scale_factor",1],PARAMETER["false_easting",${zone * 1000000 + 500000}],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","${wkid}"]]`,
ogcWkt2: `PROJCRS["CGCS2000 / 6-degree Gauss-Kruger zone ${zone}",BASEGEODCRS["CGCS2000",DATUM["China 2000",ELLIPSOID["CGCS2000",6378137,298.257222101,LENGTHUNIT["metre",1.0],ID["EPSG",1024]],ID["EPSG",1043]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["6-degree Gauss-Kruger zone ${zone}",METHOD["Transverse Mercator",ID["EPSG",9807]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",${centralMeridian},ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",1,SCALEUNIT["unity",1.0],ID["EPSG",8805]],PARAMETER["False easting",${zone * 1000000 + 500000},LENGTHUNIT["metre",1.0],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1.0],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1.0,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1.0,ID["EPSG",9001]]],ID["EPSG",${wkid}]]`,
esriWkt: `PROJCS["CGCS2000_6_Degree_GK_Zone_${zone}",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_Geodetic_Coordinate_System_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",${zone * 1000000 + 500000}],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",${centralMeridian}],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]`,
proj4: `+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=${zone * 1000000 + 500000} +y_0=0 +ellps=GRS80 +units=m +no_defs`,
proj4js: `+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=${zone * 1000000 + 500000} +y_0=0 +ellps=GRS80 +units=m +no_defs`,
json: {
wkid: wkid,
latestWkid: wkid,
xyTolerance: 0.001,
zTolerance: 0.001,
mTolerance: 0.001,
falseX: -400,
falseY: -400,
xyUnits: 10000,
zUnits: 10000,
mUnits: 10000,
datum: {
wkid: 1043,
latestWkid: 1043,
ellipseName: "CGCS2000",
radius: 6378137,
flattening: 298.257222101
}
},
geoserver: `<ProjectionDefinition><name>EPSG:${wkid}</name><wkt>PROJCS["CGCS2000 / 6-degree Gauss-Kruger zone ${zone}",GEOGCS["CGCS2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",${centralMeridian}],PARAMETER["scale_factor",1],PARAMETER["false_easting",${zone * 1000000 + 500000}],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","${wkid}"]]</wkt></ProjectionDefinition>`,
mapserver: `PROJECTION "proj=tmerc" "lat_0=0" "lon_0=${centralMeridian}" "k=1" "x_0=${zone * 1000000 + 500000}" "y_0=0" "ellps=GRS80" "units=m" END`,
mapnik: `+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=${zone * 1000000 + 500000} +y_0=0 +ellps=GRS80 +units=m +no_defs`,
postgis: `INSERT into spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext) values ( ${wkid}, 'EPSG', ${wkid}, '+proj=tmerc +lat_0=0 +lon_0=${centralMeridian} +k=1 +x_0=${zone * 1000000 + 500000} +y_0=0 +ellps=GRS80 +units=m +no_defs', 'PROJCS["CGCS2000 / 6-degree Gauss-Kruger zone ${zone}",GEOGCS["CGCS2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",${centralMeridian}],PARAMETER["scale_factor",1],PARAMETER["false_easting",${zone * 1000000 + 500000}],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","${wkid}"]]');`
});
}
/**
* 所有CGCS2000坐标系定义的集合
*/
exports.CGCS2000_DEFINITIONS = [
exports.CGCS2000_GEOGRAPHIC,
...exports.CGCS2000_GK_6DEG_WITH_ZONE,
...exports.CGCS2000_GK_6DEG_NO_ZONE,
...exports.CGCS2000_GK_3DEG_WITH_ZONE,
...exports.CGCS2000_GK_3DEG_NO_ZONE
];
/**
* 根据WKID查找坐标系定义
* @param wkid 坐标系WKID
* @returns 坐标系定义或undefined
*/
function findCoordinateSystemByWkid(wkid) {
return exports.CGCS2000_DEFINITIONS.find(cs => cs.wkid === wkid);
}
/**
* 根据名称查找坐标系定义
* @param name 坐标系名称
* @returns 坐标系定义或undefined
*/
function findCoordinateSystemByName(name) {
return exports.CGCS2000_DEFINITIONS.find(cs => cs.name === name);
}
/**
* 获取所有3度带不带带号坐标系定义
* @returns 3度带不带带号坐标系定义数组
*/
function getGk3DegNoZone() {
return [...exports.CGCS2000_GK_3DEG_NO_ZONE];
}
/**
* 获取所有3度带带带号坐标系定义
* @returns 3度带带带号坐标系定义数组
*/
function getGk3DegWithZone() {
return [...exports.CGCS2000_GK_3DEG_WITH_ZONE];
}
/**
* 获取所有6度带不带带号坐标系定义
* @returns 6度带不带带号坐标系定义数组
*/
function getGk6DegNoZone() {
return [...exports.CGCS2000_GK_6DEG_NO_ZONE];
}
/**
* 获取所有6度带带带号坐标系定义
* @returns 6度带带带号坐标系定义数组
*/
function getGk6DegWithZone() {
return [...exports.CGCS2000_GK_6DEG_WITH_ZONE];
}
exports.default = {
CGCS2000_GEOGRAPHIC: exports.CGCS2000_GEOGRAPHIC,
CGCS2000_GK_3DEG_NO_ZONE: exports.CGCS2000_GK_3DEG_NO_ZONE,
CGCS2000_GK_3DEG_WITH_ZONE: exports.CGCS2000_GK_3DEG_WITH_ZONE,
CGCS2000_GK_6DEG_NO_ZONE: exports.CGCS2000_GK_6DEG_NO_ZONE,
CGCS2000_GK_6DEG_WITH_ZONE: exports.CGCS2000_GK_6DEG_WITH_ZONE,
CGCS2000_DEFINITIONS: exports.CGCS2000_DEFINITIONS,
findCoordinateSystemByWkid,
findCoordinateSystemByName,
getGk3DegNoZone,
getGk3DegWithZone,
getGk6DegNoZone,
getGk6DegWithZone
};
console.log(findCoordinateSystemByWkid(4491));
//# sourceMappingURL=wkid.js.map