墨卡託投影與經緯度轉換

Vector2D:需要引入 implementation 'com.vividsolutions:jts-core:1.14.0'

 

/**經緯度轉墨卡託投影*/
      public Vector2D lonLatToMercator(Vector2D lonLat){
             double x = lonLat.getX() * 20037508.34 / 180;
             double y = Math.log(Math.tan((90 + lonLat.getY()) * Math.PI / 360)) / (Math.PI / 180);
             y = y * 20037508.34 / 180;

             Vector2D mercator = new Vector2D(x,y);

             return mercator;
     }

     /**墨卡託投影轉經緯度*/
     public Vector2D MercatorTolonLat(Vector2D mercator){
         double x = mercator.getX() / 20037508.34 * 180;
         double y = mercator.getY() / 20037508.34 * 180;
         y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2);

         Vector2D lonLat =  new Vector2D(x,y);

        return lonLat;
     }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章