`

android 百度地图 wgs84和baidu09坐标转换

阅读更多
wgs84: gps获取出来的坐标就是wgs84标准的,但在国内不允许在互联网上直接使用这种坐标(应该是出于某些安全问题),所以就有了加密后的坐标baidu09.

“国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密。百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私。” -- 百度地图常见api中是这么回答的。

现有的标准好像有好多:baidu, google, 搜狗, soso, 基本自己实现地图的都有自己的一套标准。

但要用百度地图的话必须要转换,搜了一下大概有这几种方式:
1. 通过web接口转换:http://blog.yyable.com/?p=342
2. 通过公式转换http://blog.yyable.com/?cat=9(只是在google和baidu间转, 没有gps和baidu转的)
3. 如果使用的是android的百度地图api的话里面有现成的转换类:
/***
 * <p> 将坐标系统转换为baidu09加密的坐标系统. </p>
 * @param geoPt 要转换的坐标
 * @param coordType 当前坐标的类型
 * @return 转换后的baidu09坐标
 */
public static GeoPoint convertToBaidu09Coord(GeoPoint geoPt, int coordType) {
    GeoPoint retGeoPt;
    Bundle bundle;
    switch (coordType) {
    case MKLocationManager.MK_COORDINATE_WGS84: 
        bundle = CoordinateConvert.fromWgs84ToBaidu(geoPt);
        retGeoPt = CoordinateConvert.bundleDecode(bundle);
        break;
    case MKLocationManager.MK_COORDINATE_GCJ:
        bundle = CoordinateConvert.fromGcjToBaidu(geoPt);
        retGeoPt = CoordinateConvert.bundleDecode(bundle);
        break;
    case MKLocationManager.MK_COORDINATE_BAIDU09:
    default:
        retGeoPt = geoPt;
        break;
    }
    return retGeoPt;
}

不过要注意的是:这个方法必须在百度地图启动后才能使用(BMapManager.start()后), 否则将原样放回; 好像它内部是通过socket的方式请求服务器转换的.

相关链接:
http://blog.yyable.com/?cat=9
http://blog.yyable.com/?p=342
http://www.cnblogs.com/jz1108/archive/2011/10/11/2207245.html
http://www.biaodianfu.com/baidu-ditu-api-map-coordinate.html?replytocom=366
http://www.cnblogs.com/yixinliu/archive/2012/07/26/2609631.html
base64编码, 解码工具http://www.baidu.com/s?wd=base64+%E5%9C%A8%E7%BA%BF&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&rsv_sug3=14&rsv_sug=0&rsv_sug1=7&rsv_sug4=921
分享到:
评论

相关推荐

    百度、高德、谷歌、火星、wgs84(2000)地图坐标相互转换纠偏的JS实现

    主要实现百度、高德、谷歌、火星、wgs84(2000)地图坐标相互转换纠偏的JS实现

    百度地图最新SDK 7.0把WGS84经纬度转换成BD09ll坐标

    利用最新的BAIDU LBS库《BaiduLBS_Android.jar》,简便地把WGS84经纬度信息转换成BD09ll坐标,该代码段在Android Studio下验证通过

    WGS84、GCJ02、BD09、搜狗坐标系相互转换方法

    WGS84、GCJ02、BD09、搜狗坐标系相互转换方法。这是转换的代码,不是转换的原理文档。

    【delphi】gps-火星-百度等坐标互转源码 by 漠北

    - **WGS84到百度坐标转换**:百度坐标系统的转换相对复杂,因为它是经过加密的。一般使用百度提供的API进行转换,或者使用已知的偏移公式(如基于椭圆函数的反解法)进行近似计算。 - **百度坐标到WGS84转换**:这...

    Android中GPS坐标转换为高德地图坐标详解

    本文主要聚焦于Android系统中如何将GPS获取的坐标转换为适用于高德地图的坐标。 首先,我们需要理解不同坐标系统的概念。GPS坐标通常基于WGS84(World Geodetic System 1984)标准,这是一种全球通用的地理坐标系统...

    baiduMapTest android 百度地图轨迹

    在处理坐标时,可能需要进行坐标转换,例如从GPS的WGS84坐标转换到GCJ-02坐标。百度地图SDK提供了`BDGeocode`和`ReverseGeoCode`类,用于地址解析和反地址解析。 **应用实践** 在`baiduMapTest`这个项目中,我们...

    Android GPS转百度坐标demo.zip

    - `double[] bd09ToGcj02(double latitude, double longitude)`:将百度坐标转换回GCJ-02坐标。 - `double[] wgs84ToGcj02(double latitude, double longitude)`:将WGS84坐标转换为GCJ-02坐标,作为上述两个函数的...

    android百度地图输入经纬度跳转

    可以使用百度提供的转换工具类`BD09LL`,将WGS-84坐标转换为火星坐标。 4. **创建Marker**:在地图上显示特定位置,我们需要创建一个Marker。可以通过`Map.MarkerOptions`来设置Marker的位置、图标等属性。例如: ...

    火星坐标定位android/ios地图转换

    这个坐标系统与国际上广泛采用的WGS-84坐标系存在差异,因此在开发支持Android和iOS平台的地图应用时,需要进行坐标转换以确保位置信息的准确显示。本文将详细介绍火星坐标定位以及在Android和iOS平台上的地图转换。...

    GPS转百度坐标demo、

    2. 解析百度坐标转换算法:理解百度坐标系统的加密机制,可能需要查阅百度官方文档或已有的开源库。 3. 实现转换函数:编写代码来执行从WGS84到百度坐标的转换,这可能涉及到线性代数操作和特定的转换公式。 4. 应用...

    Android 百度、腾讯、高德地图集合

    转换函数通常包括`bd09ToWgs84`和`wgs84ToBd09`,分别用于将BD09坐标转换为WGS84,反之亦然。 2. **腾讯坐标系与WGS84坐标系转换** 腾讯地图采用的是GCJ-02坐标系,也称为火星坐标系。转换函数包括`gcj02ToWgs84`...

    百度地图和谷歌地图互转

    1. **坐标转换**:在进行百度地图和谷歌地图互转时,首要步骤是进行坐标转换。百度地图到谷歌地图的转换通常需要一个转换公式,这个公式可以基于已知的转换参数(如偏移量)来调整坐标值。反之,从谷歌地图到百度...

    GPS坐标转化为百度地图坐标

    通过阅读和理解代码,可以学习到如何在程序中处理这种坐标转换,例如在Android或iOS应用中接收GPS数据并将其正确显示在百度地图上。 在进行坐标转换时,需要注意精度问题,因为加密算法可能导致微小的计算误差。...

    百度地图行政边界提取

    5. **百度坐标系统**:百度地图采用的是自己的坐标系,不同于广泛使用的WGS84坐标系统。百度坐标系是为了提高国内地图定位精度而设计的,因此在处理百度地图返回的数据时,需要注意坐标转换问题。如果需要与WGS84...

    Androidstudio3.0改良用户输入经纬度定位&地图类型转换

    转换公式涉及线性代数和地理坐标转换算法,通常包含一个转换矩阵,将WGS84坐标转换为BD-09坐标。这个过程可以通过自定义函数实现,确保输入的经纬度能正确对应到百度地图的位置。 接下来,集成百度地图SDK是关键...

    Mapbox 自定义图层 加载百度切片

    2. **坐标系统转换**:百度地图使用GCJ-02坐标系统,而Mapbox通常使用WGS84。为了正确显示百度地图切片,需要进行坐标转换。可以使用第三方库如proj4js进行转换。 3. **获取百度地图切片**:利用百度地图API,通过...

    MapBox 加载百度切片(自定义图层)

    Mapbox使用WGS84坐标系统,而百度地图使用的是GCJ02(火星坐标)。你可以使用第三方库,如`proj4js`,来进行坐标转换。 5. **优化性能**:为了提高用户体验,可以考虑使用缓存策略,如使用浏览器的HTTP缓存或本地...

    Qt加载百度离线地图

    Qt是一个跨平台的应用程序开发框架,而百度地图则提供了丰富的地图服务,包括在线和离线地图API。结合两者,我们可以创建功能强大的地图应用。 首先,我们需要理解Qt中的QGraphicsView和QGraphicsScene组件,它们是...

    百度地图所有级别瓦片切割代码

    【标题】"百度地图所有级别瓦片切割代码"所涉及的知识点主要集中在地图瓦片系统、Java编程语言以及坐标转换上。地图瓦片系统是数字地图的一种高效展示方式,而Java则是实现这一功能的主要编程工具。以下是这些知识点...

Global site tag (gtag.js) - Google Analytics