Hi,
I'm working on a version to specifically visualise the A star algorithm with similar data and noticed that the results where sometimes very different, even when I removed the additional weights I added based on maxSpeed & disregarded one way edges.
That's when I realised you are currently using the Math.hypot() on the difference in longitude and latitude between two nodes. The thing is that the distance in meters between the latitude lines is always the same, the distance in longitude changes.
Around the equator, 1 degree longitude and latitude is basically the same in distance, for which Math.hypot() will give you the correct distance between two points.
In Finland on the other hand, moving 1 degree left or right (east or west) we only move half the distance of moving 1 degree up or down (north or south).
=>
This is why the A* algorithm will heavily favour any movement left or right.
Using current Math.hypot() for the distance from Point A(Lat 0, Lon 0) & Point B(Lat 0, Lon 1) is the same as the distance between Point A(Lat 88, Lon 88) & Point B(Lat 88, Lon 89), although the actual distance is 348 times bigger.
To fix this you should scale by the cosine of the latitude