适用于GoogleMaps,OpenStreetMap和Leaflet的EPSG 3857或4326


167

在讨论什么是WGS84和EPSG4326之间的区别?显示4326只是WGS84的EPSG标识符。

Google Maps和OpenStreetMap的Wikipedia条目显示它们都使用WGS 84。

http://wiki.openstreetmap.org/wiki/EPSG:3857指出

EPSG:3857是一种球形墨卡托投影坐标系,已被Web服务(例如Google和后来的OpenStreetMap)普及。

传单的帮助说明:

EPSG3857在线地图的最常见CRS,几乎所有免费和商业瓷砖提供商都在使用。使用球形墨卡托投影。默认情况下,在地图的crs选项中设置。

EPSG4326在GIS爱好者中常见的CRS。使用简单的等角投影。

这令人困惑-似乎Google Maps和OpenStreetMap使用EPSG3857,但它们使用的是WGS84,即EPSG4326。这里可能不正确,很可能是我的理解。

有人可以帮我理解吗?

Answers:


190

您正在混淆一些事情。

  • Google地球位于具有wgs84基准的地理坐标系中。(EPSG:4326)

  • Google Maps 位于 基于wgs84基准的投影坐标系中。(EPSG 3857)

  • Open Street Map数据库中的数据存储在gcs中,单位为wgs84,其十进制度和数据为单位。(EPSG:4326)

  • 开放式街道地图图块和WMS Web服务位于基于wgs84基准的投影坐标系中。(EPSG 3857)

因此,如果您要制作使用Google地图中的图块或Open Street Map网络服务中的图块的网络地图,则它们将位于Sperical Mercator中(EPSG 3857或编号:900913),因此您的地图必须具有相同的投影。

编辑:

我想扩大mkennedy提出的观点

所有这些都进一步被这个事实所迷惑,即使地图通常位于Web Mercator(EPSG:3857)中,实际使用的坐标还是经纬度(EPSG:4326)。许多地方都使用此约定,例如:

  • 在“大多数映射API”中,您可以以纬度为单位给出坐标,API会自动将其转换为适当的Web Mercator坐标。
  • 制作KML时,即使坐标可能显示在Web墨卡托地图的顶部,您也总是以经纬度为单位给出坐标。
  • 当地图位于网络Mercator中时,大多数移动制图图书馆都使用lat-long作为位置。

9
只是要补充一点,EPSG:3857称其单位为米,但不是真正的米。您越往北走,他们受到的挤压越多。
AndreJ

4
同样令人困惑的是,您经常使用EPSG:4326与Google Maps或Bing Maps进行交互,例如在KML文件中。在内部,服务器会将数据转换为与之等效的EPSG:3857。如果将数据与它们的一个磁贴进行混搭,则磁贴正在使用EPSG:3857,因此,将数据首先转换为EPSG更快。
mkennedy

这是否意味着在计算投影值时,将OSM用于Google Maps是安全的吗?例如将lat转换为y:wiki.openstreetmap.org/wiki/Mercator#Spherical_Mercator
brendan

2
@brendan:是的。您可以对OSM使用相同的坐标,也可以对Google地图(以及Bing等其他许多坐标)使用相同的坐标
Devdatta Tengshe

1
@EtienneDesgagné:是的
Devdatta Tengshe

53

要点:

EPSG:4326在参考球体或椭球表面上使用坐标系。

EPSG:3857使用从球体或椭球表面投影到平坦表面的坐标系。

可以这样想:

EPSG 4326使用与GLOBE(曲面)相同的坐标系。EPSG 3857使用与MAP(平面)相同的坐标系。


10

向人们展示投影差异在实际中意味着什么的一种方法是在Google Earth中划出一条长线。“长线”是指一条明显的大圆环路线。Google Earth一切正常。但是,如果您在Google Maps,CartoDB或OpenStreetMap中的相同两个点之间绘制一条线,则该线将展平到平面投影上。放大线的中间以查看中点的位移量。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.