經(jīng)緯度與網(wǎng)絡(luò)墨卡托(Web Mercator)投影坐標(biāo)的轉(zhuǎn)換

在GIS中,常會(huì)遇到不同投影坐標(biāo)系之間的轉(zhuǎn)換,下面以JavaScript對(duì)轉(zhuǎn)換的方法進(jìn)行實(shí)現(xiàn):

一、 經(jīng)緯度轉(zhuǎn)網(wǎng)絡(luò)墨卡托
方法一和方法二轉(zhuǎn)換的結(jié)果有極小的差別,但都是正確的。

 //方法一  
latLng2WebMercator: function(lng, lat){
  //[114.32894, 30.585748]  
  var earthRad = 6378137.0;  
  var x = lng * Math.PI / 180 * earthRad;  
  var a = lat * Math.PI / 180;  
  var y = earthRad / 2 * Math.log((1.0 + Math.sin(a)) / (1.0 - Math.sin(a)));  
  return [x, y]; //[12727039.383734727, 3579066.6894065146]  
}  
    //方法二  
latLng2WebMercator2 : function(lng, lat){  
    var x = lng *20037508.34/180;  
    var y = Math.log(Math.tan((90+lat)*Math.PI/360))/(Math.PI/180);  
    y = y *20037508.34/180;  
    return [x, y];  
}  

二、網(wǎng)絡(luò)墨卡托轉(zhuǎn)經(jīng)緯度

webMercator2LngLat: function(x, y) {//[12727039.383734727, 3579066.6894065146]  
    var lng = x / 20037508.34 * 180;  
    var lat = y / 20037508.34 * 180;      
    lat = 180 / Math.PI * (2 * Math.atan(Math.exp(lat * Math.PI / 180)) - Math.PI / 2);  
    return [lng, lat]; //[114.32894001591471, 30.58574800385281]  
}  

以上轉(zhuǎn)換方法的結(jié)果經(jīng)實(shí)測(cè)都是正確的,只需根據(jù)需要用其他語言實(shí)現(xiàn)即可。

參考文檔:

http://blog.csdn.net/shaxiaozilove/article/details/54908569

http://malagis.com/mercator-longitude-latitude.html

https://www.cnblogs.com/yhlx125/p/3863748.html

https://www.cnblogs.com/DHUtoBUAA/p/6706642.html

http://blog.csdn.net/ryfdizuo/article/details/20793669(重要)

https://en.wikipedia.org/wiki/Scale_(map)

http://blog.csdn.net/williham/article/details/8496153

http://blog.csdn.net/witch_soya/article/details/7597598

http://blog.csdn.net/cleverysm/article/details/2121633(墨卡托投影實(shí)現(xiàn))

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容