02_tiles_and_images.py
"""示例 2:构造瓦片/WMS/缩略图 URL,并抓一张缩略图保存到本地。
用法:
python 02_tiles_and_images.py [mapid] [version]
"""
from __future__ import annotations
import sys
from pathlib import Path
from _common import make_client, sample_mapid, sample_version
def main() -> None:
svc = make_client()
mapid = sys.argv[1] if len(sys.argv) > 1 else sample_mapid()
version = sys.argv[2] if len(sys.argv) > 2 else sample_version()
print(f"== 地图 {mapid}/{version} ==")
raster = svc.raster_tile_url(mapid, version=version, layer="0")
print("raster tile URL:\n ", raster)
vector = svc.vector_tile_url(mapid, version=version)
print("vector tile URL:\n ", vector)
wms = svc.wms_tile_url(mapid, version=version, width=512, height=512)
print("WMS tile URL:\n ", wms)
thumb_url = svc.thumbnail_url(mapid, version=version, width=256, height=256)
print("thumbnail URL:\n ", thumb_url)
out = Path(__file__).with_name(f"_thumb_{mapid}_{version}.png")
data = svc.thumbnail_bytes(mapid, version=version, width=256, height=256)
out.write_bytes(data)
print(f"缩略图已保存:{out.name} ({len(data)} bytes)")
if __name__ == "__main__":
main()