-
-
Notifications
You must be signed in to change notification settings - Fork 339
Open
Description
Hello @manuelbieh ,
I've just noticed that the fix you've commited after issue #227 and pushed does not deal with all the problematic cases. When we call getDistanceFromLine we still get NaN when point === startLine and when startLine === endLine.
This fix in getDistanceFromLine.ts should correct this issue:
if (d1 === 0 || d2 === 0) {
// point located at the exact same place as lineStart or lineEnd
return 0;
}
if (d3 === 0) {
return d1; // lineStart and lineEnd are the same - return point-to-point distance
}I've written the following test. They fail with the current version of the code but they pass with the above fix:
it('https://github.com/manuelbieh/geolib/issues/227 - Point === startLine', () => {
expect(
getDistanceFromLine(
{
latitude: 53,
longitude: 5,
},
{
latitude: 53,
longitude: 5,
},
{
latitude: 53,
longitude: 6,
}
)
).toEqual(0);
});
// The test below does not fail but it's by accident.
it('https://github.com/manuelbieh/geolib/issues/227 - Point === endLine', () => {
expect(
getDistanceFromLine(
{
latitude: 53,
longitude: 5,
},
{
latitude: 53,
longitude: 6,
},
{
latitude: 53,
longitude: 5,
}
)
).toEqual(0);
});
it('https://github.com/manuelbieh/geolib/issues/227 - startLine === endLine', () => {
expect(
getDistanceFromLine(
{
latitude: 53,
longitude: 6,
},
{
latitude: 53,
longitude: 5,
},
{
latitude: 53,
longitude: 5,
}
)
).not.toBeNaN();
});I don't have the access right to push this modification on a new branch on your repo.
Metadata
Metadata
Assignees
Labels
No labels