Javascript 从LAT、LNG自定义svg映射中获取X、Y

Javascript 从LAT、LNG自定义svg映射中获取X、Y,javascript,svg,raphael,geo,Javascript,Svg,Raphael,Geo,大家好,我正在用raphael.js开发一张地图,就像他们在这里做的那样: 问题是,我使用的是自定义svg世界地图,因此它们的函数getXY()显然不会返回正确的lat,lng的x,y 我如何计算给定lat/lng的x和y,知道地图的宽度/高度以及与点及其坐标的关系(x:1104.73=lng:42.998604)(y:559.25=lat:9.424553) 他们使用以下代码: cx:lon*2.6938+465.4 y:lat*-2.6938+227.066 但是我想不出2.6938和另

大家好,我正在用raphael.js开发一张地图,就像他们在这里做的那样:

问题是,我使用的是自定义svg世界地图,因此它们的函数getXY()显然不会返回正确的lat,lng的x,y

我如何计算给定lat/lng的x和y,知道地图的宽度/高度以及与点及其坐标的关系(x:1104.73=lng:42.998604)(y:559.25=lat:9.424553)

他们使用以下代码:


cx:lon*2.6938+465.4

y:lat*-2.6938+227.066

但是我想不出2.6938和另外两个数字是什么。 我在这里也用到了这个数学:


int x=(int)((地图宽度/360.0)*(180+lon))

int y=(int)((地图高度/180.0)*(90-lat));


但是我不能让它工作,anibody可以帮我吗?

使用的公式取决于地图使用的投影(等矩形、Robinson、Miller、Lambert、Mercator或其他投影)。这里有更多关于投影的信息

如果您不知道“自定义svg世界地图”的投影是什么,您将找不到任何帮助


干杯

投影是墨卡托投影,但不管怎样,我发现你不可能做到这一点。因此,我开始使用D3和topojson,并为您提供正确的地图大小等answer@Dtnand你能告诉我你是怎么做的吗??