maplibre-gl
Version:
BSD licensed community fork of mapbox-gl, a WebGL interactive maps library
32 lines (29 loc) • 1.08 kB
text/typescript
import loadGeometry from './load_geometry';
import type Point from '@mapbox/point-geometry';
import type {VectorTileFeature} from '@mapbox/vector-tile';
type EvaluationFeature = {
readonly type: 1 | 2 | 3 | 'Unknown' | 'Point' | 'MultiPoint' | 'LineString' | 'MultiLineString' | 'Polygon' | 'MultiPolygon';
readonly id?: any;
readonly properties: {[_: string]: any};
readonly patterns?: {
[_: string]: {
'min': string;
'mid': string;
'max': string;
};
};
geometry: Array<Array<Point>>;
};
/**
* Construct a new feature based on a VectorTileFeature for expression evaluation, the geometry of which
* will be loaded based on necessity.
* @param {VectorTileFeature} feature
* @param {boolean} needGeometry
* @private
*/
export default function toEvaluationFeature(feature: VectorTileFeature, needGeometry: boolean): EvaluationFeature {
return {type: feature.type,
id: feature.id,
properties: feature.properties,
geometry: needGeometry ? loadGeometry(feature) : []};
}