• WGS84经纬度坐标与web墨卡托之间的转换【转】


    第一种方法:

    //经纬度转Web墨卡托
    dvec3 CMathEngine::lonLat2WebMercator(dvec3  lonLat)
    {
        dvec3  mercator;
        double x = lonLat.x *20037508.34/180;
        double y = log(tan((90+lonLat.y)*PI/360))/(PI/180);
        y = y *20037508.34/180;
        mercator.x = x;
        mercator.y = y;
        return mercator;
    }
    //Web墨卡托转经纬度
    dvec3 CMathEngine::WebMercator2lonLat( dvec3   mercator )
    {
        dvec3 lonLat;
        double x = mercator.x/20037508.34*180;
        double y = mercator.y/20037508.34*180;
        y= 180/PI*(2*atan(exp(y*PI/180))-PI/2);
        lonLat.x = x;
        lonLat.y = y;
        return lonLat;
    }
    

     第二种方法:

    //经度转墨卡托
    function handle_x(x) {
     return (x / 180.0) * 20037508.34;
    }
    
    //纬度度转墨卡托
    function handle_y(y) {
     if (y > 85.05112) {
      y = 85.05112;
     }
    
     if (y < -85.05112) {
      y = -85.05112;
     }
    
     y = (Math.PI / 180.0) * y;
     var tmp = Math.PI / 4.0 + y / 2.0;
     return 20037508.34 * Math.log(Math.tan(tmp)) / Math.PI;
    
    }
    
    //墨卡托转经度
    function handle_me_x(x)
    {
     return x/20037508.34*180;
    }
    
    //墨卡托转纬度
    function handle_me_y(my)
    {
      var mmy = my/20037508.34*180;
      y= 180/Math.PI*(2*Math.atan(Math.exp(mmy*Math.PI/180))-Math.PI/2);
      return y;
    }
    
  • 相关阅读:
    几种排序方法详解(选择排序、冒泡排序、插入排序、快速排序)
    几种排序方法详解(选择排序、冒泡排序、插入排序、快速排序)
    Cookie
    ajax
    layer弹出框
    Session
    Cookie
    顺时针打印矩阵
    常用判断
    基础学习
  • 原文地址:https://www.cnblogs.com/liuswi/p/3998073.html
Copyright © 2020-2023  润新知