how to Convert Lat ,long to an XY coordinate system (e.g. UTM) and then map this to pixel space of my Image

Verve Innovation picture Verve Innovation · May 30, 2011 · Viewed 22.4k times · Source

I have a very small area map , which I downloaded from Openstreet map(PNG) and also its OSM(.osm) file which contains its Lat ,long.

Now I want to convert Lat ,long to an XY coordinate system (e.g. UTM) and then map this to pixel space of my Image which is of size (600 x 800 ). I know its a two way process ,like to know how to do this . Thank you

Answer

Brian Webster picture Brian Webster · May 30, 2011

GPS Coordinates to Pixels

  • Assuming this map does not cross prime meridian
  • Assuming pixel 0,0 is upper left, and pixel 600,800 is lower right.
  • Assuming map is Northern Hemisphere Only (no part of map is southern hemisphere)

    1. Determine the left-most longitude in your 800x600 image (X)
    2. Determine the east-most longitude in your 800x600 image (Y)
    3. Determine Longitude-Diff (Z = Y - X)
    4. Determine north-most latitude in your 800x600 image (A)
    5. Determine south-most latitude in your 800x600 image (B)
    6. Determine Longitude-Diff (C = A - B)

Given a Latitude and Longitude, to determine which pixel they clicked on:

  1. J = Input Longitude
  2. K = Input Latitude

  3. Calculate X-pixel

    XPixel = CInt(((Y - J) / CDbl(Z)) * 800)

  4. Calculate Y-pixel

    YPixel = CInt(((A - K) / CDbl(C)) * 600)

UTM

Here is a cartographic library that should help with GPS to UTM conversions