使用PHP将纬度/经度转换为Web Mercator像素

时间:2017-07-09 10:58:55

标签: php geolocation mercator

我尝试使用网页墨卡托投影将WGS 84坐标转换为像素。我想在给定的地图上打印位置。我遇到了一个PHP函数,如果地图是整个世界的图像,它可以正常工作。我一直在努力扩展这个功能,所以如果地图只是一个剪辑(例如北美),它也可以工作。我已经找到了计算宽度的解决方案,但我未能调整高度计算。我该如何更改功能?

$top是地图图片的左上角[Array]$bottom右下角/ $this->width是地图宽度,$this->height是地图高度)

function cor($lat = null, $lon = null, $top, $bottom) {
    // Width
    $width = ($lon-$bottom[1]) * $this->width/($top[1]-$bottom[1]);
    // Height
    $latrad = ($lat * M_PI) / 180;
    $mercN = log(tan((M_PI / 4) + ($latrad / 2)));
    $height = (($this->height / 2) - ($this->width * $mercN / (2 * M_PI)));

    return Array($width, $height);
}

非常感谢! :)

0 个答案:

没有答案