turf library

Classes

BBox
Please make sure, you arrange your parameters like this: Longitude 1, Latitude 1, Altitude 1 (optional), Longitude 2, Latitude 2, Altitude 2 (optional) You can either specify 4 or 6 parameters If you are using the default constructor with two dimensional positions (lng + lat only), please use the constructor like this: BBox(lng1, lat1, lng2, lat2);
CoordinateType
Coordinate types, following https://tools.ietf.org/html/rfc7946#section-4
Feature<T extends GeometryObject>
Feature, as specified here https://tools.ietf.org/html/rfc7946#section-3.2
FeatureCollection<T extends GeometryObject>
FeatureCollection, as specified here https://tools.ietf.org/html/rfc7946#section-3.3
GeoJSONObject
GeometryCollection
GeometryCollection, as specified here https://tools.ietf.org/html/rfc7946#section-3.1.8
GeometryObject
GeometryType<T>
LineString
LineString, as specified here https://tools.ietf.org/html/rfc7946#section-3.1.4
MultiLineString
MultiLineString, as specified here https://tools.ietf.org/html/rfc7946#section-3.1.5
MultiPoint
MultiPoint, as specified here https://tools.ietf.org/html/rfc7946#section-3.1.3
MultiPolygon
MultiPolygon, as specified here https://tools.ietf.org/html/rfc7946#section-3.1.7
Point
Point, as specified here https://tools.ietf.org/html/rfc7946#section-3.1.2
Polygon
Polygon, as specified here https://tools.ietf.org/html/rfc7946#section-3.1.6
Polyline
Based off of the offical Google document Some parts from this implementation by Mark McClure
Position
Please make sure, you arrange your parameters like this:

Enums

BoundaryType
Returns true if a point is on a line. Accepts an optional parameter to ignore the start and end vertices of the LineString. The ignoreEndVertices=false controls whether to ignore the start and end vertices. epsilon is the Fractional number to compare with the cross product result. It's useful for dealing with floating points in lng/lat example:
Corner
GeoJSONObjectType
Grid
Unit

Constants

areaFactors → const Map<Unit, num>
Area of measurement factors based on 1 square meter.
earthRadius → const double
Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.
factors → const Map<Unit, num>
Unit of measurement factors using a spherical (non-ellipsoid) earth radius. Keys are the name of the unit, values are the number of that unit in a single radian
unitsFactors → const Map<Unit, num>

Functions

along(Feature<LineString> line, num distance, [Unit unit = Unit.kilometers]) Feature<Point>
Takes a line and returns a Point at a specified distance along the line.
applyFilter(Map? properties, dynamic filter) bool
applyFilter Takes a Map properties and a filter, Returns a bool indicating filter is applied to the properties.
area(GeoJSONObject geojson) num?
Takes a GeoJSONObject and returns their area in square meters.
bbox(GeoJSONObject geoJson, {bool recompute = false}) BBox
Calculates the bounding box for any geoJson object, including FeatureCollection. If recompute is not set and the bbox is not null, the function uses the bbox of the given GeoJSONObject.
bboxPolygon(BBox bbox, {Map<String, dynamic> properties = const {}, dynamic id}) Feature<Polygon>
Takes a Bbox and returns an equivalent Feature<Polygon>.
bearing(Point start, Point end, {bool calcFinal = false}) num
Takes two Points and finds the geographic bearing between them, i.e. the angle measured in degrees from the north line (0 degrees) For example:
bearingRaw(Position start, Position end, {bool calcFinal = false}) num
bearingToAzimuth(num bearing) num
Converts any bearing angle from the north line direction (positive clockwise) and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line
booleanClockwise(LineString line) bool
Takes a ring and return true or false whether or not the ring is clockwise or counter-clockwise. Takes a Feature<LineString> orLineString or a List<Position> to be evaluated. example:
booleanConcave(Polygon polygon) bool
Takes a Polygon and returns true or false as to whether it is concave or not. example:
booleanContains(GeoJSONObject feature1, GeoJSONObject feature2) bool
booleanContains returns true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and, the interior and boundary of the secondary must not intersect the exterior of the primary. booleanContains returns the exact opposite result of the booleanWithin. example:
booleanCrosses(GeoJSONObject feature1, GeoJSONObject feature2) bool
booleanCrosses returns true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries. booleanCrosses returns true for only MultiPoint/Polygon, MultiPoint/LineString, LineString/LineString, LineString/Polygon, and LineString/MultiPolygon comparisons. Other comparisons are not supported as they are outside the OpenGIS Simple Features spec and may give unexpected results. example:
booleanDisjoint(GeoJSONObject feature1, GeoJSONObject feature2) bool
Returns true if the intersection of the two geometries is an empty set. example:
booleanEqual(GeoJSONObject feature1, GeoJSONObject feature2, {int precision = 6, bool direction = false, bool shiftedPolygon = false}) bool
Determine whether two geometries of the same type have identical X,Y coordinate values. See http://edndoc.esri.com/arcsde/9.0/general_topics/understand_spatial_relations.htm precision=6 sets decimal precision to use when comparing coordinates. With direction set to true, even if the LineStrings are reverse versions of each other but they have similar Positions, they will be considered the same. If shiftedPolygon is true, two Polygons with shifted Positions are considered the same. Returns true if the objects are equal, false otherwise example:
booleanIntersects(GeoJSONObject feature1, GeoJSONObject feature2) bool
Returns true when two geometries intersect. Takes feature1 & feature2 parameters of type GeoJSONObject which can be a Feature or GeometryType. example
booleanOverlap(Feature<GeometryObject> firstFeature, Feature<GeometryObject> secondFeature) bool
Takes two geometries firstFeature and secondFeature and checks if they share an common area but are not completely contained by each other.
booleanParallel(LineString line1, LineString line2) bool
Returns true if each segment of line1 is parallel to the correspondent segment of line2 example:
booleanPointInPolygon(Position point, GeoJSONObject polygon, {bool ignoreBoundary = false}) bool
Takes a Point, and a Polygon or MultiPolygonand determines if the Point resides within the Polygon. The Polygon can be convex or concave. The function accounts for holes. By taking a Feature<Polygon> or a Feature<MultiPolygon>. ignoreBoundary=false should be set to true if Polygon's boundary should be ignored when determining if the Point is inside the Polygon, otherwise, false. example:
booleanPointOnLine(Point pt, LineString line, {bool ignoreEndVertices = false, num? epsilon}) bool
booleanTouches(GeoJSONObject feature1, GeoJSONObject feature2) bool
Boolean-touches true if none of the Points common to both geometries intersect the interiors of both geometries. example
booleanValid(GeoJSONObject feature) bool
booleanValid checks if the geometry is a valid according to the OGC Simple Feature Specification. Take a Feature or a GeometryType example
booleanWithin(GeoJSONObject feature1, GeoJSONObject feature2) bool
Returns true if the first GeoJSONObject is completely within the second GeoJSONObject. The interiors of both geometries must intersect and, the interior and boundary of the primary (geometry a) must not intersect the exterior of the secondary (geometry b). booleanWithin returns the exact opposite result of booleanContains.
calculateFinalBearing(Point start, Point end) num
Calculates Final Bearing
calculateFinalBearingRaw(Position start, Position end) num
calculateRhumbBearing(Position from, Position to) num
Returns the bearing from ‘this’ Point to destination Point along a rhumb line. Adapted from Geodesy: https://github.com/chrisveness/geodesy/blob/master/latlon-spherical.js Returns Bearing in degrees from north. example
calculateRhumbDestination(Position origin, num distance, num bearing, [num radius = earthRadius]) Position
calculateRhumbDistance(Position origin, Position destination, [num radius = earthRadius]) num
Returns the distance traveling from ‘this’ point to destination point along a rhumb line. Adapted from Geodesy ‘distanceTo‘: https://github.com/chrisveness/geodesy/blob/master/latlon-spherical.js
center(GeoJSONObject geoJSON, {dynamic id, BBox? bbox, Map<String, dynamic>? properties}) Feature<Point>
Takes a Feature or a FeatureCollection and returns the absolute center point of all feature(s).
centroid(GeoJSONObject geoJSON, {Map<String, dynamic>? properties}) Feature<Point>
Takes a Feature or a FeatureCollection and computes the centroid as the mean of all vertices within the object.
cleanCoords(GeoJSONObject geojson, {bool mutate = false}) Feature<GeometryObject>
Removes redundant coordinates from any GeometryType. Takes a Feature or GeometryType mutate allows GeoJSON input to be mutated Returns the cleaned input Feature example:
clusterEach(FeatureCollection<GeometryObject> geojson, dynamic property, ClusterEachCallback callback) → void
clusterEach Takes a FeatureCollection, a dynamic property key/value used to create clusters, and a ClusterEachCallback method that takes (cluster, clusterValue, currentIndex) and Returns void. For example:
clusterReduce<T>(FeatureCollection<GeometryObject> geojson, dynamic property, ClusterReduceCallback<T> callback, dynamic initialValue) → T?
Reduces clusters in Features, similar to Iterable.reduce Takes a geojson, a dynamic porperty, a GeoJSONObject's property key/value used to create clusters, a ClusterReduceCallback method, and an initialValue to use as the first argument to the first call of the callback. Returns the value that results from the reduction. For example:
convertArea(num area, [dynamic originalUnit = Unit.meters, dynamic finalUnit = Unit.kilometers]) num
Converts a area to the requested unit. Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches, hectares
convertLength(num length, [Unit originalUnit = Unit.kilometers, Unit finalUnit = Unit.kilometers]) num
Converts a length to the requested unit. Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
coordAll(GeoJSONObject geojson) List<Position?>
Gets all coordinates from any GeoJSONObject. Receives any GeoJSONObject Returns List<Position> For example:
coordEach(GeoJSONObject geoJSON, Function callback, [bool excludeWrapCoord = false]) → void
Iterates over coordinates in any geoJSONObject, similar to Iterable.forEach example:
coordReduce<T>(GeoJSONObject geojson, CoordReduceCallback<T> callback, T? initialValue, [bool excludeWrapCoord = false]) → T?
Reduces coordinates in any GeoJSONObject, similar to Iterable.reduce
createBins(FeatureCollection<GeometryObject> geojson, dynamic property) Map<dynamic, List<int>>
createBins Takes a FeatureCollection geojson, and dynamic property key whose corresponding values of the Features will be used to create bins. Returns Map<String, List
degreesToRadians(num degrees) num
Converts an angle in degrees to radians
destination(Point origin, num distance, num bearing, [Unit unit = Unit.kilometers]) Point
Takes a Point and calculates the location of a destination point given a distance in degrees, radians, miles, or kilometers; and bearing in degrees. This uses the Haversine formula to account for global curvature. For example:
destinationRaw(Position origin, num distance, num bearing, [Unit unit = Unit.kilometers]) Position
distance(Point from, Point to, [Unit unit = Unit.kilometers]) num
Calculates the distance between two Points in degrees, radians, miles, or kilometers. This uses the Haversine formula to account for global curvature. For example:
distanceRaw(Position from, Position to, [Unit unit = Unit.kilometers]) num
explode(GeoJSONObject geojson) FeatureCollection<Point>
Takes a feature or set of features and returns all positions as Points. Takes GeoJSONObject input. Returns FeatureCollection<point> representing the exploded input features Throws Exception if it encounters an unknown geometry type
featureEach(GeoJSONObject geoJSON, FeatureEachCallback callback) → void
Iterates over features in any geoJSONObject, calling callback on each iteration. Similar to Iterable.forEach. For example:
featureReduce<T>(GeoJSONObject geojson, FeatureReduceCallback<T> callback, T? initialValue) → T?
Reduces features in any GeoJSONObject, similar to Iterable.reduce.
filterProperties(Map<String, dynamic> properties, List<String>? keys) Map<String, dynamic>
filterProperties Takes Map<String, dynamic> properties, and List<String> keys used to filter Properties. Returns Map<String, dynamic> filtered Properties For example:
flattenEach(GeoJSONObject geoJSON, FlattenEachCallback callback) → void
Iterates over flattened features in any geoJSONObject, similar to Iterate.forEach, calling callback on each flattened feature
flattenReduce<T>(GeoJSONObject geojson, FlattenReduceCallback<T> callback, T? initialValue) → T?
Reduces flattened features in any GeoJSONObject, similar to Iterable.reduce. Takes a FeatureCollection, Feature, or Geometry a FlattenReduceCallback method that takes (previousValue, currentFeature, featureIndex, multiFeatureIndex), an initialValue Value to use as the first argument to the first call of the callback. Returns the value that results from the reduction. For example:
geomEach(GeoJSONObject geoJSON, GeomEachCallback callback) → void
Iterates over each geometry in geoJSON, calling callback on each iteration. Similar to Iterable.forEach
geomReduce<T>(GeoJSONObject geoJSON, GeomReduceCallback<T> callback, T? initialValue) → T?
Reduces geometry in any GeoJSONObject, similar to Iterable.reduce.
getCluster(FeatureCollection<GeometryObject> geojson, dynamic filter) FeatureCollection<GeometryObject>
Get Cluster Takes a FeatureCollection<Feature> and a dynamic filter used on GeoJSON properties to get Cluster. Returns a FeatureCollection single cluster filtered by GeoJSON Properties For example:
getCoord(dynamic coord) Position
Unwraps a coordinate from a Point, Feature<Point>, and a Position.
getCoords(dynamic coords) List
Unwraps coordinates from a Feature, GeometryObject or a List Gets a List<dynamic>, GeometryObject or a Feature or a List<dynamic> and returns List<dynamic>. For example:
getGeom(GeoJSONObject geojson) GeometryObject
Get Geometry or Geometries from Feature or GeometryCollection Returns List<GeometryType> in case geojson is a GeometryCollection and a GeometryType if geojson is a simple GeometryType. example:
isPointOnLineEnd(Point point, LineString line) bool
isPointOnLineSegmentCleanCoordsVariant(Position start, Position end, Position point) bool
Returns if point is on the segment between start and end. Borrowed from booleanPointOnLine to speed up the evaluation (instead of using the module as dependency). start is the coord pair of start of line, end is the coord pair of end of line, and point is the coord pair of point to check.
isPointOnLineSegmentCrossesVariant(Position start, Position end, Position pt, bool incEnd) bool
Only takes into account outer rings See http://stackoverflow.com/a/4833823/1979085 lineSegmentStart Position of start of line lineSegmentEnd Position of end of line pt Position of point to check incEnd controls whether the Point is allowed to fall on the line ends
length(Feature<LineString> line, [Unit unit = Unit.kilometers]) num
Takes a line and measures its length in the specified unit.
lengthToDegrees(num distance, [Unit unit = Unit.kilometers]) num
Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet
lengthToRadians(num distance, [Unit unit = Unit.kilometers]) num
Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
lineIntersect(GeoJSONObject line1, GeoJSONObject line2, {bool removeDuplicates = true, bool ignoreSelfIntersections = false}) FeatureCollection<Point>
Takes any LineString or Polygon and returns the intersecting Point. removeDuplicates=true removes duplicate intersections, ignoreSelfIntersections=false ignores self-intersections on input features Returns a FeatureCollection<Point> containing point(s) that intersect both example:
lineOverlap(Feature<GeometryObject> feature1, Feature<GeometryObject> feature2, {num tolerance = 0, Unit unit = Unit.kilometers}) FeatureCollection<LineString>
Takes any LineString, MultiLineString, Polygon or MultiPolygon and returns the overlapping lines between both features. feature1 first feature feature2 second feature tolerance tolerance distance to match overlapping line segments, default is 0 unit the unit in which the tolerance is expressed, default is kilometers returns FeatureCollection<LineString> lines(s) that are overlapping between both features
lineSegment(GeoJSONObject geoJson, {bool combineGeometries = false}) FeatureCollection<LineString>
Creates a FeatureCollection of 2-vertex LineString segments from a LineString or MultiLineString or Polygon and MultiPolygon Returns FeatureCollection<LineString> 2-vertex line segments For example:
lineSlice(Feature<Point> startPt, Feature<Point> stopPt, Feature<LineString> line) Feature<LineString>
Takes a line, at a start point startPt, and a stop point stopPt and returns a subsection of the line in-between those points. The start & stop points don't need to fall exactly on the line.
lineStringToPolygon(GeoJSONObject line, bool autoComplete, bool orderCoords, {Map<String, dynamic>? properties}) Feature<Polygon>
Converts LineString to Polygon Takes a optional boolean autoComplete that auto completes LineStrings Takes an optional orderCoords that sorts LineStrings to place outer ring at the first Position of the coordinates.
lineToPolygon(GeoJSONObject lines, {Map<String, dynamic>? properties, bool autoComplete = true, bool orderCoords = true, bool mutate = false}) Feature<GeometryObject>
Converts LineStrings & MultiLineString to Polygon or MultiPolygon. Takes an optional boolean autoComplete that auto completes LineStrings (matches first & last coordinates). Takes an optional orderCoords that sorts LineStrings to place outer ring at the first Position of the coordinates. Takes an optional mutate that mutates the original LineString using autoComplete (matches first & last coordinates. Returns Feature<Polygon> or Feature<MultiPolygon> converted to Polygons. example:
midpoint(Point point1, Point point2) Point
Takes two Points and returns a point midway between them. The midpoint is calculated geodesically, meaning the curvature of the earth is taken into account. For example:
midpointRaw(Position point1, Position point2) Position
nearestPoint(Feature<Point> targetPoint, FeatureCollection<Point> points) Feature<Point>
Takes a reference Point and a FeatureCollection of Features with Point geometries and returns the point from the FeatureCollection closest to the reference. This calculation is geodesic. For example:
nearestPointOnLine(LineString line, Point point, [Unit unit = Unit.kilometers]) Feature<Point>
Takes a Point and a LineString and calculates the closest Point on the LineString.
nearestPointOnMultiLine(MultiLineString lines, Point point, [Unit unit = Unit.kilometers]) Feature<Point>?
Takes a Point and a MultiLineString and calculates the closest Point on the MultiLineString.
polygonSmooth(GeoJSONObject inputPolys, {int iterations = 1}) FeatureCollection<GeometryObject>
Smooths a Polygon, MultiPolygon, also inside Features, FeatureCollections, or GeometryCollection. Based on Chaikin's algorithm. Warning: may create degenerate polygons. The optional parameter iterations is the number of times to smooth the polygon. A higher value means a smoother polygon. The functions returns a FeatureCollection of Polygons and MultiPolygons.
polygonToLine(GeoJSONObject poly, {Map<String, dynamic>? properties}) GeoJSONObject
Converts a Polygon to LineString or MultiLineString or a MultiPolygon to a FeatureCollection of LineString or MultiLineString. Returns FeatureCollection or Feature<LineString> or Feature<MultiLinestring> example:
propEach(GeoJSONObject geoJSON, PropEachCallback callback) → void
Iterates over properties in any geoJSON object, calling callback on each iteration. Similar to Iterable.forEach
propertiesContainsFilter(Map properties, Map filter) bool
Properties contains filter (does not apply deepEqual operations) Takes a Map properties value, and a Map filter and Returns bool if filter does equal the properties For example
propReduce<T>(GeoJSONObject geojson, PropReduceCallback<T> callback, T? initialValue) → T?
Reduces properties in any GeoJSONObject into a single value, similar to how Iterable.reduce works. However, in this case we lazily run the reduction, so List of all properties is unnecessary.
radiansToDegrees(num radians) num
Converts an angle in radians to degrees
radiansToLength(num radians, [Unit unit = Unit.kilometers]) num
Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit. Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
rhumbBearing(Point start, Point end, {bool kFinal = false}) num
Takes two Point and finds the bearing angle between them along a Rhumb line i.e. the angle measured in degrees start the north line (0 degrees) kFinal calculates the final bearing if true. Returns bearing from north in decimal degrees, between -180 and 180 degrees (positive clockwise) example:
rhumbDestination(Point origin, num distance, num bearing, {Unit? unit = Unit.kilometers, Map<String, dynamic>? properties}) Feature<Point>
Returns the destination Point having traveled the given distance along a Rhumb line from the origin Point with the (variant) given bearing.
rhumbDistance(Point from, Point to, [Unit unit = Unit.kilometers]) num
Calculates the distance along a rhumb line between two Point in degrees, radians, miles, or kilometers.
round(num value, [num precision = 0]) num
Round number to precision
segmentEach(GeoJSONObject geojson, SegmentEachCallback callback, {bool combineNestedGeometries = true}) → void
Iterates over 2-vertex line segment in any GeoJSON object, similar to Iterable.forEach (Multi)Point geometries do not contain segments therefore they are ignored during this operation.
segmentReduce<T>(GeoJSONObject geojson, SegmentReduceCallback<T> callback, T? initialValue, {bool combineNestedGeometries = true}) → T?
Reduces 2-vertex line segment in any GeoJSON object, similar to Iterable.reduce (Multi)Point geometries do not contain segments therefore they are ignored during this operation.
transformRotate(GeoJSONObject geoJSON, num angle, {Point? pivot, bool mutate = false}) GeoJSONObject
Rotates any GeoJSONObject of a specified angle, around its centroid or a given pivot Point.
truncate(GeoJSONObject geojson, {int precision = 6, int coordinates = 3, bool mutate = false}) GeoJSONObject
Takes a Feature or FeatureCollection and truncates the precision of the geometry. precision sets the coordinate decimal precision coordinates sets the maximum number of coordinates (primarly used to remove z coordinates) mutate allows GeoJSONObject input to be mutated (significant performance increase if true) Returns GeoJSONObject layer with truncated geometry example: var point = Point(coordinates: Position.of( 70.46923055566859, 58.11088890802906, 1508 )); var truncated = truncate(point, precision: 3, coordinates: 2); //=truncated.geometry.coordinates => 70.469, 58.111 //addToMap var addToMap = truncated;

Typedefs

ClusterEachCallback = dynamic Function(FeatureCollection<GeometryObject>? cluster, dynamic clusterValue, int? currentIndex)
ClusterEachCallback Takes a FeatureCollection, the cluster being processed, a clusterValue used to create cluster being processed, and the currentIndex, the index of current element being processed in the List. Starts at index 0 Returns void.
ClusterReduceCallback<T> = T? Function(T? previousValue, FeatureCollection<GeometryObject>? cluster, dynamic clusterValue, int? currentIndex)
ClusterReduceCallback The first time the callback function is called, the values provided as arguments depend on whether the reduce method has an initialValue argument.
CoordEachCallback = dynamic Function(Position? currentCoord, int? coordIndex, int? featureIndex, int? multiFeatureIndex, int? geometryIndex)
CoordReduceCallback<T> = T? Function(T? previousValue, Position? currentCoord, int? coordIndex, int? featureIndex, int? multiFeatureIndex, int? geometryIndex)
Callback for coordReduce
FeatureEachCallback = dynamic Function(Feature<GeometryObject> currentFeature, int featureIndex)
Callback for featureEach
FeatureReduceCallback<T> = T? Function(T? previousValue, Feature<GeometryObject> currentFeature, int featureIndex)
Callback for featureReduce
FlattenEachCallback = dynamic Function(Feature<GeometryType> currentFeature, int featureIndex, int multiFeatureIndex)
Callback for flattenEach
FlattenReduceCallback<T> = T? Function(T? previousValue, Feature<GeometryObject> currentFeature, int featureIndex, int multiFeatureIndex)
Callback for flattenReduce The first time the callback function is called, the values provided as arguments depend on whether the reduce method has an initialValue argument. If an initialValue is provided to the reduce method:
GeomEachCallback = dynamic Function(GeometryType? currentGeometry, int? featureIndex, Map<String, dynamic>? featureProperties, BBox? featureBBox, dynamic featureId)
GeomReduceCallback<T> = T? Function(T? previousValue, GeometryType? currentGeometry, int? featureIndex, Map<String, dynamic>? featureProperties, BBox? featureBBox, dynamic featureId)
Callback for geomReduce
LocalizedCoordEachCallback = dynamic Function(Position? currentCoord, int? coordIndex, int? featureIndex, int? multiFeatureIndex, int? geometryIndex, int? localCoordIndex)
PropEachCallback = dynamic Function(Map<String, dynamic>? currentProperties, int featureIndex)
Callback for propEach
PropReduceCallback<T> = T? Function(T? previousValue, Map<String, dynamic>? currentProperties, int featureIndex)
Callback for propReduce
SegmentEachCallback = dynamic Function(Feature<LineString> currentSegment, int featureIndex, int? multiFeatureIndex, int? geometryIndex, int segmentIndex)
SegmentEachCallback
SegmentReduceCallback<T> = T? Function(T? previousValue, Feature<LineString> currentSegment, T? initialValue, int featureIndex, int? multiFeatureIndex, int? geometryIndex, int segmentIndex)
Callback for segmentReduce