terra-draw-mapbox-gl-adapter
Version:
Terra Draw Adapter for Mapbox GL JS
97 lines (96 loc) • 3.85 kB
TypeScript
/**
* @module terra-draw-mapbox-gl-adapter
*/
import { TerraDrawChanges, SetCursor, TerraDrawStylingFunction, TerraDrawExtend } from "terra-draw";
export declare class TerraDrawMapboxGLAdapter extends TerraDrawExtend.TerraDrawBaseAdapter {
constructor(config: {
map: mapboxgl.Map;
renderBelowLayerId?: string;
prefixId?: string;
} & TerraDrawExtend.BaseAdapterConfig);
private _renderBeforeLayerId;
private _prefixId;
private _initialDragPan;
private _initialDragRotate;
private _nextRender;
private _map;
private _container;
private toGlDashArrayFromPixels;
private markerCounter;
private markerMap;
private resizeImage;
private _addGeoJSONSource;
private _addFillLayer;
private _addFillOutlineLayer;
private _addLineLayer;
private _addPointLayer;
private _addMarkerLayer;
private _addLayer;
private _addGeoJSONLayer;
private _setGeoJSONLayerData;
private changedIds;
private updateChangedIds;
/**
* Returns the longitude and latitude coordinates from a given PointerEvent on the map.
* @param event The PointerEvent or MouseEvent containing the screen coordinates of the pointer.
* @returns An object with 'lng' and 'lat' properties representing the longitude and latitude, or null if the conversion is not possible.
*/
getLngLatFromEvent(event: PointerEvent | MouseEvent): {
lng: number;
lat: number;
};
/**
*Retrieves the HTML element of the Mapbox element that handles interaction events
* @returns The HTMLElement representing the map container.
*/
getMapEventElement(): HTMLCanvasElement;
/**
* Enables or disables the draggable functionality of the map.
* @param enabled Set to true to enable map dragging, or false to disable it.
*/
setDraggability(enabled: boolean): void;
/**
* Converts longitude and latitude coordinates to pixel coordinates in the map container.
* @param lng The longitude coordinate to project.
* @param lat The latitude coordinate to project.
* @returns An object with 'x' and 'y' properties representing the pixel coordinates within the map container.
*/
project(lng: number, lat: number): {
x: number;
y: number;
};
/**
* Converts pixel coordinates in the map container to longitude and latitude coordinates.
* @param x The x-coordinate in the map container to unproject.
* @param y The y-coordinate in the map container to unproject.
* @returns An object with 'lng' and 'lat' properties representing the longitude and latitude coordinates.
*/
unproject(x: number, y: number): {
lng: number;
lat: number;
};
/**
* Sets the cursor style for the map container.
* @param cursor The CSS cursor style to apply, or 'unset' to remove any previously applied cursor style.
*/
setCursor(cursor: Parameters<SetCursor>[0]): void;
/**
* Enables or disables the double-click to zoom functionality on the map.
* @param enabled Set to true to enable double-click to zoom, or false to disable it.
*/
setDoubleClickToZoom(enabled: boolean): void;
/**
* Renders GeoJSON features on the map using the provided styling configuration.
* @param changes An object containing arrays of created, updated, and unchanged features to render.
* @param styling An object mapping draw modes to feature styling functions
*/
render(changes: TerraDrawChanges, styling: TerraDrawStylingFunction): void;
/**
* Clears the map and store of all rendered data layers
* @returns void
* */
clear(): void;
getCoordinatePrecision(): number;
unregister(): void;
register(callbacks: TerraDrawExtend.TerraDrawCallbacks): void;
}