EPSG 3857 or 4326 for GoogleMaps, OpenStreetMap and Leaflet

There are a few things that you are mixing up.

  • Google Earth is in a Geographic coordinate system with the wgs84 datum. (EPSG: 4326)

  • Google Maps is in a projected coordinate system that is based on the wgs84 datum. (EPSG 3857)

  • The data in Open Street Map database is stored in a gcs with units decimal degrees & datum of wgs84. (EPSG: 4326)

  • The Open Street Map tiles and the WMS webservice, are in the projected coordinate system that is based on the wgs84 datum. (EPSG 3857)

So if you are making a web map, which uses the tiles from Google Maps or tiles from the Open Street Map webservice, they will be in Sperical Mercator (EPSG 3857 or srid: 900913) and hence your map has to have the same projection.

Edit:

I'll like to expand the point raised by mkennedy

All of this further confused by that fact that often even though the map is in Web Mercator(EPSG: 3857), the actual coordinates used are in lat-long (EPSG: 4326). This convention is used in many places, such as:

  • In Most Mapping API,s You can give the coordinates in Lat-long, and the API automatically transforms it to the appropriate Web Mercator coordinates.
  • While Making a KML, you will always give the coordinates in geographic Lat-long, even though it might be showed on top of a web Mercator map.
  • Most mobile mapping Libraries use lat-long for position, while the map is in web Mercator.

In gist:

EPSG: 4326 uses a coordinate system on the surface of a sphere or ellipsoid of reference.

EPSG: 3857 uses a coordinate system PROJECTED from the surface of the sphere or ellipsoid to a flat surface.

Think of it as this way:

EPSG 4326 uses a coordinate system the same as a GLOBE (curved surface). EPSG 3857 uses a coordinate system the same as a MAP (flat surface).


One way to show people what the differences in projection mean in practice is to draw a long line in Google Earth. By "long line" I mean one that is visibly a Great Circle route. Everything's fine in Google Earth. But if you draw a line between the same two points in Google Maps, CartoDB or OpenStreetMap, the line is flattened onto the flat projection. Zoom in on the middle of the line to see how far the midpoint is displaced.