大家好呀,我是机灵可爱的开源小妹。
前段时间在网上帮朋友挑选礼物的时候,看到了这样的一个礼物:将两个城市的地图拼在一起形成一副地图画。
当时感觉这种简约风格的地图还挺酷的,很有艺术感。结果这几天正好发现了一个开源项目,可以直接生成类似的图片,比如北京:
上海:
怎么样,是不是还蛮酷的,都可以当壁纸用啦!
这个开源项目就是:city-roads。下面由我简单的为大家介绍一下吧~
简介
city-roads 是一个 Node.js 项目,它可以生成任意一个城市的道路图。其数据来源于 OpenStreetMap 的免费地图数据,并对数据进行可视化。
本地启动
city-roads 的本地启动方式非常简单,当然前提是你本地安装了 node.js。
在下载完源码之后,进入到项目的根目录。执行以下命令安装依赖的包:
代码语言:javascript复制npm install
该命令可以自动安装 package.json 文件中配置的项目依赖的包。
之后执行以下命令启动服务:
代码语言:javascript复制npm run dev
如果中途有类似的报错:
不用担心,这可能是因为本地安装的 node.js 是 v17.0.0 以上的版本,我们先执行这个命令:
代码语言:javascript复制export NODE_OPTIONS=--openssl-legacy-provider
之后再执行npm run dev
命令就可以啦。
生成地图
服务启动后,访问 localhost:8080 进入主页面。
在搜索框中搜索你想生成地图的城市,选择后,等待下载数据后,就可以自动渲染生成地图了。
下载地图数据的过程可能会比较慢,耐心等待一会就好啦~
地图生成之后,我们可以随意更改道路线条的颜色和背景颜色。
或者点击 As an image 链接下载当前缩放大小的图片。