百度官方本身就提供有谷歌坐标转百度坐标(BD-09)的API,而谷歌坐标中国部分采用的正是火星坐标(GCJ-02)。关于这个API的详细介绍可以参见这篇文章 http://gooderlee.iteye.com/blog/1186512。

本文我们主要来验证一下网上流传的火星坐标转百度坐标算法的准确性。

算法我最早是在这个地址看到的http://blog.csdn.net/coolypf/article/details/8569813,是C++的实现。

下面是对应的Python实现:

from __future__ import division

from math import pi, sqrt, sin, cos, atan2

# 火星坐标(GCJ-02)转百度坐标(BD-09)算法

X_PI = 3.14159265358979324 * 3000.0 / 180.0

def gcj02_to_bd09(lat, lng):

z = sqrt(lng * lng + lat * lat) + 0.00002 * sin(lat * X_PI)

theta = atan2(lat, lng) + 0.000003 * cos(lng * X_PI)

bd_lng = z * cos(theta) + 0.0065

bd_lat = z * sin(theta) + 0.006

return bd_lat, bd_lng

if __name__ == '__main__':

# 测试

google_lat, google_lng = 31.2883064, 121.4904417

print gc202_to_bd09(lat=google_lat, lng=google_lng)

验证一下准确性:

1)我们从大众点评网上选取一家商户http://www.dianping.com/shop/500000,其采用的是高德地图(也是火星坐标),其坐标值是:31.2883064, 121.4904417。

2)我们在谷歌地图上验证一下这个点,结果是吻合的。

3)使用上述算法转换后得到的百度坐标是:31.293981660287436, 121.49700476064442,我们在百度坐标拾取系统中进行验证,肉眼看这个点也是吻合的。详见下图所示(点击查看大图)。

特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。

☹ Disqus被Qiang了,之前所有的评论内容都看不到了。如果您有爬虫相关技术方面的问题,欢迎发到我们的问答平台:http://spider.site-digger.com/

java火星坐标转百度坐标,火星坐标(GCJ-02)转百度坐标(BD-09)算法验证相关推荐

  1. python互相转换位置坐标(百度坐标、WGS_84、火星坐标)

    #!/usr/bin/env python # -*- coding: utf-8 -*- import mathx_pi = 3.14159265358979324 * 3000.0 / 180.0 ...

  2. 坐标计算距离公式 火星坐标系_根据经纬度计算距离的公式、百度坐标转换成GPS坐标(PHP版)...

    //百度坐标转换成GPS坐标 $lnglat = '121.437518,31.224665'; function FromBaiduToGpsXY($lnglat){ // 经度,纬度 $lngla ...

  3. 坐标计算距离公式 火星坐标系_WGS84、GCJ02、BD09地图坐标系间的坐标转换及坐标距离计算...

    坐标转换转载来源:http://nightfarmer.github.io/2016/12/01/GPSUtil/ 坐标系 解释 使用地图 WGS84 地球坐标系,国际上通用的坐标系.设备一般包含GP ...

  4. 【JAVA 第四章 流程控制语句】课后习题 直线斜率 以及判断坐标是否在直线上点到直线的距离

    不知道对不对,请教大神帮忙找下.公式是否有错 import java.util.Scanner;public class Test {/*设计并实现一个MyLine 类,它表示直线.构造方法中使用两个 ...

  5. 百度地图api根据详细地址反查坐标

    用百度地图api根据详细地址反查坐标 /*** 根据详细地址反查坐标* @param args*/public static void main(String[] args) {String addr ...

  6. 百度地图随机生成某个行政区域的随机坐标(用于生成模拟数据)

    百度地图随机生成某个行政区域的随机坐标 主要是为了生成模拟数据 示例 <!DOCTYPE html> <html lang="en"> <head&g ...

  7. 凯恩帝绝对坐标清零_数控凯恩帝相对和绝对坐标怎么切换切换,求师傅

    绝对坐标清零就是2113改变了工件坐标系的位置,一般情5261况下是不能随4102便改的,不然会出问题的.绝对坐标1653清零很好办,直接在坐标系平移里把当前位置设为零点就可以了.加工中心这样做是用平 ...

  8. 全站仪坐标计算机公式,全站仪测量时,坐标n,e,z如何对应于图形坐标x,y,z?...

    全站仪KTS442RL中N,E和Z的坐标值分别表示坐标值_...... N-北代表x坐标,E-east代表Y坐标, Z是海拔! 全站仪N E Z是什么意思? ... N代表X坐标E代表Y坐标Z代表测站 ...

  9. 在IOS中根据圆心坐标、半径和角度计算圆弧上的点坐标

    /** 日期:2015-10-15 版本: 1.0.0 -------------------------------------------------------------- 功能说明 ---- ...

  10. 次坐标从0开始_全站仪测量使用方法及坐标计算教程

    全站仪常规注意事项: 在使用本仪器之前, 要把各种注意事项烂熟于心,务必检查并确认该仪器各项功能运行正常. 1.不要将仪器直接对准太阳 将仪器直接对准太阳会严重伤害眼睛.若仪器的物镜直接对准太阳, 也 ...

最新文章

  1. 类脑芯片即将全球首发-打破冯诺依曼体系
  2. 当超级智能崛起时……
  3. 【原创】C# API 未能创建 SSL/TLS 安全通道 问题解决
  4. 2021年上半年移动广告流量观察白皮书
  5. 解决 idea Method threw ‘java.lang.NoClassDefFoundError‘ exception. Cannot evaluate xxx toString 问题
  6. python使用joblib多进程执行for循环
  7. Linux_Kernel_Function_Tracing_hooking.jpg
  8. 云计算-My Future, The IT's Future
  9. centos 6 apt.sw.be 错误 无法yum安装软件解决方案
  10. 双链表(线性表的链式存储)---C语言版
  11. linux一款不错的linux系统清理工具
  12. mysql sqlyog中文乱码_sqlyog 查询中文乱码
  13. oa系统服务器热备份,如何做好OA系统的日常数据备份
  14. 红黄绿灯控制系统c语言,微机课设-红、黄、绿灯的控制系统设计.doc
  15. 这次,华为选择了湖南大学、湘潭大学
  16. php获取扫码枪的内容,C#_C#实现简单获取扫码枪信息代码,一个扫码枪遵循TCP协议,通过 - phpStudy...
  17. 硬盘录像机常见问题解答硬盘录像机故障解决
  18. 深搜(不撞南墙不回头),迷宫问题
  19. python %d, %f, %s占位符的使用(学习笔记)
  20. 掷骰子java程序_掷骰子游戏窗体实现--Java初级小项目

热门文章

  1. IOS使用信鸽推送收不到消息的问题
  2. 计算机电缆 国家标准,电线电缆常用国家标准
  3. Python鼠标拖动曲线(matplotlib)
  4. 拓展屏软件(给你的电脑加个屏)
  5. Access2016学习16
  6. ssis 链接mysql_SSIS 连接数据
  7. 计算机更新好不,系统更新好还是系统不更新好?
  8. jemalloc 深入分析 之 Tcache 实现原理
  9. 火狐浏览器插件学习01
  10. Android控件——HorizontalScrollView使用(一)