超酷!一键绘制你爱的城市的地图


超酷!一键绘制你爱的城市的地图

大家好呀,我是机灵可爱的开源小妹。

前段时间在网上帮朋友挑选礼物的时候,看到了这样的一个礼物:将两个城市的地图拼在一起形成一副地图画。

img

当时感觉这种简约风格的地图还挺酷的,很有艺术感。结果这几天正好发现了一个开源项目,可以直接类似的图片,比如北京:

beijing

上海:

shanghai

怎么样,是不是还蛮酷的,都可以当壁纸用啦!

这个开源项目就是:city-roads。下面由我简单的为大家介绍一下吧~

简介

city-roads是一个Node.js项目,它可以生成任意一个城市的道路图。其数据来源于OpenStreetMap的免费地图数据,并对数据进行可视化。

本地启动

city-roads的本地启动方式非常简单,当然前提是你本地安装了node.js。

在下载完源码之后,进入到项目的根目录。执行以下命令安装依赖的包:

1
npm install

该命令可以自动安装package.json文件中配置的项目依赖的包。

之后执行以下命令启动服务:

1
npm run dev

如果中途有类似的报错:

img

不用担心,这可能是因为本地安装的node.js是v17.0.0以上的版本,我们先执行这个命令:

1
export NODE_OPTIONS=--openssl-legacy-provider

之后再执行npm run dev命令就可以啦。

生成地图

服务启动后,访问localhost:8080进入主页面。

img

在搜索框中搜索你想生成地图的城市,选择后,等待下载数据后,就可以自动渲染生成地图了。

img

下载地图数据的过程可能会比较慢,耐心等待一会就好啦~

地图生成之后,我们可以随意更改道路线条的颜色和背景颜色。

shezhi

或者点击As an image链接下载当前缩放大小的图片。

当然啦,如果只是想尝试一下,不想本地部署的话,项目也提供了线上的演示demo在线生成地图,赶紧到公众号后台回复「map」获取开源项目地址和线上预览地址吧!


  目录