Skip to content

Commit

Permalink
Fix export strategy (#177)
Browse files Browse the repository at this point in the history
* fix warnings

* fix export strategy

* remove unused imports

* review changes
  • Loading branch information
jsiedentop authored Mar 1, 2024
1 parent 25df24a commit 8d454bf
Show file tree
Hide file tree
Showing 77 changed files with 226 additions and 179 deletions.
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

0 comments on commit 8d454bf

Please sign in to comment.