# HG changeset patch # User Raimund Renkert # Date 1550157336 -3600 # Node ID f06e9e0cb790e1a0c01b51d28e2835c8d4c90860 # Parent 91ca0cdd2e35b07d5be7a121224b1be21d1c9f02 client: improved fairway calculation for cross cut. diff -r 91ca0cdd2e35 -r f06e9e0cb790 client/src/lib/geo.js --- a/client/src/lib/geo.js Thu Feb 14 16:12:34 2019 +0100 +++ b/client/src/lib/geo.js Thu Feb 14 16:15:36 2019 +0100 @@ -24,7 +24,8 @@ import distance from "@turf/distance"; import { lineString as turfLineString, - polygon as turfPolygon + polygon as turfPolygon, + point as turfPoint } from "@turf/helpers"; import lineSplit from "@turf/line-split"; import lineSlice from "@turf/line-slice"; @@ -199,16 +200,15 @@ ); startPoint = line1.geometry.coordinates[0]; endPoint = line1.geometry.coordinates[1]; - } else if (booleanWithin(line, polygon)) { + } else if ( + booleanContains(polygon, turfPoint(line.geometry.coordinates[0])) && + booleanContains(polygon, turfPoint(line.geometry.coordinates[1])) + ) { startPoint = line.geometry.coordinates[0]; endPoint = line.geometry.coordinates[1]; } else { let split = lineSplit(line, polygon); for (let feature of split.features) { - if (booleanWithin(feature, polygon)) { - startPoint = feature.geometry.coordinates[0]; - endPoint = feature.geometry.coordinates[1]; - } if (booleanContains(polygon, feature)) { startPoint = feature.geometry.coordinates[0]; endPoint = feature.geometry.coordinates[1];