我尝试使用网页墨卡托投影将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);
}
非常感谢! :)