随笔 - 4  文章 - 0  评论 - 0  阅读 - 2334

openlayer 4326与3857坐标互转之Java版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class Transform {
 
    private static final double PI = Math.PI;
    private static final double mercatorMax = 20037508.34;
 
    /**
     * 4326坐标转3857即经纬度转墨卡托
     * @param lon
     * @param lat
     */
    public static void transformTo3857(double lon,double lat){
        double mercatorx = lon * mercatorMax / 180;
        double mercatory = Math.log(Math.tan(((90+lat) * PI) / 360)) / (PI / 180);
        mercatory = mercatory * mercatory / 180;
        System.out.printf("经纬度坐标转墨卡托后的坐标:%f,%f",mercatorx,mercatory);
    }
 
    /**
     * 墨卡托坐标转3857即墨卡托转经纬度
     * @param mercatorx
     * @param mercatory
     */
    public static void tarnsformTo4326(double mercatorx,double mercatory){
        double lon = mercatorx/mercatorMax * 180;
        double lat = mercatory/mercatorMax * 180;
        lat = (180 / PI) * (2 *Math.atan(Math.exp((lat * PI) / 180)) - PI / 2);
        System.out.printf("墨卡托坐标转经纬度后的坐标:%f,%f \n",lon,lat);
    }
 
    public static void main(String[] args) {
        tarnsformTo4326(13135699.913606284,3763310.6271446524);
        transformTo3857(118.000000,32.000000);
    }
 
}

  

 

posted on 2020-09-06 09:52  英哥boss  阅读(2052)  评论(0)    收藏  举报
编辑推荐:
· 记一次 .NET 某发证机系统 崩溃分析
· 微服务架构学习与思考:SOA架构与微服务架构对比分析
· tomcat为什么假死了
· 聊一聊 Linux 上对函数进行 hook 的两种方式
· C# 锁机制全景与高效实践:从 Monitor 到 .NET 9 全新 Lock
阅读排行:
· 一周 Star 破万的开源项目「GitHub 热点速览」
· 千万级大表,如何做性能调优?
· 编码之道,道心破碎。
· 不写代码,让 AI 生成手机 APP!保姆级教程
· 记一次 .NET 某发证机系统 崩溃分析
< 2025年6月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
6 7 8 9 10 11 12

点击右上角即可分享
微信分享提示