wkid
Version:
CGCS2000 coordinate system definitions library with multiple format support
121 lines (100 loc) • 2.58 kB
JavaScript
const {
findCoordinateSystemByWkid,
findCoordinateSystemByName,
CGCS2000_GEOGRAPHIC,
CGCS2000_GK_3DEG_NO_ZONE,
CGCS2000_GK_3DEG_WITH_ZONE,
CGCS2000_GK_6DEG_NO_ZONE,
CGCS2000_GK_6DEG_WITH_ZONE
} = require('../dist/wkid.js');
const readline = require('readline');
// 创建readline接口
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// 显示帮助信息
function showHelp() {
console.log(`
WKID查询工具
使用方法:
1. 直接运行此工具,然后按提示输入WKID
2. node wkid-cli.js <wkid> - 直接查询指定WKID
3. node wkid-cli.js --help - 显示此帮助信息
支持的WKID范围:
- 地理坐标系: 4490
- 3度带不带带号: 4534-4554
- 3度带带带号: 4513-4533
- 6度带不带带号: 4502-4512
- 6度带带带号: 4491-4501
`);
}
// 格式化显示坐标系信息
function displayCoordinateSystem(cs) {
if (!cs) {
console.log('未找到对应的坐标系定义');
return;
}
console.log(`
坐标系信息:
WKID: ${cs.wkid}
名称: ${cs.name}
OGC WKT: ${cs.ogcWkt}
ESRI WKT: ${cs.esriWkt}
PROJ4: ${cs.proj4}
`);
}
// 交互式查询
function interactiveQuery() {
console.log('WKID坐标系查询工具 (输入 "quit" 或 "exit" 退出)');
console.log('支持的WKID范围: 4490-4554');
const prompt = () => {
rl.question('\n请输入WKID: ', (input) => {
const command = input.trim().toLowerCase();
if (command === 'quit' || command === 'exit') {
console.log('再见!');
rl.close();
return;
}
if (command === 'help') {
showHelp();
prompt();
return;
}
const wkid = parseInt(input);
if (isNaN(wkid)) {
console.log('请输入有效的数字WKID');
prompt();
return;
}
const result = findCoordinateSystemByWkid(wkid);
displayCoordinateSystem(result);
prompt();
});
};
prompt();
}
// 主函数
function main() {
const args = process.argv.slice(2);
// 显示帮助
if (args.includes('--help') || args.includes('-h')) {
showHelp();
return;
}
// 直接查询WKID
if (args.length > 0) {
const wkid = parseInt(args[0]);
if (isNaN(wkid)) {
console.log('错误: 请输入有效的数字WKID');
process.exit(1);
}
const result = findCoordinateSystemByWkid(wkid);
displayCoordinateSystem(result);
return;
}
// 交互式查询
interactiveQuery();
}
// 运行主函数
main();