In the picture below I am finding the bearing of two close lines. This is the picture of two complete lines. The brown line might be a bit large from the blue line.
Should not be the bearing of these two lines should be close to each other with a difference of may be few degrees?
I am checking whether they are equal or not by getting the difference of both lines bearing. I am using python to calculate the bearing and get the difference between there bearing. The code I am using to get out the bearing is:
def calculate_initial_compass_bearing(pointA, pointB): """ Calculates the bearing between two points. The formulae used is the following: θ = atan2(sin(Δlong).cos(lat2), cos(lat1).sin(lat2) − sin(lat1).cos(lat2).cos(Δlong)) :Parameters: - `pointA: The tuple representing the latitude/longitude for the first point. Latitude and longitude must be in decimal degrees - `pointB: The tuple representing the latitude/longitude for the second point. Latitude and longitude must be in decimal degrees :Returns: The bearing in degrees :Returns Type: float """ if (type(pointA) != tuple) or (type(pointB) != tuple): raise TypeError("Only tuples are supported as arguments") lat1 = math.radians(pointA) lat2 = math.radians(pointB) diffLong = math.radians(pointB - pointA) x = math.sin(diffLong) * math.cos(lat2) y = math.cos(lat1) * math.sin(lat2) - (math.sin(lat1) * math.cos(lat2) * math.cos(diffLong)) initial_bearing = math.atan2(x, y) # Now we have the initial bearing but math.atan2 return values # from -180° to + 180° which is not what we want for a compass bearing # The solution is to normalize the initial bearing as shown below initial_bearing = math.degrees(initial_bearing) compass_bearing = (initial_bearing + 360) % 360 return compass_bearing
In the end what I am doing is calculate there difference like that:
DifferenceInBearing = abs(BlueLineBearing - BrownLineBearing)
My problem is that the difference between them is huge just around 179.71922333147256 degrees.
The WKT values of blue line is:
LINESTRING (327854.7919419953 6809188.658530097, 327854.2288694207 6809187.856443238)
The Wkt value for brown line:
LINESTRING (327854.139971 6809187.723519, 327854.714599625 6809188.541579125)
Shouldn't the bearing be close enough?