Projections in GIS are commonly referred to by their “EPSG” codes, these are identifiers managed by the European Petroleum Survey Group.
One common identifier is “EPSG:4326”, which describes maps where latitude and longitude are treated as X/Y values.
Spherical Mercator has an official designation of EPSG:3857. However, before this was established, a large amount of software used the identifier EPSG:900913. This is an unofficial code, but is still the commonly usedin many GIS systems.
Any time you see the string “EPSG:4326”, you can assume it describes latitude/longitude coordinates.
Any time you see the string “EPSG:900913”, it will be describing coordinates in meters in x/y.
In python its quite easy to transform coordinates using OGR and OSR tools with their python wrapper.
def transform(pointX, pointY):
# Spatial Reference System
inputEPSG = 4326
outputEPSG = 3857
# create a geometry from coordinates
point = ogr.Geometry(ogr.wkbPoint)
# create coordinate transformation
inSpatialRef = osr.SpatialReference()
outSpatialRef = osr.SpatialReference()
coordTransform = osr.CoordinateTransformation(inSpatialRef, outSpatialRef)
# transform point
# return point in EPSG 3857
return point.GetX(), point.GetY()
Basically you can use coordTransform to transform any geometry (point,polygon,line e.t.c) between any osr supported projections.
Hope this helps