将纬度/经度转换为像素位置

问题描述:

我有一张地图(墨卡托),以及地图四角的坐标。我需要想出一些东西,以便将给定的坐标转换为地图上的相应点。我不能使用谷歌或类似的东西,这就是为什么我首先需要做到这一点。将纬度/经度转换为像素位置

我可以使用的语言要么是PHP或Javascript。我尝试了一些我在其他帖子中发现的东西,例如: Mercator longitude and latitude calculations to x and y on a cropped map (of the UK),但我没有与他们交往过。

如果有人可以提供一些帮助,我会很感激。我对数学非常害怕,看着这些开始感觉不到我的联盟的方程式,但我必须完成它。

再次,在此先感谢。

+0

没有他们的运气意味着你尝试了一些东西。告诉我们你做了什么。你需要重新计算你的数学。这种情况肯定会变得更加复杂。 – stillstanding 2010-08-12 08:41:57

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开源库值得一看。另外,假设你的位图与坐标系统是正交的,那么你可以采取墨卡托论坛(在*或任何一半体面的地图异议书看)申请一个简单的线性变换来获得你需要的变换。然后解决四个角落。对于线性变换,你会发现一些变量只是复制墨卡托投影中的参数(即比例因子)