JavaScript和Java两种方法实现百度地图和高德、腾讯地图的相互转换
目录
- 一、常见的经纬度标准
- 二、百度地图和高德、腾讯地图经纬度的转换
- 1、前端JavaScript转换
- 2、后端Java实现转换
一、常见的经纬度标准
高德、腾讯(使用GCJ02)
GCJ-02坐标系,也称火星坐标系,由中国国家测绘局在02年发布,是在GPS坐标(WGS-84坐标系)基础上经加密后而来。
谷歌(使用GCJ02和WGS84)
谷歌国内版经纬度用的 GCJ02(又名 国测局 或 火星坐标 )。
百度(使用BD09)
BD09坐标,是在的GCJ02基础上再加密得到
二、百度地图和高德、腾讯地图经纬度的转换
1、前端JavaScript转换
//将腾讯、高德地图经纬度转换为百度地图经纬度
function qqMapTransBMap(lng, lat) {let x_pi = 3.14159265358979324 * 3000.0 / 180.0;let x = lng;let y = lat;let z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);let theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);let lngs = z * Math.cos(theta) + 0.0065;let lats = z * Math.sin(theta) + 0.006;return {lng: lngs,lat: lats }
}// 将百度地图经纬度转换为腾讯、高德地图经纬度
function bMapTransQQMap(lng, lat) {let x_pi = 3.14159265358979324 * 3000.0 / 180.0;let x = lng - 0.0065;let y = lat - 0.006;let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);let lngs = z * Math.cos(theta);let lats = z * Math.sin(theta);return {lng: lngs,lat: lats }
}
2、后端Java实现转换
public class CoordinateTransformationUtils {public final static double x_pi = 3.14159265358979324 * 3000.0 / 180.0;/*** 高德坐标转百度坐标** @param gd_lon 经度* @param gd_lat 纬度* @return*/public static Map<String, Double> gd2bd(double gd_lon, double gd_lat) {Map<String, Double> data = new HashMap<>();double x = gd_lon, y = gd_lat;double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);double bd_lon = z * Math.cos(theta) + 0.0065;double bd_lat = z * Math.sin(theta) + 0.006;data.put("lon", bd_lon);data.put("lat", bd_lat);return data;}/*** 百度坐标转换高德坐标** @param bd_lon 经度* @param bd_lat 纬度* @return*/public static Map<String, Double> bd2gd(double bd_lon, double bd_lat) {double x = bd_lon - 0.0065, y = bd_lat - 0.006;double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);double gd_lon = z * Math.cos(theta);double gd_lat = z * Math.sin(theta);Map<String, Double> data = new HashMap<>();data.put("lon", gd_lon);data.put("lat", gd_lat);return data;}}
相关文章:
JavaScript和Java两种方法实现百度地图和高德、腾讯地图的相互转换
目录一、常见的经纬度标准二、百度地图和高德、腾讯地图经纬度的转换1、前端JavaScript转换2、后端Java实现转换一、常见的经纬度标准 高德、腾讯(使用GCJ02) GCJ-02坐标系,也称火星坐标系,由中国国家测绘局在02年发布࿰…...
Vue中常见的几种组件间通信方法
1.props(父传子) 父组件Parent.vue <template><child :msg"message"></child> </template>父组件通过:val"value"的形式定义要传给子组件的值value绑定到val上 子组件Child.vue export default {//写法一…...
Outcome VS. Output:研发效能提升中,谁会更胜一筹?
2007 年,网景通信公司(Netscape)的联合创始人 Marc Andreessen 在博客 The Pmarca Guide to Startups 中提出 「Product/Market Fit」 ,他写道, 「这意味着在一个良好的市场中,拥有能够满足该市场的产品。」…...
ptp4l与phc2sys进行系统时钟同步
linuxptp用于时钟同步。安装采用apt install linuxptp主要包含2个程序,ptp4l 进行时钟同步,实时网卡时钟与远端的时钟同步,支持1588 和 802.1AS 两种协议phc2sys 将网卡上的时钟同步到操作系统,或者反之命令demo:某主机P通过eth2连…...
使用注解JSON序列化
JsonSerialize(using ToStringSerializer.class) 将返回数据转成String序列化 JsonFormat(pattern "yyyy-MM-dd hh:mm",timezone"GMT8") 将日期数据转换成特定格式 使用JsonSerialize自定义注解接口 定义接口 import java.lang.annotation.ElementTyp…...
kubernetes教程 --Pod生命周期
Pod生命周期 pod创建过程运行初始化容器(init container)过程运行主容器(main container)过程 容器启动后钩子(post start)、容器终止前钩子(pre stop)容器的存活性探测(…...
高校房产管理系统用到了哪些技术?
数图互通高校房产管理系统是基于公司自主研发的FMCenterV5.0平通过在中国100多所高校的成功实施和迭代,形成了一套成熟、完善、全生命周期的房屋资源管理解决方案。台,是针对中国高校房产的管理特点和管理要求,研发的一套标准产品;…...
【Python学习笔记】37.Python3 MySQL - mysql-connector 驱动(2)
前言 本章继续介绍MySQL - mysql-connector 驱动。 where 条件语句 如果我们要读取指定条件的数据,可以使用 where 语句: demo_mysql_test.py 读取 name 字段为 CSDN 的记录: import mysql.connectormydb mysql.connector.connect(host…...
【高级Java】高级Java实验
一、反射与动态代理1、(4分)请通过反射技术,为附件中的Person.class生成相应的.java代码,java代码中的方法的方法体为空,即方法内部代码不用生成。请注意生成的java代码的格式。2、(3分)请为第1…...
SYN480R 解码
目录1.空载情况下2.当有按键被按下3.数据帧分析4.同步码5.数据码6.对24位数据帧分析1.空载情况下 在空载情况下,syn480r 输出引脚,输出的是杂乱无序的波形 2.当有按键被按下 按下按键,会连续输出相同的脉冲波形,放大分析 3.数据…...
ASP .NET(基于.NET 6.0)源码解读
这几天一直在琢磨在我现有技术认知基础上,未来如何做技术提升。 日思夜想,我整理出了我自己的一套学习规划方案,并希望在实施过程中能够不断调整学习方案与方式,以接近自我提升的效率最大化。 从以下几个大的方面来得到提升&…...
阿里工作7年,一个30岁女软件测试工程师的心路历程
简单的先说一下,坐标杭州,14届本科毕业,算上年前在阿里巴巴的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少) 其中成功的有4家&am…...
学生党必备的 Keychron 无线机械键盘
学生党必备的 Keychron 无线机械键盘 由于专业需要,之间的键盘使用起来不太舒服,于是准备重新买一个适合工作学习的键盘,于是通过朋友介绍了解到了keychron k3pro,当时也看到网上一些资料说道这款键盘比较到位,今天就来带大家了解…...
FPGA MAX 10 10M50系列10M50DAF484C8G/10M50DAF484C7G/10M50DCF484C7G规格
介绍MAX 10器件是单芯片、非易失性低成本可编程逻辑器件(pld),用于集成最优的系统组件集。MAX 10设备的亮点包括:内部存储双配置闪存用户闪存即时支持集成模数转换器(adc)支持Nios II单芯片软核处理器MAX 10设备是系统管理、I/O扩展、通信控制平面、工业、汽车和消费…...
【codequ】Java学习路线整理(韩顺平)
文章目录Java学习路线一、Java基础1.建立编程思想Java概述变量运算符控制结构数据、排序和查找面向对象编程(基础)面向对象编程(中级)项目&学以致用2.提升编程能力3.分析需求,代码实现能力Java8新特性二、Java高级…...
服务器容器配置日志(Linux+x86_64+Ubuntu18.04+CUDA11.0+python3.7)
一、创建并进入容器 (平台使用教学详细,这部分略写) 登上服务器后,打开终端输入如下进入自己建的容器 ssh -p XXXXX root10.XXX.XXX.XXX //按自己的宿主机端口写二、安装Conda(miniconda3) (…...
2023年美赛赛题思路分析
2023年的赛题A-F题的整体难度不算太难,难度在于数据的收集上。整体难度上来看,难度上F题难度最小,建议直接上手。本次先给大家分享一些数据网站,在对各题做简单的思路分析。1、美国国家海洋和大气管理局Homepage | National Ocean…...
[C++]服务器与客户端建立连接与检测断开的demo
该程序在IP127.0.0.1以及端口5000环境下测试 有一段时间没有在Windows下用C进行网络编程了,这段日子都在做QT的网络编程和OpenCV的图像识别。 今天重新写个Windows下C的,基于TCP的双端连接建立与断开检测的demo,巩固下自己Windows下的网络编程…...
包教包会vue3+ts状态管理工具pinia
一、Pinia介绍 定义:pinia是和vuex一样的状态管理工具 语法:和 Vue3 一样,它实现状态管理有两种语法:选项式API 和 组合式API 支持:vue2、typeScript、devtools 二、使用步骤 1.安装 pnpm add pinia yarn add pin…...
Generated columns cannot be used in COPY
错误如下DBD::Pg::db do failed: ERROR: column "transtype" is a generated columnsec., avg: 2520 recs/sec), REPORTSINTERMEDIATETABLE in progress.DETAIL: Generated columns cannot be used in COPY. at /usr/local/share/perl5/Ora2Pg.pm line 15125.FATAL: …...
2024版idea引入lombok总是报错解决方法
在创建SpringBoot文件时不勾选lombok,然后自己手动导入lombok并指定版本玛德这idea的SpringBoot中导入lombok后我使用Data总是说我的get和set方法有毛病,一怒之下我直接就是疯狂搜如何解决lombok引用问题,结果不是让我去勾选一个东西就是让我…...
基于LangChain的RAG与Agent智能体开发 - 持久化会话记忆功能实现(RunnableWithMessageHistory+RedisChatMessageHistory)
大家好,我是小锋老师,最近更新《2027版 基于LangChain的RAG与Agent智能体 开发视频教程》专辑,感谢大家支持。本课程主要介绍和讲解RAG,LangChain简介,接入通义千万大模型 ,Ollama简介以及安装和使…...
如何使用Compiler Explorer实时编译原理:揭秘代码到汇编的转换过程
如何使用Compiler Explorer实时编译原理:揭秘代码到汇编的转换过程 【免费下载链接】compiler-explorer Run compilers interactively from your web browser and interact with the assembly 项目地址: https://gitcode.com/gh_mirrors/co/compiler-explorer …...
RWKV7-1.5B-g1a多场景落地:HR部门用它自动生成岗位JD要点与面试问题清单
RWKV7-1.5B-g1a多场景落地:HR部门用它自动生成岗位JD要点与面试问题清单 1. 为什么HR部门需要AI助手 招聘工作中有大量重复性文案工作,比如: 为不同岗位编写职位描述(JD)设计结构化面试问题整理岗位核心能力要求制作候选人评估标准 传统方…...
STC15W4K32S4寄存器操作避坑指南:为什么你的PWM输出异常?(附完整初始化流程图)
STC15W4K32S4寄存器操作避坑指南:为什么你的PWM输出异常? 最近在调试STC15W4K32S4的PWM功能时,发现不少开发者都会遇到一些共性问题:明明按照手册配置了寄存器,PWM输出就是不稳定或者干脆没有波形。这些问题往往源于几…...
项目介绍 MATLAB实现基于灰狼优化算法(GWO)进行无人机三维路径规划的详细项目实例(含模型描述及部分示例代码)
MATLAB实现基于灰狼优化算法(GWO)进行无人机三维路径规划的详细项目实例 更多详细内容可直接联系博主本人 或者访问以下链接地址 MATLAB实现基于灰狼优化算法(GWO)进行无人机三维路径规划的详细项目实例-CSDN博客 https://blo…...
告别Makefile!用Zig 0.10.0自带的构建系统搞定ARM裸机开发(附完整项目配置)
用Zig构建系统重塑ARM裸机开发:告别Makefile的终极指南 当你在凌晨三点盯着第47个Makefile规则调试链接器错误时,是否想过——嵌入式开发必须这么痛苦吗?Zig 0.10.0带来的不仅是一门新语言,更是一套彻底革新裸机开发工作流的构建系…...
【STM32-HAL库】火焰传感器实战:从原理到智能火灾预警系统搭建(基于STM32F407ZGT6)
1. 火焰传感器原理与选型指南 火焰传感器作为火灾预警系统的"眼睛",其核心原理是利用光电效应检测火焰特有的光谱特征。我经手过的工业项目中,90%的火灾误报都源于传感器选型不当。市面上常见的火焰传感器主要分为三类: 红外型&…...
零成本实现3D模型跨平台迁移:Blender到Unreal Engine的无缝解决方案
零成本实现3D模型跨平台迁移:Blender到Unreal Engine的无缝解决方案 【免费下载链接】bl_datasmith Blender addon to export UE4 Datasmith format 项目地址: https://gitcode.com/gh_mirrors/bl/bl_datasmith 你是否曾遇到这样的困境:在Blender…...
3步彻底解决Umi-OCR Rapid版本HTTP服务无响应问题:参数配置完全指南
3步彻底解决Umi-OCR Rapid版本HTTP服务无响应问题:参数配置完全指南 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件,适用于Windows系统,支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://git…...
