Skip to main content

Generate beautiful, minimalist map posters for any city — now with offline SinoGDB support for Chinese cities.

Project description

CityPoster — 城市地图海报生成器

基于 maptoposter 改造,专注中国城市离线地图海报。

安装

git clone https://github.com/songwupei/cityposter.git
cd cityposter
uv sync

SinoGDB 数据 (中国城市离线生成)

下载 SinoGDB-PackSet,设置路径:

export SINOGDB_DIR="$HOME/Downloads/SinoGDB-PackSet_gpkg_20260208"

使用

# 中国城市 — 完全离线,秒级出图
cityposter --lat 39.9042 --lon 116.4074 -dc "北京" -dC "中国" -t noir --poi
cityposter --lat 30.5728 --lon 104.0668 -dc "成都" -dC "中国" -t gongqiang --poi

# 国际城市 — 走 OSMnx
cityposter -c "Paris" -C "France" -t pastel_dream -d 10000

参数

参数 说明 默认
--lat, --lon 中心坐标 (WGS-84)
--gcj02 坐标视为 GCJ-02
-dc, -dC 显示名称
-t 主题 terracotta
-d 半径 (米) 8000(中国)
--poi POI 标注 关闭
开启后显示:地铁站、火车站、景点、学校、医院等

--poi 详情

开启后从 SinoGDB 拉取以下数据并标注(最多 50 个标记、15 个标签):

数据源 类型 标记
railway_point 地铁站 ○ 空心圆环 + 站名
火车站 ■ 方块
transport_point 公交站/机场/港口 ●/◆ 按类型
natural_point 山峰/洞穴/温泉 ▲/★
landuse (学校/医院/寺庙) 学校/医院/寺庙 ●/■/▲

不加 --poi 则不显示任何标注,纯地图。

自定义 POI (--custom-poi)

两处数据源,个人目录优先:

目录 用途
~/.config/cityposter/custom-poi/ 个人专属,升级不丢
config/custom-poi/ 项目通用,随代码分发

GeoJSON 格式(支持 .json / .geojson):

{
  "type": "FeatureCollection",
  "coord_type": "gcj02",
  "features": [
    {
      "type": "Feature",
      "properties": {"name": "故宫", "category": "景点"},
      "geometry": {"type": "Point", "coordinates": [116.3972, 39.9163]}
    }
  ]
}
  • coord_type: "gcj02" 高德坐标自动转 WGS-84,默认 "wgs84"
  • category: 支持中文("景点")、英文("Sightseeing")、key("sightseeing_spot"
  • 文件名含城市名 = 城市专属优先加载;不含 = 通用兜底
  • _. 前缀文件忽略(禁用/备份)

| -W, -H | 画布 (英寸) | 12x16 | | -f | png/svg | png | | --font-family | Google Fonts | Noto Sans SC(中国) |

所有主题 (41)

主题 名称 风格
autumn Autumn 秋日橙红
blueprint Blueprint 建筑蓝图
brutalist_concrete Brutalist Concrete 粗野主义
carbon_fiber Carbon Fiber 碳纤维黑
contrast_zones Contrast Zones 高对比度
copper_patina Copper Patina 铜绿氧化
cotton_candy Cotton Candy 棉花糖粉紫
cyberpunk_neon Cyberpunk Neon 赛博朋克
desert_rose Desert Rose 沙漠玫瑰
emerald Emerald City 翡翠绿
forest Forest 森林绿
forest_moss Forest Moss 苔藓绿金
gilded_noir Gilded Noir 黑金奢华
glitch_purple Glitch Purple 故障紫绿
gongqiang 宫墙 Gongqiang 红底鎏金
gradient_roads Gradient Roads 渐变道路
japanese_ink Japanese Ink 日式水墨
lavender_mist Lavender Mist 薰衣草雾
matcha_latte Matcha Latte 抹茶拿铁
mediterranean_summer Mediterranean Summer 地中海蓝橙
mediterranean_summer_plus Mediterranean Summer + Rail 地中海+铁路
midnight_blue Midnight Blue 午夜蓝金
monochrome_blue Monochrome Blue 单色蓝
neon_cyberpunk Neon Cyberpunk 霓虹赛博朋克
noir Noir 纯黑白
nordic_frost Nordic Frost 北欧冰霜
ocean Ocean 海洋蓝
ocean_abyss Ocean Abyss 深海深渊
pastel_dream Pastel Dream 梦幻粉彩
qingzhuan 青砖 Qingzhuan 胡同灰砖
red_alert Red Alert 红色警报
royal_velvet Royal Velvet 皇家天鹅绒
sakura_branch Sakura Branch 樱花粉
shuimo 水墨 Shuimo 水墨白底
solarized_dark Solarized Dark Solarized 暗色
sulfur_slate Sulfur & Slate 硫磺金灰
sunset Sunset 落日橙粉
terra_clay Terra Clay 陶土暖色
terracotta Terracotta 地中海陶
vintage_nautical Vintage Nautical 复古航海
warm_beige Warm Beige 暖米色

Credit

Forked from maptoposter by Ankur Gupta. MIT License.

SinoGDB data derived from OpenStreetMap, processed by QGIS.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cityposter-0.2.3.tar.gz (42.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cityposter-0.2.3-py3-none-any.whl (45.7 kB view details)

Uploaded Python 3

File details

Details for the file cityposter-0.2.3.tar.gz.

File metadata

  • Download URL: cityposter-0.2.3.tar.gz
  • Upload date:
  • Size: 42.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for cityposter-0.2.3.tar.gz
Algorithm Hash digest
SHA256 e6ab18bc94d72db99d369702cc7616d9be3a376aa3b6fe00e0fcd31530ecfda1
MD5 135d40f200f17d6ff3c7f8f959ee6a4c
BLAKE2b-256 9803f1fa6352904c1f3c751efeda70f83b6b40757665678d7cd00e61fab71136

See more details on using hashes here.

File details

Details for the file cityposter-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: cityposter-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 45.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for cityposter-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 832660b6e5c25c4f8d96e758ab9e75a6542708bf879fe2073eb0a23b16659500
MD5 61ff30504f84053b731d55be8c300619
BLAKE2b-256 2e06555e619558340c4441b59ace8f46272788e2d8394fe99a6746f9a55b5e62

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page