I'm building a web app that allows the user to search the database based on his Google Maps location and a customizable search area around the location. I've noticed that when I keep the radius of the circle constant (500 miles) the circle is a lot smaller when I place it near the equator then when I place its center in Finland. At first I thought this was caused by a coding error but upon inspection I could find none. Now my second guess is that this sudden change is perhaps caused by the curvature of the Earth. The more the latitude value moves away from 0 (the equator) the larger the circle becomes.
What causes my circle to enlarge when I move my position to one of the poles and how can I prevent the circle from increasing?
With what constant do I need to correct the radius input after each Google Maps position change?
500 mile blue circle near the Equator
500 mile blue circle in Finland which is rendered a lot larger
Answer
The answer to this question is somewhat technical. First you need to recall that the Earth looks like this:
So when it's drawn as a flat surface, there will be distortion. How much distortion depends on the projection.
The Web Mercator map projection is famous (or, in some circles, notorious) for the infinite exaggeration at the poles (note that Greenland is 1/7 the area of South America).
So here's 500 mile radius circles, created with a geodesic buffer, near where you centered them, but in World from Space:
And here's those same circles in Plate carrée (Cartesian degrees):
And here they are in Web Mercator:
So it appears that your "circles" are geodetic circles (note that the northern extent is further from the point than the southern extent, which is evidence of the impact of Web Mercator), and therefore correct (so you don't need to make any changes).
No comments:
Post a Comment