@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
105 lines (104 loc) • 4.63 kB
TypeScript
import type { VectorFeatureFileFormat, ColorPalette, ColorVariable, PrintFileFormat } from '../crosssectiontypes.js';
import type { Marker, Measurement } from '../scatterplot.js';
import GirafeHTMLElement from '../../../base/GirafeHTMLElement.js';
import { CrossSectionState } from '../crosssectionstate.js';
import { Style } from 'ol/style.js';
import VectorSource from 'ol/source/Vector.js';
import VectorLayer from 'ol/layer/Vector.js';
import Feature from 'ol/Feature.js';
import { Geometry, LineString, Point, Polygon } from 'ol/geom.js';
import { Draw, Modify } from 'ol/interaction.js';
import OL3Parser from 'jsts/org/locationtech/jts/io/OL3Parser.js';
import IGirafePanel from '../../../tools/state/igirafepanel.js';
declare class CrossSectionSettingsComponent extends GirafeHTMLElement implements IGirafePanel {
protected templateUrl: string | null;
protected styleUrls: string[] | null;
template: () => import("uhtml").Hole;
crossSectionState: CrossSectionState;
private readonly eventsCallbacks;
darkFrontendMode: boolean;
isPanelVisible: boolean;
panelTitle: string;
panelTogglePath: string;
private get map();
linestring: Feature<LineString>;
linestringSource: VectorSource<Feature<Geometry>>;
linesLayer: VectorLayer<VectorSource<Feature<Geometry>>>;
domainLinestring: Feature<LineString>;
domainLinestringSource: VectorSource<Feature<Geometry>>;
domainLineStringLayer: VectorLayer<VectorSource<Feature<Geometry>>>;
polygon: Feature<Polygon>;
polygonSource: VectorSource<Feature<Geometry>>;
polygonLayer: VectorLayer<VectorSource<Feature<Geometry>>>;
pointer: Feature<Point>;
pointerSource: VectorSource<Feature<Geometry>>;
pointerLayer: VectorLayer<VectorSource<Feature<Geometry>>>;
points: Feature<Point>[];
pointsSource: VectorSource<Feature<Geometry>>;
pointsLayer: VectorLayer<VectorSource<Feature<Geometry>>>;
drawInteraction: Draw;
modifyInteraction: Modify;
linestringLength: number;
markersTable: HTMLTableElement | null;
measurementsTable: HTMLTableElement | null;
parser: OL3Parser;
iconStyle: Style;
pointStyleFunction: (feature: Feature) => Style;
constructor();
private initializeMapElements;
private initializeLinestring;
private initializeDomainLinestring;
private initializePolygon;
private initializePointer;
private initializePointsLayer;
private initializeInteractions;
private handleAddFeature;
private initializeDrawInteraction;
private initializeModifyInteraction;
updateMarkers(polygon: Feature<Polygon>): void;
drawLinestringBuffer(): void;
updateLinestringCoordinates(): void;
drawDomainLinestring(): void;
getDistanceAtCoord(lineStringGeom: LineString, coord: [number, number]): number;
shiftLinestring(shift?: [number, number]): void;
drawPointer(coords: [number, number]): void;
drawMapMarkers(): void;
addInteractions(): void;
removeInteractions(): void;
toggleMeasureDraw(): void;
toggleMarkerDraw(): void;
toggleLineDraw(): void;
toggleVisibility(id: string): void;
setColor(id: string, color: string): void;
setColorVariable(id: string, colorby: ColorVariable): void;
setLineDrawingMode(val: boolean): void;
setSectionWidth(val: number): void;
setVerticalExaggeration(val: number): void;
setPointSize(val: number): void;
setGridVisibility(val: boolean): void;
setBackgroundColor(val: string): void;
setColorPalette(val: ColorPalette): void;
exportFeature(features: Feature[], filename: string, format: VectorFeatureFileFormat): void;
renderMeasurementsTable(table: HTMLTableElement, records: Measurement[]): void;
renderAnnotationsTable(table: HTMLTableElement, records: Marker[]): void;
deleteProfile(): void;
deleteMarker(id: string): void;
deleteAllMarkers(): void;
deleteAllMeasurements(): void;
resetZoom(): void;
zoomToMarker(id: string): void;
setViewSync(val: boolean): void;
printPlot(printFileFormat: PrintFileFormat): void;
setPrintFileFormat(val: PrintFileFormat): void;
setAnnotationsFileFormat(val: VectorFeatureFileFormat): void;
setLineFileFormat(val: VectorFeatureFileFormat): void;
handleCursorDomainCoordinatesChange(cursorDomainCoordinates: [number, number]): void;
render(): void;
private renderComponent;
private renderEmptyComponent;
registerEvents(): void;
unregisterEvents(): void;
togglePanel(visible: boolean): void;
protected connectedCallback(): void;
}
export default CrossSectionSettingsComponent;