UNPKG

@yandex/ymaps3-types

Version:

Types for ymaps3 maps library

59 lines (58 loc) 2.68 kB
import type { LngLat } from "./lng-lat"; interface GenericPolygonGeometry<TCoordinates> { type: 'Polygon'; /** * Polygon's rings. * * @remarks * Inner rings may extend beyond outer ring. * GeoJSON doesn't allow this, but there's a lot of data like this in this JS API. */ coordinates: TCoordinates[][]; } interface GenericMultiPolygonGeometry<TCoordinates> { type: 'MultiPolygon'; /** Array of polygons. See {@link GenericPolygonGeometry}. */ coordinates: TCoordinates[][][]; } interface GenericLineStringGeometry<TCoordinates> { type: 'LineString'; coordinates: TCoordinates[]; } interface GenericMultiLineStringGeometry<TCoordinates> { type: 'MultiLineString'; coordinates: TCoordinates[][]; } interface GenericPointGeometry<TCoordinates> { type: 'Point'; coordinates: TCoordinates; } type GenericGeometry<TCoordinates> = GenericPolygonGeometry<TCoordinates> | GenericMultiPolygonGeometry<TCoordinates> | GenericLineStringGeometry<TCoordinates> | GenericMultiLineStringGeometry<TCoordinates> | GenericPointGeometry<TCoordinates>; interface GenericFeature<TCoordinates> { type: 'Feature'; id: string; geometry: GenericGeometry<TCoordinates>; properties?: Record<string, unknown>; } interface GenericPointFeature<TCoordinates> extends GenericFeature<TCoordinates> { geometry: GenericPointGeometry<TCoordinates>; } interface GenericYandexFeatureCollection<TCoordinates> { type: 'FeatureCollection'; /** * Could be collection of features or collection of feature collections. * This is not defined by GEO JSON spec, but there is such cases in our data. */ features: (GenericFeature<TCoordinates> | GenericYandexFeatureCollection<TCoordinates>)[]; properties?: Record<string, unknown>; } interface GenericFeatureCollection<TCoordinates> extends GenericYandexFeatureCollection<TCoordinates> { id: string; features: GenericFeature<TCoordinates>[]; } type LineStringGeometry = GenericLineStringGeometry<LngLat>; type MultiLineStringGeometry = GenericMultiLineStringGeometry<LngLat>; type MultiPolygonGeometry = GenericMultiPolygonGeometry<LngLat>; type PointGeometry = GenericPointGeometry<LngLat>; type PolygonGeometry = GenericPolygonGeometry<LngLat>; export { GenericPolygonGeometry, GenericMultiPolygonGeometry, GenericLineStringGeometry, GenericMultiLineStringGeometry, GenericPointGeometry, GenericGeometry, GenericFeature, GenericPointFeature, GenericFeatureCollection, GenericYandexFeatureCollection, LineStringGeometry, MultiLineStringGeometry, MultiPolygonGeometry, PointGeometry, PolygonGeometry };