引子
我实习的地方的上司有画地图的需求,我在职的时候虽然可以帮他画,但是考虑到还是希望在我离职之后他还能不求人,我就在考虑有没有什么solution
- 让他学个GIS软件:他的办公用的电脑是单位发的,装啥都得跟IT扯皮好久,学GIS软件还有点成本之类的(没错,说的就是我,自己ArcGIS和QGIS画图都是学了忘忘了学,每次都是现场找找教程)
- 让他学代码:用他的电脑装Python是不可能了,但考虑到可以用Google Colab,似乎也还是可行的,但是用colab好像vibe coding不太方便,让他从零开始学代码也不是那么容易,好吧放弃
- 那我来做个小工具吧(燕国地图就这么长了)
其实关于为什么我想做个小工具,原因大概是,我这个上司的需求非常轻量,基本上就是对全国各省或者一个省里面的各市画Choropleth map,所以做小工具也不会非常复杂,另一个原因是我知道kepler.gl这样的项目,但是感觉这种项目其实还挺鸡肋的,属于是知道用shapefile或者geojson的人也不差一个这样制图的界面,不知道怎么处理地理数据存储格式的人那该用不上还是用不上。
而我一想,我只需要在类似kepler.gl这样的页面中,预先存储好全国各省以及各市的多边形,让我上司每次upload他的表格数据,把表格里面的省或者市名的列跟多边形的对应的列join一下就行了,所以做起来应该不难,反正是ai来写,又不是我来写。
工具大概的使用步骤
其实使用步骤看我在GitHub的Readme里写的会更全一点,不过也可以在这里草草看一眼这个工具是不是自己需要的。
- 在这个小工具最初的选择框就能选择是绘制全国的地图还是特定的省份的地图

- 然后就是图层的概念,点击「添加图层」之后,可以选择点图层还是面图层,面图层就是下面这个样子,点图层就是往上面堆叠一些坐标点。想加一个面图层之后再叠一个点图层那就在后面点「添加图层」的按钮就行。我无意在添加其他的geo-feature,感觉这两个就是画Choropleth map可能需要的地理要素了。

- 而选择了面图层/点图层之后就要上传对应的数据,数据的格式用excel常见的xlsx或者其他的csv这样的格式都是可以的
- 如果是面图层那就需要有数据里面有一列能对应到省名或者市名的「地名列」,省市名这块我让代码尽可能匹配得模糊一些,自治区之类的写成市应该也是能匹配上的,不需要担心
- 如果是点图层那就需要有「经度列」和「纬度列」。关于获取经纬度点位信息,可以通过这个网页(可能需要注册才能使用)中的查询框和复制按钮,快速获得大致经纬度信息,具体可以看我在GitHub上的Readme里写的。这个查询方法当我发现的时候,感觉意外的很方便,不过依然有百度的坐标系是有一些加密的,会可能有几十米到几公里的偏移,不过如果地图画的是省市的范围,偏个几公里感觉都不是什么大问题,够用就行.jpg
- 然后再后面的就是选择哪一列是「数据列」,注意这一列在表格数据里的列名最后会影响图例的标题,所以请谨慎填写,像我下图列名填个value就很没脸见人
- 以及后面的选颜色方案啊,调整breaks的值啊之类的,应该都是非常直白的操作了
- 后面还有添加底图的功能,这个感觉还是挺有用的,感觉地图空了就添个底图,就很能唬人,只是有些底图可能需要一些🪜才能加载。不过前面我的这些国内的省市的地图的多边形数据都是从天地图上下载下来的,原网址带着审图号,应该不存在任何争议问题,应该...吧...
- 地图导出:对不起请用截图工具吧
- 如果有什么加载的bug,请直接浏览器里刷新一下吧,反正是个网页,刷新一下总能回到正常状态

我也没想到这篇写的这么干巴
在动笔之前我还以为会能说点俏皮话之类的东西,没想到纯变成了manual这样的东西。唯一想说的就是,我在做这个工具之前和做工具的途中都感觉,做出这样的工具给大家用是有意义的,之前的GIS制图软件总感觉有点把画地图给复杂化了。做完了之后反倒有点怀疑自己之前的想法了,也许做这样的一个工具还是有点鸡肋,也许还是好好学学用GIS软件比较好...
