web墨卡托坐标是google投影坐标系,而google投影坐标系是建立在一个长半轴等于短半轴的椭球上面,也就是所google投影是建立在一个正圆球上面,是平面坐标系,而WGS84经纬度坐标是GPS定位是的坐标系。他们之间的坐标之间的关系如下:
C++代码:
typedef struct
{
double x;
double y;
}coordPairs;
#define PI 3.14159265358979323846
//web墨卡托转成WGS经纬度坐标
void web_mercator_2_lonlat( coordPairs&ml )
{
ml.x = ml.x / 20037508.3427892 * 180;
double y = ml.y / 20037508.3427892 * 180;
ml.y = 180 / PI * ( 2 * atan ( exp ( y * PI / 180 ) ) - PI / 2 );
}
//经纬度坐标装换成Web墨卡托坐标
void lonlat_2_web_mercator( coordPairs&ml )
{
ml.x = ml.x * 20037508.3427892 / 180;
double y = log ( tan ( ( 90 + ml.y ) * PI / 360 ) ) / ( PI / 180 );
ml.y = y * 20037508.3427892 / 180;
}