在WebGIS的開發中常常用到的地圖投影爲Web墨卡託和WGS84,故歌地圖,bingmaps,百度地圖,mapabc,mapbar,以及ArcGIS online上的大部分地圖爲Web墨卡托地圖,ArcGIS online上最開始發佈的地圖投影爲WGS84。
在開發過程當中不少時候會遇到不一樣座標系之間互轉的問題,特別是底圖使用Web墨卡託,定位(GPS,wifi等)信號座標爲WGS84座標的時候,那麼通用解決方案就是寫一個座標參考系的轉換庫,相似於proj4,但通常狀況下不多用到那麼多的參考系之間的互轉,而且在客戶端實現或者調用proj4都是一件很困難或者麻煩的事情,大多數狀況下咱們實現Web墨卡託座標與WGS84座標互轉就能夠了。
下面是使用objective-c實現的Web墨卡託座標與WGS84座標互轉程序,固然也能夠使用其餘語言來實現,使用起來比較簡單和方便。spa
CODE:code
//經緯度轉墨卡託
開發
-(CGPoint )lonLat2Mercator:(CGPoint ) lonLat
{
CGPoint mercator;
double x = lonLat.x *20037508.34/180;
double y = log(tan((90+lonLat.y)*M_PI/360))/(M_PI/180);
y = y *20037508.34/180;
mercator.x = x;
mercator.y = y;
return mercator ;
}
//墨卡託轉經緯度
-(CGPoint )Mercator2lonLat:(CGPoint ) mercator
{
CGPoint lonLat;
double x = mercator.x/20037508.34*180;
double y = mercator.y/20037508.34*180;
y= 180/M_PI*(2*atan(exp(y*M_PI/180))-M_PI/2);
lonLat.x = x;
lonLat.y = y;
return lonLat;
}