地图开发 火星坐标(GCJ-02)和百度坐标(BD-09)互相转换

■ 背景

  1. 国际坐标系 WGS-84:地心坐标系,国际通用。应用:Googole Map
  2. 火星坐标系 GCJ-02:由中国×××(G表示Guojia国家,C表示Cehui测绘,J表示Ju局)制订的地理信息系统的坐标系统。应用:高德地图
  3. 百度坐标系 BD-09:在GCJ-02的基础上二次偏移。应用:百度地图

■ GCJ-02和BD-09互相转换 (js)

// 高德地图坐标系(火星坐标GCJ-02) -> 百度地图坐标系(百度坐标BD-09)
// 参数形式为"lng,lat"
// 返回字符串"lng,lat"
function gcj2bdString(value, mapType) {
    if (mapType == BAIDU) {
        var x_pi = 3.14159265358979324 * 3000.0 / 180.0;
        var ll = value.split(",");
        var x = ll[0], y = ll[1];
        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);
        return (z * Math.cos(theta) + 0.0065) + ‘,‘ + (z * Math.sin(theta) + 0.006);
    } else if (mapType == GAODE) {
        return value;
    }
}

// 百度地图坐标系(百度坐标BD-09) -> 高德地图坐标系(火星坐标GCJ-02)
// 参数形式为"lng,lat"
// 返回字符串"lng,lat"
function bd2gcjString(value, mapType) {
    if (mapType == BAIDU) {
        var x_pi = 3.14159265358979324 * 3000.0 / 180.0;
        var ll = value.split(",");
        var x = ll[0] - 0.0065, y = ll[1] - 0.006;
        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);
        return (z * Math.cos(theta)) + ‘,‘ + (z * Math.sin(theta));
    } else if (mapType == GAODE) {
        return value;
    }
}

原文地址:http://blog.51cto.com/13685327/2097292

时间: 2024-10-04 07:14:56

地图开发 火星坐标(GCJ-02)和百度坐标(BD-09)互相转换的相关文章

[转]地球坐标 火星坐标 百度坐标 相互转换

在开始这个题目之前,先给大家再次扫扫盲,扫的不是坐标系统的盲,而是我们国家所使用的坐标系统.大家都知道,美国GPS使用的是WGS84的坐标系统,以经纬度的形式来表示地球平面上的某一个位置,这应该是国际共识.但在我国,出于国家安全考虑,国内所有导航电子地图必须使用国家测绘局制定的加密坐标系统,即将一个真实的经纬度坐标加密成一个不正确的经纬度坐标,我们在业内将前者称之为地球坐标,后者称之为火星坐标,具体的说明可以参看百度百科中关于火星坐标系统的解释. 1.国内各地图API坐标系统比较 参考http:

百度坐标转火星坐标

下面是百度官方对百度坐标为何有偏移的解释:国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密.百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私. 百度对外接口的坐标系并不是GPS采集的真实经纬度,需要通过坐标转换接口进行转换 API:坐标系 百度地图API:百度坐标 腾讯搜搜地图API:火星坐标 搜狐搜狗地图API:搜狗坐标* 阿里云地图API:火星坐标 图吧MapBar地图API:图吧坐标 高德MapABC地图API:火星坐标

百度地图开发环境配置

百度地图开发环境配置 1.下载百度地图SDK 开发者可在百度地图AndroidSDK的下载页面下载到最新版的地图SDK. 下载地址为:http://developer.baidu.com/map/index.php?title=androidsdk/sdkandev-download 在这个界面我们可以按照自己的需求下载相应的SDK,同时可选择下载开发包.实例代码.及参考类.现在,只选择下载开发包.下载完成后打开压缩包.可以看到如下文件内容: readme文件是帮助文档,libs文件夹中文件如下

GPS坐标(WGS84)转换百度坐标(BD09) python测试

基础知识坐标系说明: WGS84:为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系. GCJ02:是由中国国家测绘局制订的地理信息系统的坐标系统.由WGS84坐标系经加密后的坐标系. BD09:为百度坐标系,在GCJ02坐标系基础上再次加密.其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标 参考文档: http://lbsyun.baidu.com/index.php?title=webapi/guide/changeposition 功能接口主用调用

C#的百度地图开发(三)依据坐标获取位置、商圈及周边信息

我们得到了百度坐标,现在依据这一坐标来获取相应的信息.下面是相应的代码 [html] view plaincopy public class BaiduMap { /// <summary> /// 依据坐标获取定位信息的URL模板. /// 参数1:百度地图API的KEY. /// 参数2:坐标(经度,纬度). /// </summary> public const string GEOCODING_COORDINATE_URL_TEMPLATE = "http://a

WGS84、Web墨卡托、火星坐标、百度坐标互转

转自:1.http://blog.csdn.net/wildboy2001/article/details/12031351 2.http://kongxz.com/2013/10/wgs-cgj/ 3.http://www.oschina.net/code/snippet_260395_39205 GCJ-02坐标系统(火星坐标)简介:http://blog.csdn.net/giswens/article/details/8775121(存档:http://mapbd.com/cms/201

百度地图开发(二)之添加覆盖物 + 地理编码和反地理编码

之前写过一篇关于百度地图开发的blog,主要介绍了百度地图的基本地图的显示. 详见:Android百度地图开发(一)之初体验 下面来看一下地图上覆盖物的添加,以及地理编码和反地理编码. 添加覆盖物 在地图上添加覆盖物,一般需要以下几个步骤: 1. 定义坐标点,有可能是一个,有可能是多个(比如:多边形覆盖物). 2. 构造OverlayOptions(地图覆盖物选型基类). 3. 在地图上添加覆盖物. 4. 添加相应的监听事件. 在API中可以看到,BaiDuMap类中有一个方法: 这个方法就是用

火星坐标、百度坐标、WGS-84坐标相互转换及墨卡托投影坐标转经纬度JavaScript版

火星坐标 火星坐标是国家测绘局为了国家安全在原始坐标的基础上进行偏移得到的坐标,基本国内的电子地图.导航设备都是采用的这一坐标系或在这一坐标的基础上进行二次加密得到的.火星坐标的真实名称应该是GCJ-02坐标.最近在知乎上看到关于火星坐标的话题都是充满争议的(点我跳转到知乎),感兴趣的同学可以去详细了解一下. 基本上所有的国内的电子地图采用的都是火星坐标系甚至Google地图中国部分都特意为中国政府做了偏移.百度坐标 火星坐标是在国际标准坐标WGS-84上进行的一次加密,由于国内的电子地图都要至

Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图

标签: Android百度地图API Key  分类: Android 百度地图开发(2)  最近自己想研究下地图,本来想研究google Map,但是申请API key比较坑爹,于是从百度地图入手,其实他们的用法都差不多,本篇文章就带领大家在自己的Android项目中加入百度地图的功能,接下来我会写一系列关于百度地图的文章,欢迎大家到时候关注!   一 申请API key 在使用百度地图之前,我们必须去申请一个百度地图的API key,申请地址http://lbsyun.baidu.com/a