Reputation: 5495
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:
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));
Upvotes: 10
Views: 15819
Reputation: 165
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.
Upvotes: 9