sreekanthvasireddy
asked on
Finding a latitude and longitude on a circle drawn with a specific radius on google maps
Hai,
I am working in a project where I will pick a point on google map by clicking somewhere on the map and draw a circle with a radius, say 1 mile. So a later if a user enters some latitude and longitude, I will have to say whether it falls within the circle or not. I am trying to do this with google maps api. I am not able to focus on any logic in particular. My problem is finding if the given coodinate or latitude or longitude is within the circle or not. I am unable to think of anything that will help. Thank you for your time.
I am working in a project where I will pick a point on google map by clicking somewhere on the map and draw a circle with a radius, say 1 mile. So a later if a user enters some latitude and longitude, I will have to say whether it falls within the circle or not. I am trying to do this with google maps api. I am not able to focus on any logic in particular. My problem is finding if the given coodinate or latitude or longitude is within the circle or not. I am unable to think of anything that will help. Thank you for your time.
ASKER
Hai KaptainKenbo,
Thanks for your prompt replies. I have gone through all of those, but could not find what I was looking for. Maybe, I have not been clear enough. Let me explain with an example.
Suppose, I a circle at a zoom level of 6. which is pretty high up in the sky. The area covered would be more than what I would cover with the circle of the same radius drawn at say 14, meaning closer to the ground. I would have to figure out some way to accommodate this variance. Maybe, I would need to get the coordinates on the circumference of circle. I don't know. I am just thinking aloud. Please let me know what you think. Thanks
Thanks for your prompt replies. I have gone through all of those, but could not find what I was looking for. Maybe, I have not been clear enough. Let me explain with an example.
Suppose, I a circle at a zoom level of 6. which is pretty high up in the sky. The area covered would be more than what I would cover with the circle of the same radius drawn at say 14, meaning closer to the ground. I would have to figure out some way to accommodate this variance. Maybe, I would need to get the coordinates on the circumference of circle. I don't know. I am just thinking aloud. Please let me know what you think. Thanks
>>Suppose, I a circle at a zoom level of 6. which is pretty high up in the sky. The area covered would
>>be more than what I would cover with the circle of the same radius drawn at say 14, meaning
>>closer to the ground.
Well it all depends upon the circle you have drawn. If you have drawn a circle of 1 mile it will be the same even if you are watching from 1000meters above or on ground level.
In your case you donot need the circumference of the circle but only the center points of the circle and the radius of the circle. As an example your circle center coordinates are long0,lat0 and your circle has a radius of "t" meters. Now the user enters the latitude & longitude as lat1 and long1 and you need to check if the points are within your circle or not. Simply use a distance formula between the center coordinates and the coordinates entered. Then compare it with the radius. If the distance between the coordinates is less then the radius then the point lie within the circle else they are out of the circle.....
>>be more than what I would cover with the circle of the same radius drawn at say 14, meaning
>>closer to the ground.
Well it all depends upon the circle you have drawn. If you have drawn a circle of 1 mile it will be the same even if you are watching from 1000meters above or on ground level.
In your case you donot need the circumference of the circle but only the center points of the circle and the radius of the circle. As an example your circle center coordinates are long0,lat0 and your circle has a radius of "t" meters. Now the user enters the latitude & longitude as lat1 and long1 and you need to check if the points are within your circle or not. Simply use a distance formula between the center coordinates and the coordinates entered. Then compare it with the radius. If the distance between the coordinates is less then the radius then the point lie within the circle else they are out of the circle.....
As far as calculating distance between lat1,long1 and lat0, long0 is concerned you can use the following formula
Haversine formula:
R = earths radius (mean radius = 6,371km)
”lat = lat2 lat1
”long = long2 long1
a = sin²(”lat/2) + cos(lat1).cos(lat2).sin²(” long/2)
c = 2.atan2(a, (1a))
d = R.c
Spherical law
of cosines: d = acos(sin(lat1).sin(lat2)+c os(lat1).c os(lat2).c os(long2l ong1)).R
Visit the following site for full formulas
http://www.movable-type.co.uk/scripts/latlong.html
Haversine formula:
R = earths radius (mean radius = 6,371km)
”lat = lat2 lat1
”long = long2 long1
a = sin²(”lat/2) + cos(lat1).cos(lat2).sin²(”
c = 2.atan2(a, (1a))
d = R.c
Spherical law
of cosines: d = acos(sin(lat1).sin(lat2)+c
Visit the following site for full formulas
http://www.movable-type.co.uk/scripts/latlong.html
Formatting of formulas in above post got ruined.... So trying it in code view... Anyway you can always visit the site posted above to get the formula.....
Haversine formula:
R = earths radius (mean radius = 6,371km)
”lat = lat2 lat1
”long = long2 long1
a = sin²(”lat/2) + cos(lat1).cos(lat2).sin²(”long/2)
c = 2.atan2(a, (1a))
d = R.c
(Note that angles need to be in radians to pass to trig functions).
Spherical law
of cosines: d = acos(sin(lat1).sin(lat2)+cos(lat1).cos(lat2).cos(long2long1)).R
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
sreekanthvasireddy you should close this question by accepting the helpful answer.....
If my suggestion was helpful then you should accept my answer.....
http://www.free-zipcodes.com/
More to come.