Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to determine the formula necessary to calculate map resolution (change in lat,long per screen unit). I am interested in only WGS84 coordinate space.

Every formula I have found thus far seems dependent on a map that has predefined zoom levels, i.e. a tiled map. For example, the common formula I find is:

Map resolution = 156543.04 meters/pixel * cos(latitude) / (2 ^ zoomlevel)

How can I adjust this formula for a map without zoom levels?

share|improve this question
lat and long both wil be different every time you change the center of the map. lat changes the most. not sure how you can use a constant on that. – Brad Nesom Nov 17 '10 at 15:26
I understand that much. I am ultimately trying to convert screen coordinates to real world coordinates, so the map resolution here is not intended to be a static property. I will re-calculate everytime the screen to map conversion is performed. – user890 Nov 17 '10 at 15:42
up vote 5 down vote accepted

If your map is in lon/lat, then you have the coordinates of the corners in lon/lat. Calculate a line that crosses the middle of your map like so: p1 = ( xmin + xmax ) / 2, ymin and p2 = ( xmin + xmax ) / 2, ymax. You also know how wide your map is in pixels. Now use the Haversine formula to calculate the distance between p1 and p2. Divide that by your image width and you now know how many ground units there are per pixel in your map.

Note that when displaying raw lon/lat data in a map the vertical and horizontal scales will not be the same, with the discrepancy increasing the farther north you go. The above calculates the horizontal scale, flip to a vertical orientation to get the other scale.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.