3 votos

¿Cómo encontrar los nombres de las capas dentro de los mosaicos vectoriales, sin TileJSON o el archivo .mbtiles?

Estoy tratando de utilizar un punto final en formato de baldosas vectoriales de Mapbox. Puedo acceder a los .pbf's ok, pero no hay documentación o TileJSON endpoint.

¿Cómo puedo encontrar los nombres de las capas que existen dentro de las baldosas? Es decir, el valor que pondría en source-layer en un vector fuente en Mapbox-GL-JS.

Teóricamente esto debe ser posible, pero no conozco ninguna herramienta que me permita lograrlo.

(En este caso particular, se trata de un punto final de WMTS en GeoServer, pero estaría más interesado en soluciones que funcionen en general).

8voto

AlexMcCollister Puntos 31

Si te parece bien escribir un NodeJS script puedes usar

const request = require('request');
const VectorTile = require('@mapbox/vector-tile').VectorTile;
const Pbf = require('pbf');
const zlib = require('zlib');

request({
    url: 'https://example.com/1/2/3.pbf',
    encoding: null

}, (err, response, body) => {
    try {
         body = zlib.gunzipSync(body);
    } catch (e) {

    }
    const tile = new VectorTile(new Pbf(body));
    console.log('Vector source layers found: ', Object.keys(tile.layers).join(', '))
})

https://github.com/mapbox/vector-tile-js#api-reference

Prueba esto en Runkit: https://runkit.com/stevebennett/get-layer-names-and-keys-from-vector-tile

4voto

Usando el código de Andrew arriba, ahora he hecho un sitio web para resolver este problema:

http://stevage.github.io/vector-inspector

Sólo tienes que pegar la URL de cualquier mosaico y te mostrará los nombres de las capas y sus atributos.

O, como una API:

https://vector-inspector.glitch.me/tile/https:/tiles.planninglabs.nyc/data/v3/14/4826/6157.pbf

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X