将lat / lon转换为像素位置

时间:2010-08-12 03:39:51

标签: php javascript map mapping proj4js

我有一张地图(墨卡托),以及地图四个角的坐标。我需要提出一些建议,以便将给定的坐标转换为地图上的相应点。我不能使用谷歌或任何类型的东西,这就是为什么我首先需要这样做。

我可以使用的语言要么是PHP,要么是Javascript。我已经尝试了一些我在其他帖子中找到的东西,比如这个: Mercator longitude and latitude calculations to x and y on a cropped map (of the UK),但我没有运气。

如果有人能提供一些帮助,我将非常感激。我对数学很糟糕,并且看到这些方程中的一些已经开始感觉不到我的联盟,但我必须完成它。

再次,先谢谢。

2 个答案:

答案 0 :(得分:1)

   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;

}

这就是我一直想要的工作。我想,这是我在这里推出的一些变化,但它并没有让我得到我需要的结果。我真的遇到了这个严重的砖墙。而且我无法在这里找到自己的数学,我一直在努力,这已经超出了我的联盟。

答案 1 :(得分:0)

听起来你在使用JavaScript,在这种情况下,proj4js开源库值得一看。

另外,假设您的位图与坐标系正交,那么您可以使用Mercator forumla(在维基百科或任何一半体面的地图异议书中查看)应用简单的线性变换来获得所需的变换。然后解决四个角落。对于线性变换,您会发现一些变量只是在墨卡托投影中重复参数(即缩放因子)