V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
usernamely
V2EX  ›  问与答

node 爬取瓦片制作自己的地图服务

  •  
  •   usernamely · Nov 2, 2018 · 2916 views
    This topic created in 2733 days ago, the information mentioned may be changed or developed.

    由于很多时候需要在封闭的环境下使用地图底图, 写了一个爬取在线地图瓦片作为静态地图服务器的简单程序, 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 不能接入底图。

    6 replies    2018-11-02 14:29:10 +08:00
    sakitamFDD
        1
    sakitamFDD  
       Nov 2, 2018 via Android
    搞 gis 的不多啊,先赞一个,爬取这个我也写过 https://github.com/sakitam-gis/tile-spider
    usernamely
        2
    usernamely  
    OP
       Nov 2, 2018
    @sakitamFDD 是啊是啊, 互粉一个。
    findex
        3
    findex  
       Nov 2, 2018   ❤️ 1
    老铁我做过一点点的 gis。偏后台。
    用的是 openstreet 的贴图。简单说下贴图有多大吧。中国沿海一个省的地图 zoom level 19 的话,贴图大约 100 多 G。然后还要加上 layers 的数据的话,也得个 1G 左右吧。贴图很大。一般电脑受不了。自己本地使用是够用了。但是维护起来成本相当高。维护一个地点的更新的话,就要有专员来做。此时,用第三方地图供应商比较省事。
    catcn
        4
    catcn  
       Nov 2, 2018
    内网应用通常要离线的地图瓦片。。。
    我一般都是抓下来存为一个 sqlite 数据库。
    usernamely
        5
    usernamely  
    OP
       Nov 2, 2018
    @findex Arcgis 的全世界地图加上各种层级数据确实很大,Arcmap 切个几层放上去本地都卡的看不了,每次切片真的是一切一个星期都切不下来,最最主要的是刚开始的时候设置不对切的接口显示不出切片,所以就写了这个,只在缩放的时候去下载瓦片,看多少下多少,下次再看就直接看下载好的图片。
    usernamely
        6
    usernamely  
    OP
       Nov 2, 2018
    @findex 没啥大用,只是在内网做演示的时候可以看看,真实环境下还是要全部切完才行。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2659 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 15:50 · PVG 23:50 · LAX 08:50 · JFK 11:50
    ♥ Do have faith in what you're doing.