Проекция меркатора не работает нормально?

Мне нужно использовать проекцию меркатора, чтобы указать места по широте и логичности в моем приложении SVG. Я много разыскивал, и я получил эти ссылки,

http://en.wikipedia.org/wiki/Mercator_projection
Скрытая точка широты / долготы в пикселях (x,y) на проекции меркатора

КОД

            //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));

Я использовал этот код в своем приложении, но он не работает для меня.
Пожалуйста, помогите получить координаты х и у от широты и долготы. Любые предложения должны быть оценены.

1 ответ

Вы забыли верхний левый и нижний правый угол карты и множитель для умножения координат x,y, чтобы получить правильную проекцию карты. Вы можете использовать фиксированную координату карты, то есть фактор, или вы можете вычислить ограничивающую рамку: Преобразовать широту / долготу в пиксельную координату? а затем вычислите ширину и высоту мира, которые соответствуют ширине и высоте карты.

Другие вопросы по тегам