由于百度地图在GCJ02协议的基础上又做了一次处理,变为 BD09协议的坐标,以下是坐标的转化方式,可以方便和其他平台转化。
C#版本:
private const double x_pi = 3.14159265358979324 * 3000.0 / 180.0; /// <summary> /// 中国正常坐标系GCJ02协议的坐标,转到 百度地图对应的 BD09 协议坐标 /// </summary> /// <param name="lat">维度</param> /// <param name="lng">经度</param> public static void Convert_GCJ02_To_BD09(ref double lat,ref double lng) { double x = lng, y = 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); lng = z * Math.Cos(theta) + 0.0065; lat = z * Math.Sin(theta) + 0.006; } /// <summary> /// 百度地图对应的 BD09 协议坐标,转到 中国正常坐标系GCJ02协议的坐标 /// </summary> /// <param name="lat">维度</param> /// <param name="lng">经度</param> public static void Convert_BD09_To_GCJ02(ref double lat, ref double lng) { double x = lng - 0.0065, y = 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); lng = z * Math.Cos(theta); lat = z * Math.Sin(theta); }
PHP版本:
/** * 中国正常GCJ02坐标---->百度地图BD09坐标 * 腾讯地图用的也是GCJ02坐标 * @param double $lat 纬度 * @param double $lng 经度 */ function Convert_GCJ02_To_BD09($lat,$lng){ $x_pi = 3.14159265358979324 * 3000.0 / 180.0; $x = $lng; $y = $lat; $z =sqrt($x * $x + $y * $y) + 0.00002 * sin($y * $x_pi); $theta = atan2($y, $x) + 0.000003 * cos($x * $x_pi); $lng = $z * cos($theta) + 0.0065; $lat = $z * sin($theta) + 0.006; return array('lng'=>$lng,'lat'=>$lat); } /** * 百度地图BD09坐标---->中国正常GCJ02坐标 * 腾讯地图用的也是GCJ02坐标 * @param double $lat 纬度 * @param double $lng 经度 * @return array(); */ function Convert_BD09_To_GCJ02($lat,$lng){ $x_pi = 3.14159265358979324 * 3000.0 / 180.0; $x = $lng - 0.0065; $y = $lat - 0.006; $z = sqrt($x * $x + $y * $y) - 0.00002 * sin($y * $x_pi); $theta = atan2($y, $x) - 0.000003 * cos($x * $x_pi); $lng = $z * cos($theta); $lat = $z * sin($theta); return array('lng'=>$lng,'lat'=>$lat); }
jQuery版本:
jQuery.MapConvert = { x_pi: 3.14159265358979324 * 3000.0 / 180.0, /** * 中国正常坐标系GCJ02协议的坐标,转到 百度地图对应的 BD09 协议坐标 * point 为传入的对象,例如{lat:xxxxx,lng:xxxxx} */ Convert_GCJ02_To_BD09: function (point) { var x = point.lng, y = point.lat; var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * jQuery.MapConvert.x_pi); var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * jQuery.MapConvert.x_pi); point.lng = z * Math.cos(theta) + 0.0065; point.lat = z * Math.sin(theta) + 0.006; }, /** * 百度地图对应的 BD09 协议坐标,转到 中国正常坐标系GCJ02协议的坐标 */ Convert_BD09_To_GCJ02: function (point) { var x = point.lng - 0.0065, y = point.lat - 0.006; var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * jQuery.MapConvert.x_pi); var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * jQuery.MapConvert.x_pi); point.lng = z * Math.cos(theta); point.lat = z * Math.sin(theta); } }
相关推荐
本文将详细介绍如何使用Java实现WGS84坐标与Google地图坐标、百度地图坐标之间的转换,并且会探讨相关的理论背景以及如何在实际项目中应用这些工具类。 首先,WGS84(World Geodetic System 1984)是一种全球通用的...
它提供了一个便捷的方法,将百度地图的经纬度坐标(BD-09)转换成腾讯地图/Google地图所使用的WGS84坐标。这个类通常包含以下几个核心方法: 1. **构造函数**:初始化类,可能包含一些配置参数,如API密钥等,虽然...
WGS84(World Geodetic System 1984)是一种全球通用的大地坐标系统,广泛用于GPS定位、卫星导航以及互联网地图服务,如谷歌地图、百度地图和本例中的腾讯地图。本文将深入探讨腾讯地图API如何被用来转换坐标并返回...
主要实现了百度地图(BD09)、谷歌地图(GCJ02)、谷歌地球(WGS84)三者坐标系之间互转。懂的人应该就懂了,不懂的就再说明一句。谷歌地图相当于火星坐标系,也就是高德、腾讯坐标系。是个Util,拿去按需调用即可。
2、GCJ-02,又称为“火星坐标”,国家测绘局在02年发布的坐标体系,在国内,至少得使用此坐标体系,比如:google、高德、腾讯地图等; 3、其他特殊坐标体系,一般都是由火星坐标通过偏移算法计算得出的,比如百度...
在GIS(地理信息系统)领域,这种技术广泛应用于Web地图服务,如百度地图、高德地图、谷歌地图、腾讯地图和微软地图等。本压缩包文件包含了这些主流地图服务商的瓦片地图下载工具或资源,便于用户离线使用或进行地图...
地图经纬度互换(百度,高德,谷歌,腾讯,搜狗) 具有以下功能 1、通过经纬度获取地址信息。 2、通过地址信息获取经纬度。 3、高德谷歌经纬度转百度地图经纬度。 4、百度经纬度转高德谷歌经纬度。 注,本程序来自于...
1. `bd09ToWgs84($bdLat, $bdLng)`: 将百度的BD09坐标转换为WGS84坐标,这是基础转换,因为腾讯地图和Google地图都基于WGS84坐标系。 2. `wgs84ToTencent($wgsLat, $wgsLng)`: 从WGS84坐标转换为腾讯地图的坐标,这...
在Android开发中,涉及到地图应用时,经常需要处理不同坐标系之间的转换,特别是GPS坐标与地图服务提供商坐标之间的转换。本文主要聚焦于Android系统中如何将GPS获取的坐标转换为适用于高德地图的坐标。 首先,我们...
提供了高德、百度、谷歌、腾讯和必应地图的经纬度坐标与瓦片坐标的相互转换 特点 实现了国内常用地图的经纬度坐标与瓦片坐标的相互转换 使用 UMD 模块打包,可以在 node 和 browser 中直接使用 转换原理 各地图的...
分为 地球坐标,火星坐标(iOS mapView 高德 , 国内google ,搜搜、阿里云 都是火星坐标),百度坐标(百度地图数据主要都是四维图新提供的) 火星坐标: MKMapView 地球坐标: CLLocationManager 当用到...
"百度谷歌高德腾讯等地图下载器"是一款工具软件,专门设计用于下载这些主流地图服务提供商的离线地图数据,以供后续的开发或个人使用。以下是关于这个主题的详细知识点: 1. **离线地图**:离线地图是指用户可以在...
分为 地球坐标,火星坐标(iOS mapView 高德 , 国内google ,搜搜、阿里云 都是火星坐标),百度坐标(百度地图数据主要都是四维图新提供的) 火星坐标: MKMapView 地球坐标: CLLocationManager 当用到...
总的来说,由于百度地图与腾讯/Google地图坐标系的不同,转换过程涉及到复杂的数学运算。尽管网络上有一些开源算法,但它们通常不能提供足够的精度。因此,使用地图服务提供商提供的官方API是最佳实践,这不仅能确保...
在iOS应用开发中,有时我们需要调用系统或第三方地图应用(如高德、百度、腾讯、谷歌或苹果地图)来实现导航功能。这通常涉及到坐标转换,因为中国的地图API通常使用GCJ02(国测局02)坐标系,而国际上广泛使用的是...
这些地图平台虽然都提供地理位置服务,但它们可能采用不同的坐标系统,如WGS84、GCJ-02(中国国家测绘局使用的加密坐标系)、BD-09(百度地图特有的坐标系)等。因此,这个工具能够帮助用户在这些不同坐标系统之间...
老程序收集的程序是百度的bd0911坐标,而小程序坐标是腾讯按另一个标准来的坐标系统。两边不但有偏差,而且百度的bd0911貌似还不能转成腾讯现在用的标准。这好坑好坑,莫非要搞双份坐标采集? 附各种坐标标准: wgs...
- 坐标拾取和坐标转换:GPS(WGS84)、火星坐标(GCJ02)、百度坐标(BD09)等相互转换,地理编码和反地理编码等; - POI查询:通过百度地图、高德地图、腾讯地图等WebAPI搜索、保存POI数据; - 地图下载、拼接:通过...
支持经纬度类型:Google Earth, Google Maps, 百度地图,腾讯地图,高德地图,图吧地图。 单点查看与人工审核、修正坐标结果 你可以在地图上查看单点结果位置,如果位置不正确,你可以通过点击地图或搜索产生新的...