Question

I am developing a tile overlay server for google maps. I want to draw a point on a tile for a specific location. How can i convert the real world coordinates to tile pixel coordinates?

I have calculated a tile's bounds so i know if a given point is inside it. My problem is where in the tile should i draw it.

Interpolation works ok for longitude but not for latitude, which is normal for mercatoric maps.

Unfortunately my trigonometry skills are a bit rusty. Could someone give me a hint?

I am using 256x256 pixel tiles. The zoom level, x and y are also given for a tile.

Was it helpful?

Solution

I found the answer here. I had to tweak it a bit:

var offset = 256 << (z-1) - (256 << (z-1))/Math.PI * Math.log((1 + Math.sin(lat * Math.PI / 180)) / (1 - Math.sin(lat * Math.PI / 180))) / 2;
circley = offset - 256*y;
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top