'Convert pixel location to latitude/longitude & vise versa

I need to convert latitude longitude values into pixel positions as well as do the opposite. I've found many solutions to go from lat/lng->pixel, but can't find anything on the reverse.

A couple of notes:

  • The map is a fixed size, no zooming, no tiles.
  • I don't need anything super accurate, its not important.
  • Preferably mercator projection, but not required. I'm not actually display the result. (Any 2D projection)
  • I can't rely on any web based API's, ie: no Google Maps

A solution in almost any programming language would be fine, as long as it doesn't rely on any platform specific APIs.

This is an example of going from lat/lng->pixel:

var y = Math.round(((-1 * lat) + 90) * (this.MAP_HEIGHT / 180));
var x = Math.round((lng + 180) * (this.MAP_WIDTH / 360));


Solution 1:[1]

var y = Math.round(((-1 * lat) + 90) * (this.MAP_HEIGHT / 180));
var x = Math.round((lng + 180) * (this.MAP_WIDTH / 360));

Use some algebra and I came out with:

var lat=(y/(this.MAP_HEIGHT/180)-90)/-1
var lng = x/(this.MAP_WIDTH/360)-180

Not completely confident in that math since it was done in my head, but those should work, just make sure to test them first.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 ChristopheCVB