Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix export strategy #177

Merged
merged 5 commits into from
Mar 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<h1 align="center">
<br>
<img src="https://github.com/dartclub/turf_dart/blob/update-readme/.github/turf-logo.png" alt="TurfDart Logo" width="250">
<img src="https://github.com/dartclub/turf_dart/blob/main/.github/turf-logo.png" alt="TurfDart Logo" width="250">
</h1>

<h4 align="center">A <a href="https://github.com/Turfjs/turf">TurfJs</a>-like geospatial analysis library written in pure Dart.
Expand Down
1 change: 0 additions & 1 deletion benchmark/explode_benchmark.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import 'package:benchmark/benchmark.dart';
import 'package:turf/src/explode.dart';
import 'package:turf/turf.dart';

var poly = Polygon(coordinates: [
Expand Down
1 change: 0 additions & 1 deletion benchmark/line_segment_benchmark.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import 'package:benchmark/benchmark.dart';
import 'package:turf/line_segment.dart';
import 'package:turf/helpers.dart';

void main() {
LineString lineString = LineString(
Expand Down
1 change: 1 addition & 0 deletions lib/along.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_along;

export 'package:geotypes/geotypes.dart';
export "src/along.dart";
1 change: 1 addition & 0 deletions lib/area.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_area;

export 'package:geotypes/geotypes.dart';
export "src/area.dart";
1 change: 1 addition & 0 deletions lib/bbox.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_bbox;

export 'package:geotypes/geotypes.dart';
export "src/bbox.dart";
1 change: 1 addition & 0 deletions lib/bbox_polygon.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_bbox_polygon.dart;

export 'package:geotypes/geotypes.dart';
export 'src/bbox_polygon.dart';
1 change: 1 addition & 0 deletions lib/bearing.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
library turf_bearing;

export 'package:geotypes/geotypes.dart';
export 'src/bearing.dart';
export 'src/rhumb_bearing.dart';
1 change: 1 addition & 0 deletions lib/boolean.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
library turf_boolean;

export 'package:geotypes/geotypes.dart';
export 'src/booleans/boolean_clockwise.dart';
export 'src/booleans/boolean_concave.dart';
export 'src/booleans/boolean_contains.dart';
Expand Down
1 change: 1 addition & 0 deletions lib/center.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_center;

export 'package:geotypes/geotypes.dart';
export 'src/center.dart';
1 change: 1 addition & 0 deletions lib/centroid.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_centroid;

export 'package:geotypes/geotypes.dart';
export 'src/centroid.dart';
3 changes: 2 additions & 1 deletion lib/clean_coords.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library clean_coords.dart;
library turf_clean_coords;

export 'package:geotypes/geotypes.dart';
export 'src/clean_coords.dart';
1 change: 1 addition & 0 deletions lib/clusters.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_clusters;

export 'package:geotypes/geotypes.dart';
export 'src/meta/cluster.dart';
1 change: 1 addition & 0 deletions lib/destination.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
library turf_destination;

export 'package:geotypes/geotypes.dart';
export 'src/destination.dart';
export 'src/rhumb_destination.dart';
1 change: 1 addition & 0 deletions lib/distance.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
library turf_distance;

export 'package:geotypes/geotypes.dart';
export 'src/distance.dart';
export 'src/rhumb_distance.dart';
3 changes: 2 additions & 1 deletion lib/explode.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library explode;
library turf_explode;

export 'package:geotypes/geotypes.dart';
export 'src/explode.dart';
1 change: 1 addition & 0 deletions lib/extensions.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_extensions;

export 'package:geotypes/geotypes.dart';
export 'src/meta/extensions.dart';
2 changes: 1 addition & 1 deletion lib/helpers.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
library turf_helpers;

export 'package:geotypes/geotypes.dart';
export 'src/helpers.dart';
export 'src/geojson.dart';
4 changes: 4 additions & 0 deletions lib/invariant.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
library turf_invariant;

export 'package:geotypes/geotypes.dart';
export 'src/invariant.dart';
1 change: 1 addition & 0 deletions lib/length.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_length;

export 'package:geotypes/geotypes.dart';
export "src/length.dart";
4 changes: 4 additions & 0 deletions lib/line_intersect.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
library turf_line_intersect;

export 'package:geotypes/geotypes.dart';
export "src/line_intersect.dart";
1 change: 1 addition & 0 deletions lib/line_overlap.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_line_overlap;

export 'package:geotypes/geotypes.dart';
export "src/line_overlap.dart";
1 change: 1 addition & 0 deletions lib/line_segment.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_line_segment;

export 'package:geotypes/geotypes.dart';
export "src/line_segment.dart";
3 changes: 2 additions & 1 deletion lib/line_slice.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_along;
library turf_line_slice;

export 'package:geotypes/geotypes.dart';
export "src/line_slice.dart";
3 changes: 2 additions & 1 deletion lib/line_to_polygon.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_line_to_polygon.dart;
library turf_line_to_polygon;

export 'package:geotypes/geotypes.dart';
export 'src/line_to_polygon.dart';
1 change: 1 addition & 0 deletions lib/meta.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
library turf_meta;

export 'package:geotypes/geotypes.dart';
export 'src/meta/cluster.dart';
export 'src/meta/coord.dart';
export 'src/meta/feature.dart';
Expand Down
1 change: 1 addition & 0 deletions lib/midpoint.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_midpoint;

export 'package:geotypes/geotypes.dart';
export 'src/midpoint.dart';
1 change: 1 addition & 0 deletions lib/nearest_point.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_nearest_point;

export 'package:geotypes/geotypes.dart';
export 'src/nearest_point.dart';
1 change: 1 addition & 0 deletions lib/nearest_point_on_line.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_nearest_point_on_line;

export 'package:geotypes/geotypes.dart';
export 'src/nearest_point_on_line.dart';
1 change: 1 addition & 0 deletions lib/polygon_smooth.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_polygon_smooth;

export 'package:geotypes/geotypes.dart';
export 'src/polygon_smooth.dart';
1 change: 1 addition & 0 deletions lib/polygon_to_line.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_polygon_to_line;

export 'package:geotypes/geotypes.dart';
export 'src/polygon_to_line.dart';
1 change: 1 addition & 0 deletions lib/polyline.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
library turf_polyline;

export 'package:geotypes/geotypes.dart';
export 'src/polyline.dart';
16 changes: 8 additions & 8 deletions lib/src/along.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import 'package:turf/bearing.dart';
import 'package:turf/destination.dart';
import 'package:turf/helpers.dart';
import 'package:turf/length.dart';
import 'package:turf/src/distance.dart' as measure_distance;
import 'package:turf/src/invariant.dart';
import 'distance.dart' as measure_distance;
import 'invariant.dart';

/// Takes a [line] and returns a [Point] at a specified [distance] along the line.
///
Expand All @@ -24,16 +24,16 @@ Feature<Point> along(Feature<LineString> line, num distance,
if (distance < 0) {
distance = max(0, length(line, unit) + distance);
}
num travelled = 0;
num traveled = 0;
for (int i = 0; i < coords.length; i++) {
if (distance >= travelled && i == coords.length - 1) {
if (distance >= traveled && i == coords.length - 1) {
break;
}
if (travelled == distance) {
if (traveled == distance) {
return Feature<Point>(geometry: Point(coordinates: coords[i]));
}
if (travelled > distance) {
final overshot = distance - travelled;
if (traveled > distance) {
final overshot = distance - traveled;
final direction = bearing(Point(coordinates: coords[i]),
Point(coordinates: coords[i - 1])) -
180;
Expand All @@ -45,7 +45,7 @@ Feature<Point> along(Feature<LineString> line, num distance,
);
return Feature<Point>(geometry: interpolated);
} else {
travelled += measure_distance.distance(Point(coordinates: coords[i]),
traveled += measure_distance.distance(Point(coordinates: coords[i]),
Point(coordinates: coords[i + 1]), unit);
}
}
Expand Down
1 change: 0 additions & 1 deletion lib/src/bbox.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import 'package:turf/helpers.dart';
import 'package:turf/meta.dart';

/// Calculates the bounding box for any [geoJson] object, including [FeatureCollection].
Expand Down
3 changes: 1 addition & 2 deletions lib/src/bearing.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import 'dart:math';

import 'geojson.dart';
import 'helpers.dart';
import 'package:geotypes/geotypes.dart';

// http://en.wikipedia.org/wiki/Haversine_formula
// http://www.movable-type.co.uk/scripts/latlong.html
Expand Down
1 change: 0 additions & 1 deletion lib/src/booleans/boolean_contains.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import 'package:turf/src/invariant.dart';
import 'package:turf/turf.dart';
import 'boolean_helper.dart';

Expand Down
50 changes: 5 additions & 45 deletions lib/src/booleans/boolean_crosses.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ import '../../helpers.dart';
import '../line_intersect.dart';
import '../polygon_to_line.dart';
import 'boolean_point_in_polygon.dart';
import 'boolean_point_on_line.dart';

/// [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.
/// [booleanCsses] returns [true] for only [MultiPoint]/[Polygon], [MultiPoint]/[LineString],
/// [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
/// [Feature]s spec and may give unexpected results.
Expand All @@ -31,7 +32,7 @@ bool booleanCrosses(GeoJSONObject feature1, GeoJSONObject feature2) {
var geom1 = getGeom(feature1);
var geom2 = getGeom(feature2);

var exception = Exception("$geom2 is not supperted");
var exception = Exception("$geom2 is not supported");
if (geom1 is MultiPoint) {
if (geom2 is LineString) {
return _doMultiPointAndLineStringCross(geom1, geom2);
Expand Down Expand Up @@ -78,7 +79,7 @@ bool _doMultiPointAndLineStringCross(
if (i2 == 0 || i2 == lineString.coordinates.length - 2) {
incEndVertices = false;
}
if (isPointOnLineSegment(
if (isPointOnLineSegmentCrossesVariant(
lineString.coordinates[i2],
lineString.coordinates[i2 + 1],
multiPoint.coordinates[i],
Expand All @@ -102,7 +103,7 @@ bool _doLineStringsCross(LineString lineString1, LineString lineString2) {
if (i2 == 0 || i2 == lineString2.coordinates.length - 2) {
incEndVertices = false;
}
if (isPointOnLineSegment(
if (isPointOnLineSegmentCrossesVariant(
lineString1.coordinates[i],
lineString1.coordinates[i + 1],
lineString2.coordinates[i2],
Expand Down Expand Up @@ -137,44 +138,3 @@ bool _doesMultiPointCrossPoly(MultiPoint multiPoint, Polygon polygon) {

return foundExtPoint && foundIntPoint;
}

/// 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
bool isPointOnLineSegment(
Position lineSegmentStart,
Position lineSegmentEnd,
Position pt,
bool incEnd,
) {
var dxc = pt[0]! - lineSegmentStart[0]!;
var dyc = pt[1]! - lineSegmentStart[1]!;
var dxl = lineSegmentEnd[0]! - lineSegmentStart[0]!;
var dyl = lineSegmentEnd[1]! - lineSegmentStart[1]!;
var cross = dxc * dyl - dyc * dxl;
if (cross != 0) {
return false;
}
if (incEnd) {
if ((dxl).abs() >= (dyl).abs()) {
return dxl > 0
? lineSegmentStart[0]! <= pt[0]! && pt[0]! <= lineSegmentEnd[0]!
: lineSegmentEnd[0]! <= pt[0]! && pt[0]! <= lineSegmentStart[0]!;
}
return dyl > 0
? lineSegmentStart[1]! <= pt[1]! && pt[1]! <= lineSegmentEnd[1]!
: lineSegmentEnd[1]! <= pt[1]! && pt[1]! <= lineSegmentStart[1]!;
} else {
if ((dxl).abs() >= (dyl).abs()) {
return dxl > 0
? lineSegmentStart[0]! < pt[0]! && pt[0]! < lineSegmentEnd[0]!
: lineSegmentEnd[0]! < pt[0]! && pt[0]! < lineSegmentStart[0]!;
}
return dyl > 0
? lineSegmentStart[1]! < pt[1]! && pt[1]! < lineSegmentEnd[1]!
: lineSegmentEnd[1]! < pt[1]! && pt[1]! < lineSegmentStart[1]!;
}
}
8 changes: 3 additions & 5 deletions lib/src/booleans/boolean_disjoint.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import 'package:turf/src/booleans/boolean_crosses.dart';

import '../../helpers.dart';
import 'boolean_point_on_line.dart';
import 'boolean_point_in_polygon.dart';
import '../../meta.dart';
import '../line_intersect.dart';
import '../polygon_to_line.dart';
import 'boolean_point_in_polygon.dart';

/// Returns [true] if the intersection of the two geometries is an empty set.
/// example:
Expand Down Expand Up @@ -73,7 +71,7 @@ bool _disjoint(GeometryType geom1, GeometryType geom2) {
// http://stackoverflow.com/a/11908158/1979085
bool _isPointOnLine(LineString lineString, Point pt) {
for (var i = 0; i < lineString.coordinates.length - 1; i++) {
if (isPointOnLineSegment(lineString.coordinates[i],
if (isPointOnLineSegmentCrossesVariant(lineString.coordinates[i],
lineString.coordinates[i + 1], pt.coordinates, true)) {
return true;
}
Expand Down
1 change: 0 additions & 1 deletion lib/src/booleans/boolean_intersects.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import '../../helpers.dart';
import '../../meta.dart';
import 'boolean_disjoint.dart';

Expand Down
1 change: 0 additions & 1 deletion lib/src/booleans/boolean_overlap.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import 'package:turf/helpers.dart';
import 'package:turf/line_overlap.dart';
import 'package:turf/line_segment.dart';
import 'package:turf/src/invariant.dart';
Expand Down
Loading
Loading