Nonstick Pancake Maker

    @mapbox/vtvalidate

    0.3.1 • Public • Published

    vtvalidate

    Validate vector tiles based on the Mapbox Vector Tile Specification 2.x via vtzero.

    node-cpp-skel Build Status codecov

    Build & Test

    git clone git@github.com:mapbox/vtvalidate.git
    cd vtvalidate
    
    # Build binaries. This looks to see if there were changes in the C++ code. This does not reinstall deps.
    make
    
    # Run tests
    make test
    
    # Cleans your current builds and removes potential cache
    make clean
    
    # Cleans everything, including the things you download from the network in order to compile (ex: npm packages).
    # This is useful if you want to nuke everything and start from scratch.
    # For example, it's super useful for making sure everything works for Travis, production, someone else's machine, etc
    make distclean

    Usage

    • If the tile is valid, vtvalidate will return an empty string.
    • If the tile is invalid, vtvalidate will return the string output from vtzero.
    • vtvalidate will throw an error if there is unexpected behaviour, for example an invalid argument value passed into vtvalidate.isValid() or a corrupt compressed buffer.

    Valid tile

    var vtvalidate = require('@mapbox/vtvalidate');
    
    ...
    
    // Pass in protocol buffer (uncompressed)
    vtvalidate.isValid(buffer, function(err, result) {
      if (err) throw err;
    
      // returns empty string if it's a valid tile
      console.log(result); // ''
    });

    Invalid tile

    var vtvalidate = require('@mapbox/vtvalidate');
    
    ...
    
    // Pass in protocol buffer (uncompressed)
    vtvalidate.isValid(buffer, function(err, result) {
      if (err) throw err;
    
      // returns string that specifies why the tile is invalid
      console.log(result); // 'Missing geometry field in feature (spec 4.2)'
    });

    Type of validation

    vtvalidate validates tile data against vtzero:

    • Tile data consistent with the Mapbox vector tile spec - Version 2. Tiles created via Mapbox vector tile spec Version 1 will be flagged invalid.
    • Read tile layer(s) and feature(s)
    • Decode properties
    • Decode geometries

    Currently, vtvalidate does not check geometries for self-intersections, but planned in the future. If you'd like to add more extensive tile validation, check out this example.

    CLI

    Accepts either uncompressed or gzip/zlib compressed tiles

    node bin/vtvalidate.js <path-to-vector-tile>
    

    Will output:

    • empty string if it's a valid tile
    • string that specifies why the tile is invalid

    Bench

    Provide desired iterations and concurrency

    node bench/isValid.bench.js --iterations 50 --concurrency 10
    

    Keywords

    none

    Install

    npm i @mapbox/vtvalidate

    DownloadsWeekly Downloads

    85

    Version

    0.3.1

    License

    ISC

    Unpacked Size

    90.8 kB

    Total Files

    40

    Last publish

    Collaborators

    • mapbox-npm-01
    • mapbox-npm-02
    • mapbox-npm-07
    • mapbox-npm-03
    • mapbox-npm-04
    • mapbox-npm-09
    • mapbox-npm-05
    • mapbox-npm-06
    • mapbox-npm-08
    • mapbox-npm-advanced-actions
    • mapbox-npm-ci
    • mapbox-npm
    • mapbox-admin
    • mapbox-machine-user