Получение широты и долготы по проекции Меркатора

Рейтинг: 0Ответов: 1Опубликовано: 12.01.2015

Как получить координаты широты и долготы, имея при этом квадратную карту определенного размера по проекции Меркатора?

Ответы

▲ 1Принят

Пара часов усилий, и результат получен

function lat2y($latitude,$size){

        $latRad = $latitude*M_PI/180;

        $mercN = log(tan((M_PI/4)+($latRad/2)));
        $y=($size/2)-($size*$mercN/(2*M_PI));
        return $y;
}

function lon2x($longitude,$size){
        return ($longitude+180)*($size/360);
}

function y2lat($y,$size){

        $mercN=2*M_PI/$size*(($size/2)-$y);

        $latRad = 2*atan(exp($mercN))-0.5*M_PI;

        $latitude=$latRad/M_PI*180;

        return $latitude;
}

function x2lon($x,$size){

        return $x/($size/360)-180;
}