@maptiler/weather
Version:
Weather layers for MapTiler Cloud and MapTiler SDK
69 lines (68 loc) • 2.05 kB
TypeScript
import { Tile } from '../types';
import * as THREE from "three";
import type * as maptilersdk from "@maptiler/sdk";
type InitProps = {
map: maptilersdk.Map;
minZoom: number;
maxZoom: number;
};
declare class GlobeTilesService {
readonly object3D: THREE.Group;
readonly helpersObject3D: THREE.Group;
private map;
currentTiles: Array<Tile>;
/**
* Tiles mesh for data which can be tiled.
*/
readonly currentTilesMeshes: Map<string, THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>>;
/**
* Mesh for visible tiles area - e.g. to display particles
*/
visibleTilesAreaMesh: THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>;
/**
* Rows of vertices, rowId is a abstract identifier (related to tile but not exactly the same).
* This is used to create full area mesh.
*/
private areaGeometryVerticesRows;
/**
* Min zoom level for tiles
*/
private minZoom;
/**
* Max zoom level for tiles
* 0-24 - https://maplibre.org/maplibre-gl-js/docs/API/type-aliases/MapOptions/#maxzoom
*/
private maxZoom;
/**
* Flag to check if geometry needs to be recreated (after visible tiles change).
*/
private isGeometryNeedRefresh;
constructor();
/**
* Initialize the service.
* Using it to create the object at the beginning and initialize it map is ready.
* The idea is to simplify calling the `update` method.
*/
init({ map, minZoom, maxZoom }: InitProps): void;
/**
* Update list of tiles to display.
*/
update(): void;
/**
* Recreate:
* - each tile mesh
* - area mesh
*/
recreateGlobeMeshes(): void;
/**
* Recreate tiles meshes.
* Used for tiling friendly data (temperature, pressure, etc.).
*/
private recreateGlobeTiles;
/**
* Recreate single mesh for visible tiles area.
* Used for particles display.
*/
private recreateAreaMesh;
}
export { GlobeTilesService };