Created
June 26, 2018 11:00
-
-
Save stepankuzmin/5270b484cd3455fe5a0e9f0aeb42d753 to your computer and use it in GitHub Desktop.
Reading vector tiles from PostGIS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const zlib = require("zlib"); | |
| const Protobuf = require("pbf"); | |
| const postgis = require("tilelive-postgis"); | |
| const tilelive = require("@mapbox/tilelive"); | |
| const VectorTile = require("@mapbox/vector-tile").VectorTile; | |
| postgis.registerProtocols(tilelive); | |
| const uri = | |
| "postgis://postgres@localhost/test?table=test&layerName=myLayer&geometry_field=geom"; | |
| tilelive.load(uri, (error, source) => { | |
| console.error("error", error); | |
| console.log("source", source); | |
| source.getTile(0, 0, 0, (err, buffer, headers) => { | |
| console.error("err", err); | |
| console.log("buffer", buffer); | |
| console.log("headers", headers); | |
| source.close(); | |
| zlib.unzip(buffer, (err, buffer) => { | |
| const tile = new VectorTile(new Protobuf(buffer)); | |
| const layers = tile.layers; | |
| Object.keys(layers).forEach(layerId => { | |
| const layer = layers[layerId]; | |
| console.log(layerId, layer.length); | |
| for (let index = 0; index < layer.length; index++) { | |
| const feature = layer.feature(index); | |
| console.log(feature.id, feature); | |
| } | |
| }); | |
| }); | |
| }); | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment