如何将精确的纬度和经度坐标转换为X,Y坐标

时间:2015-09-14 12:51:14

标签: javascript canvas

我使用Java脚本在画布中绘制世界地图。如何将任何位置的精确纬度,经度坐标转换为 X,Y 坐标,以便我可以在Canvas Map上投影转换后的X,Y坐标?

我之前尝试过不同的解决方案,但它们并没有指向我的Canvas Map上的精确 X,Y坐标。我也试过使用基本的转换公式,但它们也没用。 例如,

var y = ((-1 * lat) + 90) * (MAP_HEIGHT / 180);
var x = (lon + 180) * (MAP_WIDTH / 360); 

OR

function plot_point(lat, lng) {
// longitude_shift = number of pixels your map's prime meridian is off-center.
// Mercator projection

// longitude: just scale and shift
x = (map_width * (180 + lng) / 360) % map_width + longitude_shift;

// latitude: using the Mercator projection
lat = lat * Math.PI / 180;  // convert from degrees to radians
y = Math.log(Math.tan((lat/2) + (Math.PI/4))); 
y = (map_height / 2) - (map_width * y / (2 * Math.PI)) + y_pos;  

我使用的是以下地图:Map

P.S。如果有人可以提供 Java脚本代码,那将非常有用。

编辑由于我无法获得准确的坐标,感谢解释 @Aki Suihkonen,请建议一种方法,这样我就可以得到最接近地图中真实位置的X,Y坐标。提前致谢。

0 个答案:

没有答案
相关问题