This module provides utility functions for the Geoflo application.
Methods
-
static assignDeep(target, source, options) → {Object}
-
Recursively assigns properties of source object to target object deeply.
Parameters:
Name Type Description targetObject The target object to which properties will be assigned. sourceObject The source object whose properties will be assigned to the target. optionsObject Optional parameters for the assignment process. Properties
Name Type Attributes Default Description isMutatingOkboolean <optional>
false Flag to allow mutating the target object. isStrictlySafeboolean <optional>
false Flag to enforce strict safety checks during assignment. Returns:
Object - The target object with assigned properties from the source object. -
static clone(thing, opts) → {Object|Array|Date|RegExp|function|Symbol}
-
This function recursively clones the input object or array, preserving the structure and types of the elements.
Parameters:
Name Type Description thingObject | Array | Date | RegExp | function | Symbol The object or array to be cloned. optsObject Optional settings for cloning functions and symbols. Returns:
Object | Array | Date | RegExp | function | Symbol - - A deep clone of the input object or array. -
static cloneDeep(value, instance) → {any}
-
Recursively clones a value, including objects and arrays, preserving the original structure deeply.
Parameters:
Name Type Description valueany The value to be cloned. instancefunction A function that can be used to clone custom instances. Returns:
any - - The deeply cloned value. -
static combineSameTypeFeatures(features) → {Array}
-
This function takes an array of line features and combines them by connecting them based on their coordinates. It checks the endpoints of each line feature and connects them accordingly to form a continuous line.
Parameters:
Name Type Description featuresArray An array of line features to be combined. Returns:
Array - - An array of coordinates representing the combined line features. -
static compareDeep(x, y) → {boolean}
-
Recursively compares two objects deeply to check if they are equal.
Parameters:
Name Type Description xObject The first object to compare. yObject The second object to compare. Returns:
boolean - Returns true if the objects are deeply equal, false otherwise. -
static consumableArray(arr) → {Array}
-
Creates a consumable copy of an array or array-like object.
Parameters:
Name Type Description arrArray | Array-like The input array or array-like object to be copied. Returns:
Array - A consumable copy of the input array or array-like object. -
static degrees2meters(px) → {Array.<number>}
-
This function takes an array of latitude and longitude in degrees and converts it to meters using the Mercator projection formula.
Parameters:
Name Type Description pxArray.<number> An array containing latitude and longitude in degrees [longitude, latitude]. Returns:
Array.<number> - An array containing the converted x and y coordinates in meters. -
static extend(target, …sources) → {Object}
-
Extends the properties of the first object with the properties of the subsequent objects.
Parameters:
Name Type Attributes Description targetObject The object to be extended. sourcesObject <repeatable>
The objects whose properties will be added to the target object. Returns:
Object - The extended object. -
static getLastIndexCoords(f) → {Array}
-
This function returns the last coordinates of a given geometry object.
Parameters:
Name Type Description fObject The geometry object to extract the last coordinates from. Returns:
Array - The last coordinates of the geometry object. -
static getRandomColor() → {string}
-
This function generates a random color by randomly selecting hexadecimal values for each digit of the color code.
Returns:
string - A random color in hexadecimal format. -
static isEmptyLineString(feature) → {boolean}
-
This function determines if the provided feature is a LineString with only two identical points, making it an empty LineString.
Parameters:
Name Type Description featureObject The feature object to be checked. Returns:
boolean - Returns true if the feature is an empty LineString, otherwise false. -
static isLastIndex(i, f) → {boolean}
-
This function determines if the provided index is the last index in the coordinates array of a feature.
Parameters:
Name Type Description inumber The index to check. fobject The feature object containing the coordinates array. Returns:
boolean - Returns true if the index is the last index, false otherwise. -
static isLineString(f) → {boolean}
-
This function takes a GeoJSON feature object and determines if it represents a LineString geometry.
Parameters:
Name Type Description fObject The GeoJSON feature object to be checked. Returns:
boolean - Returns true if the feature is a LineString, false otherwise. -
static isPoint(f) → {boolean}
-
This function takes a feature object and determines if it represents a Point geometry.
Parameters:
Name Type Description fObject The feature object to be checked. Returns:
boolean - Returns true if the feature is a Point geometry, false otherwise. -
static isPointEqual(coords1, coords2) → {boolean}
-
Checks if two points are equal based on their coordinates.
Parameters:
Name Type Description coords1Array The coordinates of the first point [x, y]. coords2Array The coordinates of the second point [x, y]. Returns:
boolean - Returns true if the points have the same coordinates, false otherwise. -
static isPolygon(feature) → {boolean}
-
This function determines if a feature represents a polygon by comparing its first and last coordinates.
Parameters:
Name Type Description featureObject The feature object to be checked. Returns:
boolean - Returns true if the feature is a polygon, false otherwise. -
static isValidLineString(f) → {boolean}
-
Checks if the input feature is a valid LineString by verifying its geometry coordinates.
Parameters:
Name Type Description fObject The input feature to be validated. Returns:
boolean - Returns true if the input feature is a valid LineString, false otherwise. -
static meters2degrees(px) → {Array}
-
This function takes a pixel value and converts it to longitude and latitude in degrees.
Parameters:
Name Type Description pxArray The pixel value to be converted, in the format [x, y]. Returns:
Array - An array containing the longitude and latitude in degrees, [lon, lat]. -
static reducePrecision(coords) → {Array}
-
This function reduces the precision of the coordinates to 7 decimal places.
Parameters:
Name Type Description coordsArray An array containing the coordinates to be processed. Returns:
Array - The coordinates with reduced precision to 7 decimal places. -
static setProperties(feature, newProps)
-
Updates the properties of a given feature object with new properties.
Parameters:
Name Type Description featureObject The feature object whose properties will be updated. newPropsObject The new properties to be merged with the existing properties of the feature. -
static setProperty(feature, name, value)
-
This function sets a property value for a given feature. If the feature does not have properties, it creates a new properties object. If the property name includes a dot (.), it creates nested objects to set the value.
Parameters:
Name Type Description featureObject The feature object to set the property for. namestring The name of the property to set. valueany The value to set for the property. -
static stringToDOM(str) → {Document}
-
Converts a string to a DOM object using DOMParser.
Parameters:
Name Type Description strstring The input string to be converted to a DOM object. Returns:
Document - - The DOM object created from the input string.