百度地图坐标系和火星坐标系之间的互相转换

// 百度转火星

-(CLLocationCoordinate2D)hhTrans_GCGPS:(CLLocationCoordinate2D)baiduGps

{

CLLocationCoordinate2D googleGps;

double bd_x=baiduGps.longitude - 0.0065;

double bd_y=baiduGps.latitude - 0.006;

double z = sqrt(bd_x * bd_x + bd_y * bd_y) - 0.00002 * sin(bd_y * M_PI);

double theta = atan2(bd_y, bd_x) - 0.000003 * cos(bd_x * M_PI);

googleGps.longitude = z * cos(theta);

googleGps.latitude = z * sin(theta);

return googleGps;

}

其他坐标转百度坐标系

CLLocationCoordinate2D test = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude);

//转换 google地图、soso地图、aliyun地图、mapabc地图和amap地图所用坐标至百度坐标

NSDictionary* testdic = BMKConvertBaiduCoorFrom(test,BMK_COORDTYPE_COMMON);

//转换GPS坐标至百度坐标

testdic = BMKConvertBaiduCoorFrom(test,BMK_COORDTYPE_GPS);

NSLog(@"x=%f,y=%f",location.coordinate.latitude,location.coordinate.longitude);

NSLog(@"x=%@,y=%@",[testdic objectForKey:@"x"],[testdic objectForKey:@"y"]);

NSString *lat = [MCEncryption base64FromBase64String:[testdic objectForKey:@"x"]] ;

NSString *lon = [MCEncryption base64FromBase64String:[testdic objectForKey:@"y"]] ;

时间: 2024-10-12 20:17:15

百度地图坐标系和火星坐标系之间的互相转换的相关文章

百度坐标系和火星坐标系互转

1.火星坐标转为百度坐标: function bd_encrypt(gg_lon, gg_lat){ var X_PI = Math.PI * 3000.0 / 180.0; var x = gg_lon, y = gg_lat; var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * X_PI); var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * X_PI); var bd_

百度地图计算两个点之间的距离

BMKMapPoint point1 = BMKMapPointForCoordinate(CLLocationCoordinate2DMake(38.085178, 114.502358)); BMKMapPoint point2 = BMKMapPointForCoordinate(CLLocationCoordinate2DMake(38.085171, 114.502312)); CLLocationDistance distance = BMKMetersBetweenMapPoint

百度地图API开发:大量坐标点进行分组聚合

leaflet具有markersCluster(标点聚合)的插件非常好用,偶然看到百度地图也有标点聚合开源库,尝试一下,先上效果图: 点此打开交互网页 总结: 1.优点: 百度地图原生的火星坐标系和国内经过偏移的经纬度能完美歪在一起: 网络访问速度比open street map快: 地图信息相对丰富: 2,缺点: 说明文档不是很详细,自定义分组颜色应该有,没找到说明文档: 程序性能不高,点击聚合点会冻结1秒钟的感觉: 美感一般: 实现代码如下: var map = new BMap.Map("

百度地图 iOS SDK - 坐标转换方法

百度地图 Android SDK 或者 iOS SDK 或者各种各样的 API 工具产品,都使用的是百度自己经过加密的坐标体系. 众多开发者在使用过程中,位置点都是通过 GPS 或者其他途径获取的,所以与百度地图所使用的坐标系存在差异. 开发者在将这些空间位置信息运用到地图地图上得时候,需要进行响应的纠偏(坐标转换),iOS SDK 为广大开发者早已开放了响应的坐标转换方法, 开发者只需要短短的几行代码就可以实现相应的坐标转换操作了. 具体方法如下: <span style="font-s

百度地图 Android SDK - 坐标转换方法

百度地图 Android SDK 或者 iOS SDK 或者各种各样的 API 工具产品,都使用的是百度自己经过加密的坐标体系. 众多开发者在使用过程中,位置点都是通过 GPS 或者其他途径获取的,所以与百度地图所使用的坐标系存在差异. 开发者在将这些空间位置信息运用到地图地图上得时候,需要进行响应的纠偏(坐标转换),Android SDK 为广大开发者早已开放了响应的坐标转换方法, 开发者只需要短短的几行代码就可以实现相应的坐标转换操作了. 具体方法如下: // 将google地图.soso地

ol 接入百度地图

ol5 如何接入百度地图,网上的资料很多,但是大多都有问题,在级别放大时,地图发生扭曲.为此注重研究了下ol5 接入百度地图的方法. 首先明确以下问题: 百度地图的投影是3857. 百度地图的分辨率和谷歌.高德地图是不同的,不能直接用谷歌的分辨率. 百度地图切片大小为256*256 百度切片起始点为[0,0] 百度地图采用的墨卡托坐标系有偏移,需要自己实现百度的墨卡托坐标系转换方法.网上已有资料. 明确以下问题后,我们分析ol5 加载地图的方式: ol 加载地图主要涉及到以下概念: view t

安卓开发_慕课网_百度地图_实现模式转换

学习内容来自“慕课网” 模式转换,即地图的普通模式,罗盘模式,跟随模式之间的转换 学习内容接自前三篇 安卓开发_慕课网_百度地图 安卓开发_慕课网_百度地图_实现定位 安卓开发_慕课网_百度地图_实现方向传感器 一.模式转换通过菜单按钮来控制 所以添加对应的菜单项(红色字体部分) 1 <menu xmlns:android="http://schemas.android.com/apk/res/android" > 2 3 <item 4 android:id=&qu

高德,百度,Google地图定位偏移以及坐标系转换

一.在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: 1.WGS-84原始坐标系,一般用国际GPS纪录仪记录下来的经纬度,通过GPS定位拿到的原始经纬度,Google和高德地图定位的的经纬度(国外)都是基于WGS-84坐标系的:但是在国内是不允许直接用WGS84坐标系标注的,必须经过加密后才能使用: 2.GCJ-02坐标系,又名"火星坐标系",是我国国测局独创的坐标体系,由WGS-84加密而成,在国内,必须至少使用GCJ-02坐标系,或者使用在GCJ-02加密后再进行加

使用百度地图API进行坐标系转换

最近在做移动APP的定位功能的时候发现系统GPS获取的位置信息再从百度地图API获取的实际地址总是有误差,偏离了好几个街道,但百度地图本身没这个问题.在网上查找一番发现了地图的坐标系一说,下面简单介绍一下主流的坐标系: 1.GCJ-02   俗称火星坐标系,由中国国家测绘局制订的地理信息系统的坐标系统.一般中国官方发布的地图上标注的经纬度都是这种坐标系的,与实际经纬度有偏差. 2.WGS84:World Geodetic System 1984,俗称地球坐标系,是为GPS全球定位系统使用而建立的