爬板
GeoJSON数据集跟踪全球所有攀岩训练/系统板;
包括 月球板, Kilter板,拉力板,Grasshopper板,诱饵
Board, So iLL Board, Touchstone Board, Aurora Board和12Climb Board。这
数据集每天通过GitHub Actions自动更新。
更新05 - 2026MoonBoard从此停止更新 GetMapMarkers 删除了。
数据源
存储库从多个攀岩板应用程序和 将其转换为GeoJSON,这是一种轻量级的开放标准格式,非常适合 地图应用和地理数据可视化。探索个人 GeoJSON.io上的板块:
数据结构
这个 /data 目录包含:
- 来自每个源的原始JSON位置数据
- 从各种极光攀登API端点抓取数据
这个 /geojson 目录包含:
- 每个攀岩板类型的单独GeoJSON文件
- 包含所有位置的组合GeoJSON文件
这个 /api 目录包含:
- 每个攀岩板服务的API客户端实现
- 身份验证和数据获取逻辑
这个 /interfaces 目录包含:
- TypeScript类型定义和接口
- 应用程序的数据模型规范
这个 /models 目录包含:
- 用于API交互和数据处理的客户机模型
- 数据转换和验证模型
自动化
这个仓库使用GitHub Actions来:
- 每天抓取最新的位置数据
- 将数据转换为GeoJSON格式
- 将所有源合并到一个GeoJSON文件中
- 自动提交,推送和发布更新
开发
先决条件
- Node.js 22 / Deno / Bun
安装
npm i @hangtime/climbing-boards
可用脚本
# Install dependencies
npm ci
# Scrape data from board APIs
npm run scrape
# Convert scraped data to GeoJSON
npm run convert
# Combine all GeoJSON files
npm run combine
# Run the complete build process
npm run build
# Watch for TypeScript changes during development
npm run dev
身份验证
需要得到 月球板 和基尔特董事会的位置。更详细地说
关于极光板的信息,如(张力,蚱蜢等),包括
健身房的地址,板的角度,或旋转状态,你需要提供你的
凭据通过环境变量。每个攀岩板应用程序都需要它的
自己的登录凭据集。刮刀将只获取额外的细节
您提供有效登录信息的特定应用程序。
重要法律通知:在使用此刮刀与凭证之前,您 必须:
- 有一个有效的帐户,并明确接受每个使用条款 平台。
- 确保您使用此工具符合平台的服务条款
- 请注意,此工具会向这些服务发出经过身份验证的API请求
设置说明:
- 复制
.env.example文件.env:
cp .env.example .env
- 在表格中填写你的证件
.env文件:
# Aurora Climbing Boards (Tension, Grasshoper etc.)
TENSIONBOARDAPP_USERNAME=your_username
TENSIONBOARDAPP_PASSWORD=your_password
# Kilter Boards (requires authentication for location data)
KILTERBOARDAPP_USERNAME=your_username
KILTERBOARDAPP_PASSWORD=your_password
# MoonBoard (requires authentication for location data)
MOONBOARD_USERNAME=your_username
MOONBOARD_PASSWORD=your_password
# Add credentials for other boards as needed
API使用保障:刮板包括内置保护:
- 速率限制(每块板每分钟30个请求)
- 自动请求节流
- 重试机制与指数回退速率限制错误
- 高使用率警告(在速率限制的80%触发)
- 身份验证和API问题的错误处理
注意:当刮刀实现速率限制和其他保障时,你 仍然有责任确保您的使用符合每个服务的条款 使用。
出版物
学分
叉形的 Georift / climbing-board-locations
许可证
Unlicense