腾讯地图与百度地图坐标转换函数实现
需积分: 9 162 浏览量
更新于2024-09-08
收藏 1KB TXT 举报
在PHP开发过程中,尤其是在处理地理位置数据时,经常会遇到跨地图服务提供商的情况,比如前端使用腾讯地图而后台却依赖百度地图。在这种情况下,开发者需要进行坐标转换,以便在不同地图API之间共享位置信息。本文提供了两个PHP函数`coordinate_b2t`和`coordinate_t2b`,用于在腾讯地图坐标(Tencent)和百度地图坐标(Baidu)之间进行转换。
首先,`coordinate_b2t`函数接收百度地图的经纬度参数`$a`和`$b`,并进行如下计算:
1. 对输入的经纬度值进行微调:减去偏移量0.0065和0.006,这是因为百度地图坐标可能与腾讯地图的原始坐标存在细微差异。
2. 将经纬度转换为极坐标系统:计算出半径`z`、θ角(方位角),这里使用了弧度制,并对结果进行了四舍五入。
3. 应用极坐标变换公式,计算转换后的腾讯地图纬度`$ga`和经度`$gb`,并使用`number_format`函数保留精度。
反过来,`coordinate_t2b`函数则是从腾讯地图坐标转换到百度地图坐标。它接受腾讯地图的经纬度作为输入,执行类似的操作:
1. 原始经纬度值不作调整。
2. 计算转换后的极坐标,这里加入了百度地图的特定偏移。
3. 使用相同的极坐标变换公式,但偏移量与`coordinate_b2t`相反,确保正确地将腾讯坐标转换回百度坐标。
这两个函数的目的是解决前后端地图服务不一致时的坐标通信问题,开发者可以调用它们来标准化地理位置数据,以便在腾讯地图和百度地图的API请求中正确显示或传递坐标。例如,在百度地图的marker API(`http://api.map.baidu.com/marker?location={$st.la},{$st.lo}&title={$st.name}&content={$st.addressinfo}&output=html`)和QQ地图的poi marker API(`http://apis.map.qq.com/tools/poimarker?type=1&keyword={$st.name}¢er={$st.la},{$st.lo}&radius=1000&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77&referer=fit`)中,将转换后的坐标插入到相应的位置参数中,确保地图定位准确无误。通过这些函数,开发者能够无缝整合多种地图服务,提高应用的用户体验。
2019-09-09 上传
2019-07-11 上传
2023-03-31 上传
2024-06-27 上传
2024-09-16 上传
2023-10-01 上传
2023-05-25 上传
2023-04-02 上传
hatakei88
- 粉丝: 10
- 资源: 4
最新资源
- StarModAPI: StarMade 模组开发的Java API工具包
- PHP疫情上报管理系统开发与数据库实现详解
- 中秋节特献:明月祝福Flash动画素材
- Java GUI界面RPi-kee_Pilot:RPi-kee专用控制工具
- 电脑端APK信息提取工具APK Messenger功能介绍
- 探索矩阵连乘算法在C++中的应用
- Airflow教程:入门到工作流程创建
- MIP在Matlab中实现黑白图像处理的开源解决方案
- 图像切割感知分组框架:Matlab中的PG-framework实现
- 计算机科学中的经典算法与应用场景解析
- MiniZinc 编译器:高效解决离散优化问题
- MATLAB工具用于测量静态接触角的开源代码解析
- Python网络服务器项目合作指南
- 使用Matlab实现基础水族馆鱼类跟踪的代码解析
- vagga:基于Rust的用户空间容器化开发工具
- PPAP: 多语言支持的PHP邮政地址解析器项目