由于很多时候需要在封闭的环境下使用地图底图, 写了一个爬取在线地图瓦片作为静态地图服务器的简单程序, js 代码 180 行, html 不到 10 行, 废话不多说直接 github 源码 。
npm install
node app.js || npm run dev
在本地浏览器中打开 client/index.html
在浏览器中滚动鼠标
app.js
服务器接收瓦片请求并判断是否存在该瓦片。
存在瓦片则返回瓦片, 不存在则加入缓存等待下载。
downloadMap.js
缓存链接到数组内。
服务端会每隔 1 秒检查数组内是否有链接 有则去下载。
Arcgis 官方使用插件 dojo.js 来接入地图底图。
dojo.js 除了展示底图几乎一无是处, dojo.js 和 require.js 有冲突。
Arcgis 工具分为制作底图的客户端 ArcMap, 服务器 Arcgis Server。
leaflet 有相当多的接口和插件来制作地图工具。
ArcMap 在发布服务时一定要设置好参数, 不然 leaflet 不能接入底图。
1
sakitamFDD 2018-11-02 10:20:54 +08:00 via Android
搞 gis 的不多啊,先赞一个,爬取这个我也写过 https://github.com/sakitam-gis/tile-spider
|
2
usernamely OP @sakitamFDD 是啊是啊, 互粉一个。
|
3
findex 2018-11-02 14:08:39 +08:00 1
老铁我做过一点点的 gis。偏后台。
用的是 openstreet 的贴图。简单说下贴图有多大吧。中国沿海一个省的地图 zoom level 19 的话,贴图大约 100 多 G。然后还要加上 layers 的数据的话,也得个 1G 左右吧。贴图很大。一般电脑受不了。自己本地使用是够用了。但是维护起来成本相当高。维护一个地点的更新的话,就要有专员来做。此时,用第三方地图供应商比较省事。 |
4
catcn 2018-11-02 14:11:18 +08:00
内网应用通常要离线的地图瓦片。。。
我一般都是抓下来存为一个 sqlite 数据库。 |
5
usernamely OP @findex Arcgis 的全世界地图加上各种层级数据确实很大,Arcmap 切个几层放上去本地都卡的看不了,每次切片真的是一切一个星期都切不下来,最最主要的是刚开始的时候设置不对切的接口显示不出切片,所以就写了这个,只在缩放的时候去下载瓦片,看多少下多少,下次再看就直接看下载好的图片。
|
6
usernamely OP @findex 没啥大用,只是在内网做演示的时候可以看看,真实环境下还是要全部切完才行。
|