文档章节

地图经度纬度偏移解决

TianBinrui
 TianBinrui
发布于 2017/08/22 09:51
字数 699
阅读 19
收藏 0

1、百度地图坐标转换接口

先前博客上介绍的 百度地图API经纬度转换接口 ,支持所有坐标系之间的互转,但是目前此借口已经不能再使用了。非常的可惜,取而代之的是百度的另外一个接口:http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=longitude&y=latitude

其中

  • from: 来源坐标系 (0表示原始GPS坐标,2表示Google坐标)
  • to: 转换后的坐标 (4就是百度自己啦,好像这个必须是4才行)
  • x: 精度
  • y: 纬度

返回的结果是一个json字符串: {“error”:0,”x”:”MTIxLjUwMDIyODIxNDk2″,”y”:”MzEuMjM1ODUwMjYwMTE3″}

  • error:是结果是否出错标志位,”0″表示OK
  • x: 百度坐标系的精度(Base64加密)
  • y: 百度坐标系的纬度(Base64加密)

2、百度地图API(iOS版)坐标转换服务

作用:将其他坐标系转换到百度坐标系

文件:BMKGeometry.h

接口说明:

  • BMKBaiduCoorForWgs84() 从gps坐标系或mapbar坐标系转换到百度坐标系,返回结果为经过Base64加密之后字符串。
  • BMKBaiduCoorForGcj() 从google坐标系、51地图坐标系、mapcabc坐标系转换到百度坐标系(51地图坐标需要先除10000),返回结果为经过Base64加密之后的字符串。
  • BMKCoorDictionaryDecode() base64加密后的坐标字典解密函数。

3、Google 中国地图偏移接口

经确认,目前此接口(http://ditu.google.cn/maps/vp?spn=0.0,0.0&z=18&vp=39.111195,117.148067)返回的内容已经改变,所以已不可用。

4、搜狗地图转换接口

作用:将google坐标和百度坐标转换为搜狗坐标的服务。

详细使用方法,请参照: http://map.sogou.com/api/documentation/javascript/api2.5/interface_translate.html

5、地球坐标转化成火星坐标

按理,只要使用国家提供的保密插件就可以将地球坐标转化为火星坐标。关于加密模块可能我们接触不到,但是网上给坐标加密的算法确实可以找到: https://on4wp7.codeplex.com/SourceControl/changeset/view/21483#353936

6、火星坐标到地球坐标

由于上面的加密算法是不可逆的。这个基本上是无解的。不然这个也不会成为国家机密了!

7、百度坐标与火星坐标的互换

算法代码如下,其中  bd_encrypt  将 GCJ-02 坐标转换成 BD-09 坐标,  bd_decrypt  反之。

#include <math.h>

const double x_pi = 3.14159265358979324 * 3000.0 / 180.0;

void bd_encrypt(double gg_lat, double gg_lon, double &bd_lat, double &bd_lon)
{
    double x = gg_lon, y = gg_lat;
    double z = sqrt(x * x + y * y) + 0.00002 * sin(y * x_pi);
    double theta = atan2(y, x) + 0.000003 * cos(x * x_pi);
    bd_lon = z * cos(theta) + 0.0065;
    bd_lat = z * sin(theta) + 0.006;
}

void bd_decrypt(double bd_lat, double bd_lon, double &gg_lat, double &gg_lon)
{
    double x = bd_lon - 0.0065, y = bd_lat - 0.006;
    double z = sqrt(x * x + y * y) - 0.00002 * sin(y * x_pi);
    double theta = atan2(y, x) - 0.000003 * cos(x * x_pi);
    gg_lon = z * cos(theta);
    gg_lat = z * sin(theta);
}

© 著作权归作者所有

TianBinrui
粉丝 1
博文 50
码字总数 23996
作品 0
太原
私信 提问
GPS各坐标系间的坐标值转换

1、地球坐标系:是国际上通用的地理坐标系wgs84,也就是我们常说的经度纬度多少多少。比如08年汶川大地震报的经纬度就是基于这个坐标系。而我们常见的一些设备比如gps也是以这个坐标系为参考...

城邑耕夫
2016/11/21
514
0
DLA新增函数发布:身份证、星座、拼音、Json数组、经纬度城市查询、互联网坐标系经纬度转换等

概述 本月,Data Lake Analytics(https://et.aliyun.com/bdad/datalake)发布了一批新增的内置函数,涉及身份证地域查询、星座查询、中文拼音转换、Json数组内容字段提取、经纬度城市查询、...

javainthinking
06/21
0
0
关于经常检索的字段,有没有必要独立出来

现实需求: 百度地图(包括其他地图)每一次拖动结束后,要显示区域内标注的信息,目前不考虑缓存,从数据库检索坐标信息(经度、纬度),匹配的显示在当前可视区域内,因为一个用户只有一个...

FrankHong
2013/07/06
144
2
活字格 - 百度地图插件

打包下载 活字格图片轮转类型插件下载:https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=48662 活字格官网:https://www.grapecity.com.cn/solutions/huozige BaiduMapCellType......

葡萄城技术团队
2018/08/09
832
0
Google MAP API 如何把从数据库中取出的坐标在地图上显示

我是学生,新学Google MAP API 和JSP,有两件问题想请教老师,希望老师有空时帮忙看一下。 1:从数据库取出的 坐标 经度和纬度 ,如何转换成函数LatLng(lat:number, lng:number)所用的 numb...

yuxingao
2012/04/17
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
1K
12
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
37
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
40
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
57
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部