墨卡托投影不正常?

时间:2013-10-31 13:02:45

标签: javascript jquery svg mercator

我需要使用墨卡托投影在我的svg应用程序中按纬度和逻辑指向这些位置。我已经有很多东西,我有这些链接,

http://en.wikipedia.org/wiki/Mercator_projection
Covert latitude/longitude point to a pixels (x,y) on mercator projection

代码

            //this lat and long is for chicago
            var latitude = 41.850033; // (φ)
            var longitude = -87.65005229999997;   // (λ)

            var PI = 3.14;
            var mapWidth = 750;
            var mapHeight = 380;

            // get x value
            var x = (mapWidth * (180+longitude) / 360) % mapWidth + (mapWidth / 2);

            // convert from degrees to radians
            var latRad = latitude * PI / 180;

            // get y value
            var mercN = Math.log(Math.tan((PI / 4) + (latRad / 2)));
            var y = (mapHeight / 2) - (mapWidth * mercN / (2 * PI));

我在我的应用程序中使用了这段代码,但它对我不起作用 请帮助从纬度和经度获得x和y位置。 任何建议都应该受到赞赏。

1 个答案:

答案 0 :(得分:0)

您忘记了地图的左上角和右下角以及将x,y坐标相乘的因子,以提供正确的地图投影。您可以使用固定的地图坐标,即一个因子,或者您可以计算边界框:Convert lat/lon to pixel coordinate?,然后计算适合地图宽度和高度的世界宽度和高度。