UNPKG

wkid

Version:

CGCS2000 coordinate system definitions library with multiple format support

121 lines (100 loc) 2.58 kB
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();