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 ); } } |
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次 .NET 某发证机系统 崩溃分析
· 微服务架构学习与思考:SOA架构与微服务架构对比分析
· tomcat为什么假死了
· 聊一聊 Linux 上对函数进行 hook 的两种方式
· C# 锁机制全景与高效实践:从 Monitor 到 .NET 9 全新 Lock
· 一周 Star 破万的开源项目「GitHub 热点速览」
· 千万级大表,如何做性能调优?
· 编码之道,道心破碎。
· 不写代码,让 AI 生成手机 APP!保姆级教程
· 记一次 .NET 某发证机系统 崩溃分析