Hi..I am trying to see if a given pair of (lat,long) will fall within a circular region. The centre of the circle is known (lat,long values) as well as the radius. The approcah I have used is:
- Calculate the distance between the centre and the given lat/long using Haversines formula.
Formula:
a = ( sin(delta_lat/2) )^2 + cos (vp_Current.v_Latitude) *
cos(vp_CentreOfCircle.v_Latitude) * ( sin(delta_long/2) )^2;
c = 2 * atan2( sqrt(a), sqrt(1-a) );
d = R * c;
where: R = 6371 Km.
, delta_lat = lat2 - lat1
, delta_long = long2 - long1
- Then check if this distance is less than the radius to see if it is within the circle.
I have written the code in C but when I enter the following data the output says that the point is outside rather than within the circle (the point is within as I checked on google maps).
Centre(lat/long) = (19.228177, 72.685547)
Given point = (18.959999, 72.819999)
Radius = 30 miles (about 49 Km but entered as 50 in the program).
The weird thing is if I enter the radius as 5000, the output says inside but not even for 500. I don't know where the problem is..would be really grateful if anyone could share some pointers...thanks.