このプロジェクトについて

MapToPosterは、世界中の都市のミニマルでポスター風の地図を生成するコマンドラインツールです。都市名と国名を指定すると、位置をジオコーディングし、OpenStreetMapデータをダウンロードして、印刷や壁紙に適した高解像度のPNGをレンダリングします。 動作原理: スクリプトはNominatimを介して座標を解決し、OSMnxを通じて道路網とフィーチャを取得し、matplotlibでレイヤー出力(背景、水域、公園、OSMの道路種別に応じて色分け・太さが変わる道路、グラデーションのフェード、テキストラベル)を描画します。出力ファイルは、都市名、テーマ、タイムスタンプで命名され、posters/ディレクトリに保存されます。 主なオプションには、--cityと--country(必須)、さらに--theme、--distance(地図の半径(メートル単位、デフォルト18000))、--width/--height(インチ単位、デフォルト12x16、最大20)、--latitude/--longitude(中心を上書き)、--country-label、--list-themes、--all-themes(すべてのテーマを一度にレンダリング)があります。解像度ガイドは、一般的なターゲット(Instagram投稿、モバイル/HD/4K壁紙、A4印刷)を300 DPIでのインチ値にマッピングします。 多言語サポートにより、--display-city、--display-country、--font-familyを介して、都市名と国名をネイティブスクリプトで表示できます。フォントはGoogle Fontsからダウンロードされ、ローカルにキャッシュされます。レンダラーはラテン文字と非ラテン文字を検出し、それに応じて文字間隔を調整します(ラテン文字は間隔を空け、日本語、アラビア語、韓国語、タイ語などは自然な間隔)。 themes/ディレクトリには17のテーマが同梱されており、noir、midnight_blue、blueprint、neon_cyberpunk、warm_beige、pastel_dream、japanese_ink、emerald、forest、ocean、terracotta、sunset、autumn、copper_patina、monochrome_blue、gradient_roads、contrast_zonesが含まれます。カスタムテーマは、背景、テキスト、水域、公園、道路クラスごとの色を定義するJSONファイルとして追加されます。 インストールは、uv(推奨、依存関係ロック済み)またはpipと仮想環境をサポートします。READMEには、内部アーキテクチャ、主要関数、レンダリングのzオーダー、OSM高速道路から道路階層へのマッピング、タイポグラフィの配置、新しい地図レイヤーやテーマプロパティの拡張パターン、座標のキャッシュやレンダリング高速化のためのドライブ専用ネットワークの使用などのパフォーマンスのヒントも文書化されています。