Link to home
Start Free TrialLog in
Avatar of sreekanthvasireddy
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.

Avatar of Ken Fayal
Ken Fayal
Flag of United States of America image

There are a lot of good resources online to read concerning this.  Here is one I can tell you about first,

http://www.free-zipcodes.com/

More to come.
Then of course, you have a source right from Google.

http://code.google.com/apis/maps/index.html
Avatar of sreekanthvasireddy
sreekanthvasireddy

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
>>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.....
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)+cos(lat1).cos(lat2).cos(long2long1)).R

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

Open in new window

SOLUTION
Avatar of imarshad
imarshad
Flag of Pakistan image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
sreekanthvasireddy you should close this question by accepting the helpful answer.....
If my suggestion was helpful then you should accept my answer.....