UNPKG

open-vector-tile

Version:

This library reads/writes Open Vector Tiles

45 lines 1.66 kB
import { BaseVectorLayer } from './vectorLayer.js'; import MapboxVectorLayer from '../mapbox/vectorLayer.js'; /** * Base Vector Tile * This is an intermediary for storing feature data in the Open Vector Tile format. * Convert from either a Mapbox vector tile or GeoJSON data. */ export class BaseVectorTile { layers; /** * @param layers - the layers in the tile */ constructor(layers = {}) { this.layers = layers; } /** * @param tile - the tile data to convert. Only Mapobx vector tiles are supported * @returns - The converted Base Vector Tile */ static fromVectorTile(tile) { const vectorTile = new BaseVectorTile(); for (const layerName in tile.layers) { const layer = tile.layers[layerName]; if (!(layer instanceof MapboxVectorLayer)) throw Error('Unsupported vector tile type'); vectorTile.layers[layerName] = BaseVectorLayer.fromMapboxVectorLayer(layer); } return vectorTile; } /** * @param tile - tile S2JSON data to convert * @param layerMap - guide on how to convert the layers * @returns - The converted Base Vector Tile */ static fromS2JSONTile(tile, layerMap) { const vectorTile = new BaseVectorTile(); if (!tile.transformed) throw Error('The vector tile must be transformed first'); for (const [layerName, layer] of Object.entries(tile.layers)) { vectorTile.layers[layerName] = BaseVectorLayer.fromS2JSONLayer(layer, layerMap[layerName]); } return vectorTile; } } //# sourceMappingURL=vectorTile.js.map