for BitCraftMap
本リポジトリは BitJita から Empire/Tower のデータを取得し、GeoJSON に変換するツール群を含みます。
リポジトリは生成された GeoJSON を自動的に Gist にアップロードする GitHub Actions を実行しており、出力は BitCraftMap 上で閲覧できます。
このリポジトリは uvを使用して依存を再現する前提での利用を想定しています。
注意: uv sync を実行する前にご自身の環境が要件を満たすか確認してください。満たさない場合は uv python install <version> で適切な Python を用意してください。
-
uvをインストールしてください(OS に応じて公式ドキュメントに従ってください)。 -
プロジェクトルートで依存を同期します(
uv.lockとpyproject.tomlを参照して再現可能な環境が作られます):
# プロジェクトルートで
uv sync- コマンドラインのエントリは
generateコンソールスクリプトとしてパッケージに登録されています。uv経由で実行してください(uvが仮想環境を管理します):
# 直接実行(エイリアス `generate` を使用)
uv run generate
# ヘルプや引数付き実行
uv run generate --help
uv run generate --limit-empires 100 --verbose --out Resource/my.geojsonパッケージに登録された CLI エントリ generate を uv run で呼び出してください。デフォルトでは Resource/generated.geojson に出力します。
基本実行例 (uv 経由):
uv run generate主要な引数(抜粋):
--out: 出力先パス(デフォルト:Resource/generated.geojson)--user-agent: BitJita API に送る User-Agent ヘッダ(デフォルトはリポジトリ内定義)--throttle-ms: 各 API 呼び出し間の最小待ち時間(ミリ秒、デフォルト 120)--limit-empires: 処理するエンパイア数を制限(テスト用)--max-features: 出力する Feature の最大数(0 = 制限なし)--max-towers-per-empire: 各エンパイアで処理する塔の上限(0 = 制限なし)--rate-per-min: レートリミッタの設定(分あたりの許可リクエスト数)--workers: 並列ワーカ数(デフォルト 8)--verbose: 進捗ログを詳細に出力--color-store: エンティティID -> 色マップを格納する YAML ファイルのパス(デフォルト:Resource/color_map.yaml)
引数を指定した実行例 (uv 経由):
uv run generate --limit-empires 100 --verbose --out Resource/my.geojson地図上の色コードを変換するための補助ツールです。
uv run color実行すると対話モードになり、Hexコードを入力すると変換後の値を表示し、クリップボードにコピーします。
- 出力は GeoJSON の FeatureCollection です。BitCraftMap のフォーマット と互換性を保つプロパティを付与しています。
- BitJita API にはレート制限があります。デフォルト設定でも過度な同時実行は避けてください。
uv.lock/pyproject.tomlに記載された Python バージョン要件を確認してください。必要ならuv python install <version>を使って適切な Python を用意してください。- マッピングルールや座標変換の詳細は
要件.mdを参照してください。
より詳しいオプションはスクリプトの --help をご利用ください:
uv run generate --help