使用 OpenStreetMap、Web Mercator 和 Pillow 创建静态地图图像

主要观点:作者在一个项目中需在地图上绘制点,最初使用[Leaflet.js]在网页上创建地图,此项目需要独立的带有彩色点的静态地图图像,为此尝试了[matplotlib]和[plotly]等 Python 库但效果不佳,最终用“低层级”工具自己写了解决方案。关键信息:通过OpenStreetMap wiki 页面将经纬度坐标转换为 OSM 瓦片使用的像素系统,具体步骤为获取覆盖全球的“底图”图像并将经纬度坐标叠加在其上。重要细节:

  • OSM 以 256×256 像素的瓦片表示世界,可不断缩放获取更详细信息,可下载所有瓦片并拼接成大图像,Python 脚本可实现此功能,随着缩放级别升高所需下载的瓦片数和最终图像大小增加。
  • 实现将 GPS 坐标转换为单位正方形上的位置的函数convert_gps_coordinates_to_unit_xy,示例中对 Hachiko 雕像坐标进行转换验证。
  • 用 Pillow 库将 GPS 坐标转换为单位位置并在底图上绘制红色圆圈,可自定义点的形状和颜色等,代码简单易懂,虽不具备复杂可视化库的所有功能,但能满足需求。
阅读 6
0 条评论