zoukankan      html  css  js  c++  java
  • GeoJSON与GeoBuf互相转换

    GeoJSON格式通常比较大,网页需要较长时间加载,可以使用GeoBuf进行压缩。

    使用GeoBuf有很多好处:结构紧凑、文件小、方便编码和解码、能适用各种GeoJSON等等。

    使用:

    1.安装 geobuf 和 pbf

    1 npm install geobuf
    2 npm install pbf

    2.对GeoJSON编码

    1 let buffer = geobuf.encode(featureCollection, new Pbf())

    说明:需要引入geobuf 和 pbf,

              featureCollection为GeoJSON

    3.把GeoBuf写入文件

    1 let buffer = geobuf.encode(featureCollection, new Pbf()) // 对GeoJSON编码
    2 // 使用node写入文件 需要先引入'fs'库
    3 fs.writeFile('./data/lamp.geobuf.bpf', buffer, function(error){
    4     if(error){
    5         console.info('geobuf error')
    6     }else {
    7         console.info('geobuf ok')
    8     }
    9 })

    4.对GeoBuf解码

    1 axios.get('./data/lamp.geobuf.bpf', {
    2     responseType: 'arraybuffer' // note: responseType must be 'arraybuffer'
    3 }).then((function (res) {
    4     let data = res.data
    5     let geojson = geobuf.decode(new Pbf(data)) // 对GeoBuf解码
    6     console.info(JSON.stringify(geojson))
    7 }))

    注意:读取GeoBuf是responseType必须是“arraybuffer”

    看一下文件大小:只有大约1/5了,效果很明显呐!

     完整应用案例请参考:

    https://github.com/shiyuan598/common-tools.git
    
    
    
    
    

    参考文档:

    https://github.com/mapbox/geobuf

  • 相关阅读:
    ZOJ-3725 Painting Storages DP
    ZOJ-3720 Magnet Darts 计算几何,概率
    ZOJ-3721 Final Exam Arrangement 贪心
    POJ-2096 Collecting Bugs 概率DP
    [转]数据输入加速
    POJ-3468 A Simple Problem with Integers Splay Tree区间练习
    HDU-4419 Colourful Rectangle 矩形多面积并
    POJ-1177 Picture 矩形覆盖周长并
    HDU-1255 覆盖的面积 覆盖的矩形面积并
    POJ-1151 Atlantis 矩形面积并
  • 原文地址:https://www.cnblogs.com/jyughynj/p/11567569.html
Copyright © 2011-2022 走看看