0.1.1 • Published 10 months ago

geopb v0.1.1

Weekly downloads
-
License
MIT
Repository
-
Last release
10 months ago

GeoPB

Turn your geo data into GeoPB.

Installation

use npm: $ npm install geopb

Getting Started

In commonjs, const GeoPB = require('geopb');

In ESM import GeoPB from 'geopb'.

Example Usage

The library has one method, parse, which takes an array of objects (or a single object) with geometry data as the first parameter, an object consisting of settings for the second parameter, and an optional callback function as the third parameter. If a callback is not specified, the parse function returns the GeoPB output.

Take the example data below:

ESM

import GeoPB from 'geopb'
let json={  
    "type": "FeatureCollection",  
    "features": [  
      {  
        "type": "Feature",  
        "geometry": {  
          "type": "Point",  
          "coordinates": [100.3999999, 36.222333333]  
        },  
        "properties": {   
          "area": "100",
          "name":123
        }  
      },
      {  
        "type": "Feature",  
        "geometry": {  
          "type": "LineString",  
          "coordinates": [  
            [102.0, 0.0],  
            [103.0, 1.0],  
            [104.0, 0.0],  
            [105.0, 1.0]  
          ]  
        },  
        "properties": {  
          "name": "示例线段"  
        }  
      },
      {  
        "type": "Feature",  
        "geometry": {  
          "type": "Polygon",  
          "coordinates": [  
            [  
              [102.0, 2.0],  // 第一个坐标点(经度, 纬度)  
              [103.0, 2.0],  // 第二个坐标点  
              [103.0, 3.0],  // 第三个坐标点  
              [102.0, 3.0],  // 第四个坐标点  
              [102.0, 2.0]   // 回到第一个坐标点,闭合多边形  
            ]  
          ]  
        },  
        "properties": {  
          "name": "Example Polygon"  
        }  
      },
      {  
        "type": "Feature",  
        "geometry": {  
          "type": "MultiLineString",  
          "coordinates": [  
            [  
              [102.0, 0.0], [103.0, 1.0], [104.0, 0.0]  // 第一条线  
            ],  
            [  
              [105.0, 0.5], [106.0, 1.5], [107.0, 0.5]  // 第二条线  
            ]  
          ]  
        },  
        "properties": {  
          "name": "Example MultiLineString"  
        }  
      },
      {  
        "type": "Feature",  
        "geometry": {  
          "type": "MultiPolygon",  
          "coordinates": [  
            [  
              [[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]  // 第一个多边形  
            ],  
            [  
              [[104.0, 0.0], [105.0, 0.0], [105.0, 1.0], [104.0, 1.0], [104.0, 0.0]],  // 第二个多边形的外环  
              [[104.2, 0.2], [104.8, 0.2], [104.8, 0.8], [104.2, 0.8], [104.2, 0.2]]  // 第二个多边形的内环  
            ]  
          ]  
        },  
        "properties": {  
          "name": "Example MultiPolygon"  
        }  
      }
    ]  
  }
// for(let i=0;i<1000;i++){
//     json.features.push(json.features[0])
// }
let pb=GeoPB.parse(json);
// fs.writeFileSync("test.pb",pb)
  let json2=GeoPB.toJSON(pb);

CommonJS

const GeoPB=require('geopb')  
let json={  
    "type": "FeatureCollection",  
    "features": [  
      {  
        "type": "Feature",  
        "geometry": {  
          "type": "Point",  
          "coordinates": [100.3999999, 36.222333333]  
        },  
        "properties": {   
          "area": "100",
          "name":123
        }  
      },
      {  
        "type": "Feature",  
        "geometry": {  
          "type": "LineString",  
          "coordinates": [  
            [102.0, 0.0],  
            [103.0, 1.0],  
            [104.0, 0.0],  
            [105.0, 1.0]  
          ]  
        },  
        "properties": {  
          "name": "示例线段"  
        }  
      },
      {  
        "type": "Feature",  
        "geometry": {  
          "type": "Polygon",  
          "coordinates": [  
            [  
              [102.0, 2.0],  // 第一个坐标点(经度, 纬度)  
              [103.0, 2.0],  // 第二个坐标点  
              [103.0, 3.0],  // 第三个坐标点  
              [102.0, 3.0],  // 第四个坐标点  
              [102.0, 2.0]   // 回到第一个坐标点,闭合多边形  
            ]  
          ]  
        },  
        "properties": {  
          "name": "Example Polygon"  
        }  
      },
      {  
        "type": "Feature",  
        "geometry": {  
          "type": "MultiLineString",  
          "coordinates": [  
            [  
              [102.0, 0.0], [103.0, 1.0], [104.0, 0.0]  // 第一条线  
            ],  
            [  
              [105.0, 0.5], [106.0, 1.5], [107.0, 0.5]  // 第二条线  
            ]  
          ]  
        },  
        "properties": {  
          "name": "Example MultiLineString"  
        }  
      },
      {  
        "type": "Feature",  
        "geometry": {  
          "type": "MultiPolygon",  
          "coordinates": [  
            [  
              [[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]  // 第一个多边形  
            ],  
            [  
              [[104.0, 0.0], [105.0, 0.0], [105.0, 1.0], [104.0, 1.0], [104.0, 0.0]],  // 第二个多边形的外环  
              [[104.2, 0.2], [104.8, 0.2], [104.8, 0.8], [104.2, 0.8], [104.2, 0.2]]  // 第二个多边形的内环  
            ]  
          ]  
        },  
        "properties": {  
          "name": "Example MultiPolygon"  
        }  
      }
    ]  
  }
// for(let i=0;i<1000;i++){
//     json.features.push(json.features[0])
// }
let pb=GeoPB.parse(json);
// fs.writeFileSync("test.pb",pb)
  let json2=GeoPB.toJSON(pb);

License

Licensed under the MIT License. See LICENSE for details.

0.1.1

10 months ago

0.1.0

10 months ago

0.0.11

10 months ago

0.0.10

10 months ago

0.0.9

10 months ago

0.0.8

10 months ago

0.0.6

10 months ago

0.0.5

10 months ago

0.0.4

10 months ago

0.0.3

10 months ago

0.0.2

10 months ago

0.0.1

10 months ago