将经纬度转换为像素位置

3
我有一张Mercator地图和地图四个角的坐标。我需要找到一种方法将给定的坐标转换为对应地图上的点。由于无法使用google或任何类似的东西,这也是我需要做这件事的原因。
我可以使用的编程语言是PHP或Javascript。我尝试了一些在其他帖子中发现的方法,比如 Mercator longitude and latitude calculations to x and y on a cropped map (of the UK),但是没有成功。
如果有人能提供一些帮助,我会非常感激。我很差在数学方面,看着一些方程式,这开始感觉超出了我的能力范围,但我必须完成它。
再次感谢。

没有运气意味着你尝试了一些事情。向我们展示你做了什么。并且你需要重新温习数学知识,这种情况肯定会变得更加复杂。 - bcosca
2个回答

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;

}

这就是我一直在努力让它工作的东西。它是我从这里拿来的某个东西的变体,但它并没有给我我所需要的结果。我真的在这个问题上遇到了很大的困难。而且我绝对不可能自己算出这里的数学问题,我一直在尝试,但它远远超出了我的能力范围。


0

听起来你正在使用JavaScript,如果是这样的话,那么值得一看的是开源库proj4js。

此外,假设您的位图与坐标系正交,则可以采用墨卡托公式(在维基百科或任何半好的地图目录书中查找)应用简单的线性变换以获得所需的变换。然后解决四个角落的问题。对于线性变换,您会发现一些变量只是Mercator投影中的重复参数(即缩放因子)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接