中国地图分幅编号计算工具

发布于:2025-06-26 ⋅ 阅读:(20) ⋅ 点赞:(0)

fenfu

中国地图分幅编号计算工具,符合GB/T 13989-2012国家标准。支持单点计算和范围查询,适用于测绘、GIS开发、城市规划等场景。

特性

  • ✅ 支持8种比例尺(100万至5000)
  • ✅ 单点坐标转图幅编号
  • ✅ 矩形范围批量图幅查询
  • ✅ 自动处理高纬度特殊分幅规则
  • ✅ 输入验证与错误处理
  • ✅ TypeScript类型支持

安装

npm install fenfu
# 或
yarn add fenfu

使用示例

1. 单点计算

const MapSheetCalculator = require('fenfu');
// 或
import MapSheetCalculator from 'fenfu';

// 计算北京天安门(1:10万)
const code = MapSheetCalculator.calculate(116.3912, 39.9067, '10万');
console.log(code); // 输出:J50B001002

2. 范围查询

// 计算北京市朝阳区范围(1:5万比例尺)
const codes = MapSheetCalculator.calculateInRange(
  116.4, 39.8,   // 西南角(经度,纬度)
  116.6, 40.0,   // 东北角
  '5万'
);
console.log(codes);
/* 输出示例:
[
  'J50E001001',
  'J50E001002',
  'J50E002001',
  'J50E002002',
  'J50E003001'
]
*/

API文档

calculate(lng, lat, scale)

  • 参数
    • lng number 经度(-180~180)
    • lat number 纬度(-90~90)
    • scale string 比例尺(支持值:100万50万25万10万5万2.5万1万5000
  • 返回string 图幅编号
  • 错误:无效输入时抛出异常

calculateInRange(minLng, minLat, maxLng, maxLat, scale)

  • 参数
    • minLng number 范围最小经度
    • minLat number 范围最小纬度
    • maxLng number 范围最大经度
    • maxLat number 范围最大纬度
    • scale string 比例尺
  • 返回string[] 覆盖范围内的所有图幅编号
  • 注意:大范围计算可能返回大量结果,建议分块处理
    ##用户可以通过以下命令验证安装:
npm install fenfu
node -e "console.log(require('fenfu').calculate(116.3912, 39.9067, '10万'))"
npm install fenfu
node -e "console.log(require('fenfu').calculateInRange(116.2, 39.8,116.5, 40.0,'10万'))"

node -e “console.log(require(‘fenfu’).calculateInRange(116.4, 39.8, 116.6, 40.0, ‘5万’))”


网站公告

今日签到

点亮在社区的每一天
去签到