wkid
Version:
CGCS2000 coordinate system definitions library with multiple format support
152 lines (109 loc) • 4.04 kB
Markdown
# WKID 坐标系定义库
一个完整的中国2000国家大地坐标系(CGCS2000)坐标系定义库,包含各种投影格式的定义。
## 简介
本库提供了CGCS2000坐标系的完整定义,包括地理坐标系和多种投影坐标系。所有坐标系定义都包含了在不同GIS平台和库中使用的格式,如OGC WKT、ESRI WKT、PROJ4、GeoServer、MapServer、Mapnik和PostGIS等。
## 安装
```bash
npm install wkid
```
## 使用方法
### 作为库使用
```javascript
import {
CGCS2000_GEOGRAPHIC,
CGCS2000_GK_3DEG_NO_ZONE,
CGCS2000_GK_3DEG_WITH_ZONE,
CGCS2000_GK_6DEG_NO_ZONE,
CGCS2000_GK_6DEG_WITH_ZONE,
CGCS2000_DEFINITIONS,
findCoordinateSystemByWkid,
findCoordinateSystemByName
} from 'wkid';
```
### 访问特定坐标系
```javascript
// 获取地理坐标系
console.log(CGCS2000_GEOGRAPHIC);
// 获取3度带不带带号投影
console.log(CGCS2000_GK_3DEG_NO_ZONE);
// 获取3度带带带号投影
console.log(CGCS2000_GK_3DEG_WITH_ZONE);
// 获取6度带不带带号投影
console.log(CGCS2000_GK_6DEG_NO_ZONE);
// 获取6度带带带号投影
console.log(CGCS2000_GK_6DEG_WITH_ZONE);
```
### 查找坐标系
```javascript
// 通过WKID查找
const coordSystem = findCoordinateSystemByWkid(4490);
console.log(coordSystem.name); // "CGCS2000 Geographic Coordinate System"
// 通过名称查找
const coordSystem2 = findCoordinateSystemByName("CGCS2000 / 3-degree Gauss-Kruger zone 25");
console.log(coordSystem2.wkid); // 4513
```
### 使用命令行工具
安装后,您可以直接使用命令行工具查询坐标系信息:
```bash
# 交互式查询
npx wkid
# 查询指定WKID
npx wkid 4490
# 显示帮助信息
npx wkid --help
```
## 坐标系分类
### 地理坐标系
- **WKID**: 4490
- **名称**: CGCS2000 Geographic Coordinate System
### 高斯-克吕格投影
#### 3度带不带带号
- **WKID范围**: 4534 - 4554
- **中央子午线**: 75°E - 135°E (间隔3°)
- **特点**: false easting为500000,不包含带号
#### 3度带带带号
- **WKID范围**: 4513 - 4533
- **分带**: 25 - 45带
- **中央子午线**: 75°E - 135°E (间隔3°)
- **特点**: false easting为带号×1000000+500000,包含带号
#### 6度带不带带号
- **WKID范围**: 4502 - 4512
- **中央子午线**: 75°E - 135°E (间隔6°)
- **特点**: false easting为500000,不包含带号
#### 6度带带带号
- **WKID范围**: 4491 - 4501
- **分带**: 1 - 11带
- **中央子午线**: 3°E - 63°E (间隔6°)
- **特点**: false easting为带号×1000000+500000,包含带号
## 坐标系定义格式
每个坐标系定义包含以下属性:
- [wkid](file:///Users/xianhao/jvy/nodejs/cgcs2000/wkid/src/wkid.ts#L25-L25): EPSG WKID编码
- [name](file:///Users/xianhao/jvy/nodejs/cgcs2000/wkid/src/wkid.ts#L26-L26): 坐标系名称
- [ogcWkt](file:///Users/xianhao/jvy/nodejs/cgcs2000/wkid/src/wkid.ts#L27-L27): OGC WKT格式定义
- [ogcWkt2](file:///Users/xianhao/jvy/nodejs/cgcs2000/wkid/src/wkid.ts#L28-L28): OGC WKT2格式定义
- [esriWkt](file:///Users/xianhao/jvy/nodejs/cgcs2000/wkid/src/wkid.ts#L29-L29): ESRI WKT格式定义
- [proj4](file:///Users/xianhao/jvy/nodejs/cgcs2000/wkid/src/wkid.ts#L30-L30): PROJ4字符串
- [proj4js](file:///Users/xianhao/jvy/nodejs/cgcs2000/wkid/src/wkid.ts#L31-L31): PROJ4JS字符串
- [json](file:///Users/xianhao/jvy/nodejs/cgcs2000/wkid/src/wkid.ts#L32-L50): JSON格式定义
- [geoserver](file:///Users/xianhao/jvy/nodejs/cgcs2000/wkid/src/wkid.ts#L51-L51): GeoServer配置
- [mapserver](file:///Users/xianhao/jvy/nodejs/cgcs2000/wkid/src/wkid.ts#L52-L52): MapServer配置
- [mapnik](file:///Users/xianhao/jvy/nodejs/cgcs2000/wkid/src/wkid.ts#L53-L53): Mapnik配置
- [postgis](file:///Users/xianhao/jvy/nodejs/cgcs2000/wkid/src/wkid.ts#L54-L54): PostGIS插入语句
## 开发
### 构建项目
```bash
npm run build
```
### 运行测试
```bash
npm test
```
### 生成覆盖率报告
```bash
npm run coverage
```
## 许可证
MIT
## 贡献
欢迎提交Issue和Pull Request来改进这个库。
```