将纬度/经度转换为像素位置
问题描述:
我有一张地图(墨卡托),以及地图四角的坐标。我需要想出一些东西,以便将给定的坐标转换为地图上的相应点。我不能使用谷歌或类似的东西,这就是为什么我首先需要做到这一点。将纬度/经度转换为像素位置
我可以使用的语言要么是PHP或Javascript。我尝试了一些我在其他帖子中发现的东西,例如: Mercator longitude and latitude calculations to x and y on a cropped map (of the UK),但我没有与他们交往过。
如果有人可以提供一些帮助,我会很感激。我对数学非常害怕,看着这些开始感觉不到我的联盟的方程式,但我必须完成它。
再次,在此先感谢。
答
function convert_coords($lat, $lon)
{
$width = 1281;
$height = 1529;
// X and Y boundaries
$westLong = -75.196438;
$eastLong = -74.674072;
$northLat = 41.377581;
$southLat = 40.909232;
$lat = $lat;
$lon = $lon;
$x = $width * (($westLong-$lon)/($westLong-$eastLong));
$y = ($height * (($northLat-$lat)/($northLat-$southLat)));
echo $x."<br />";
echo $y;
}
这是我一直在努力去工作。我认为这是我在这里拉下的东西的一种变体,但它不会让我获得我需要的结果。我真的碰到了一堵砖墙。实际上我没有办法在这里自己算出数学,我一直在努力,这是我的联盟之外的方式。
答
听起来您正在使用JavaScript,在这种情况下,proj4js开源库值得一看。另外,假设你的位图与坐标系统是正交的,那么你可以采取墨卡托论坛(在*或任何一半体面的地图异议书看)申请一个简单的线性变换来获得你需要的变换。然后解决四个角落。对于线性变换,你会发现一些变量只是复制墨卡托投影中的参数(即比例因子)
没有他们的运气意味着你尝试了一些东西。告诉我们你做了什么。你需要重新计算你的数学。这种情况肯定会变得更加复杂。 – stillstanding 2010-08-12 08:41:57