谷歌墨卡托投影不是真正的墨卡托,如何在 SVG 上更正将 lat long 转换为 x,y

Posted

技术标签:

【中文标题】谷歌墨卡托投影不是真正的墨卡托,如何在 SVG 上更正将 lat long 转换为 x,y【英文标题】:Google Mercator projection is not a real Mercator, how to correct to convert lat long to x,y on SVG 【发布时间】:2013-11-30 16:05:36 【问题描述】:

根据这篇帖子Convert lat/lon to pixel coordinate?,它适用于真正的墨卡托投影。

我在使用 openstreet 地图 的 svg 地图时遇到问题,它使用“Google Mercator projection with simplification on grid(1000)”。

我尝试在我的法国地图上绘制一些城市,所有点都在这里,但不完全是它们应该在哪里看到图片

如您所见,这些城市的位置并不好(如有必要,您可以在谷歌地图上进行比较)

关于如何调整 ref 中对帖子的响应中提供的代码,以考虑这 2 个不同的墨卡托投影之间的差异有什么想法吗?

提前致谢

编辑:

城市坐标:

var cities = 
    0:
        cname: 'Paris',
        lat: 48.856614,
        lng: 2.3522219000000177
    ,
    1:
        cname: 'Lyon',
        lat: 45.764043,
        lng: 4.835658999999964
    ,
    2:
        cname: 'Bordeaux',
        lat: 44.837789,
        lng: -0.5791799999999512
    ,
    3:
        cname: 'Bastia',
        lat: 42.697283,
        lng: 9.450880999999981
    ,
    4:
        cname: 'Calais',
        lat: 50.95129000000001,
        lng: 1.8586860000000343
    ,
    5:
        cname: 'Menton',
        lat: 43.774481,
        lng: 7.497540000000072
    ,
    6:
        cname: 'Brest',
        lat: 48.390394,
        lng: -4.4860760000000255
    
; //EO cities

该 svg 是基于 openmapstreet 的 pdf 在 Inkscape 中创建的,代码有点长,我将它复制粘贴到这个小提琴中(因为我没有附加 Raphel,所以这不起作用)http://jsfiddle.net/dqsH3/4/。

您可以在此处查看原始 pdf openstreetmap.fr/f/France-regions-01-01-2013-1000.pdf‎

【问题讨论】:

您能否提供指向该 SVG 文件的链接,或有关如何重新创建它的说明?还包括你用来解冻城市的实际坐标。否则,我们将没有任何工作可做。 在帖子末尾查看我的编辑 小提琴不起作用。当我单击运行时,没有任何反应。这正常吗? 是的,RapahelJS 没有附加 为什么没有附加RaphaelJS?我们如何查看错误? 【参考方案1】:

简化之处在于它使用 wgs 84 基准面,地图无法显示两极。您可以尝试来自法国的免费 shapefile。来源:http://en.wikipedia.org/wiki/Google_Maps。我得到了这张带有 Maxmind 数据库和您的积分的地图。

【讨论】:

在这种特殊情况下,我有一些限制:我不能像 GoogleMaps 那样使用形状文件和 Tiles 系统,并且必须同时使用 RaphaelJS 和 SVG,GoogleMaps API 或 3Djs 之类的替代方案是不可能的。 Vincently 公式计算 2 点之间的距离,这不是我所需要的。 谢谢,但正如我在之前的评论中所说,我不能使用多边形(像你一样)但是路径,我必须只使用带有 SVG 路径和 jQuery 1.8.3 的 RaphaelJS,其他使用其他工具的替代品在这种特定情况下是不可接受的(没有形状,没有多边形,所以没有形状文件)。

以上是关于谷歌墨卡托投影不是真正的墨卡托,如何在 SVG 上更正将 lat long 转换为 x,y的主要内容,如果未能解决你的问题,请参考以下文章

LOD原理

google map中影像地图是墨卡托投影,矢量地图是高斯投影,请问这两种地图是如何匹配的?

墨卡托投影坐标系(Mercator Projection)原理及实现C代码

墨卡托投影地理坐标系地面分辨率地图比例尺

墨卡托投影地理坐标系地面分辨率地图比例尺

墨卡托投影地理坐标系地面分辨率地图比例尺Bing Maps Tile System