geostyler-openlayers-parser
Version:
GeoStyler Style Parser implementation for OpenLayers styles
113 lines (112 loc) • 5.82 kB
TypeScript
import { Style } from 'geostyler-style';
import OlGeomPoint from 'ol/geom/Point';
import OlLineString from 'ol/geom/LineString';
import OlMultiLineString from 'ol/geom/MultiLineString';
import OlPolygon from 'ol/geom/Polygon';
import OlMultiPolygon from 'ol/geom/MultiPolygon';
import { Coordinate } from 'ol/coordinate';
import { Geometry } from 'ol/geom';
/**
* Offers some utility functions to work with OpenLayers Graphic Strokes.
*/
declare class OlGraphicStrokeUtil {
/**
* Check if the given style contains a graphic stroke in any of its rules.
* @param style The style to check.
* @returns True if the style contains a graphic stroke, false otherwise.
*/
static containsGraphicStroke(style: Style): boolean;
/**
* Get the rotation in degrees for a line segment defined by its start and
* end coordinates.
* @param start The start coordinate of the line segment.
* @param end The end coordinate of the line segment.
* @returns The rotation in degrees.
*/
static getSegmentRotation(start: Coordinate, end: Coordinate): number;
/**
* Get the rotations in degrees for each segment of a LineString geometry.
* @param geom The LineString geometry
* @returns An array of rotations in degrees for each segment
*/
static getSegmentRotations(geom: OlLineString): number[];
/**
* Get the total size of a dash pattern in map units.
* @param dashArray The dash array in pixels.
* @param resolution The map resolution.
* @returns The total size of the dash pattern in map units.
*/
static getPatternSize(dashArray: number[], resolution: number): number;
/**
* Get the normalized fractions along the line where each segment ends.
* @param geom The LineString geometry
* @returns An array of normalized fractions
*/
static getSegmentFractions(geom: OlLineString): number[];
/**
* Get the dash array as fractions of the total line length.
* @param dashArray The dash array in pixels.
* @param resolution The map resolution.
* @param lineLength The total length of the line in map units.
* @returns An array of fractions representing the dash lengths relative
* to the line length.
*/
static getDashAsFractions(dashArray: number[], resolution: number, lineLength: number): number[];
/**
* Get the fractions along the line where ticks should be placed, considering
* the symbol size, resolution, and optional dash pattern.
* @param geom The LineString geometry
* @param symbolSize The size of the symbol in pixels
* @param resolution The map resolution
* @param dashArray Optional dash array
* @param dashOffset Optional dash offset
* @returns An array of fractions along the line where ticks should be placed
*/
static getTickFractions(geom: OlLineString, symbolSize: number, resolution: number, dashArray?: number[], dashOffset?: number): number[];
/**
* Helper method to add a tick at the given fraction if it's within valid bounds.
* @param ticks Array to add the tick to
* @param currentFraction The fraction to potentially add
* @returns True if the tick was added and we should continue, false if we've exceeded bounds
*/
static tryAddTick(ticks: number[], currentFraction: number, leftEdge: number, rightEdge: number): boolean;
/**
* Get tick fractions for a line without a dash pattern.
* @param symbolSizeFraction The symbol size as a fraction of the line length
* @param offsetFraction The offset as a fraction of the line length
* @returns An array of fractions along the line where ticks should be placed
*/
static getTickFractionsWithoutDash(symbolSizeFraction: number): number[];
/**
* Get tick fractions for a line with a dash pattern.
* @param dashArray The dash array in pixels
* @param resolution The map resolution
* @param lineLength The total length of the line in map units
* @param symbolSizeFraction The symbol size as a fraction of the line length
* @param offsetFraction The offset as a fraction of the line length
* @returns An array of fractions along the line where ticks should be placed
*/
static getTickFractionsWithDash(dashArray: number[], resolution: number, lineLength: number, symbolSizeFraction: number, offsetFraction: number): number[];
/**
* Process a single LineString geometry to generate graphic stroke styles.
*
* @param geom The LineString geometry to process
* @param symbolSize The size of the symbol in pixels
* @param resolution The map resolution
* @param dashArray Optional dash array for dashed patterns
* @param evaluatedDashOffset Evaluated dash offset value
* @param evaluatedSymbolRotation Evaluated symbol rotation in degrees
* @param graphicStroke The graphic stroke point symbolizer
* @param symbolizerGenerator Function to generate OL styles from a modified graphic stroke
* @param PointConstructor Constructor for creating OL Point geometries
* @returns Array of OL styles for the graphic stroke
*/
static processLineStringGraphicStroke(geom: OlLineString, symbolSize: number, resolution: number, dashArray: number[] | undefined, evaluatedDashOffset: number, evaluatedSymbolRotation: number, graphicStroke: any, symbolizerGenerator: (modifiedGraphicStroke: any) => any, PointConstructor: typeof OlGeomPoint): any[];
static getLineStringsFromGeometry(geom: Geometry | undefined, constructors: {
LineString: typeof OlLineString;
MultiLineString: typeof OlMultiLineString;
Polygon: typeof OlPolygon;
MultiPolygon: typeof OlMultiPolygon;
}): OlLineString[];
}
export default OlGraphicStrokeUtil;