php高德地图与百度地图转换,高德地图百度地图坐标相互转换
/ **
*百度坐标(BD09),国测局坐标(火星坐标,GCJ02)和WGS84坐标系之间的转换的工具
*
*参考https://github.com/wandergis/coordtransform实现的Java版本
* @作者feihong
* /
公共类CoordinateTransformUtil {
static double x_pi = 3.14159265358979324 * 3000.0 / 180.0 ;
// π
static double pi = 3.1415926535897932384626 ;
//长半轴
静态double a = 6378245.0 ;
//扁率
静态双 ee = 0.00669342162296594323 ;
/ **
*百度坐标系(BD-09)转WGS坐标
*
* @param lng百度坐标纬度
* @param lat百度坐标经度
* @返回 WGS84坐标数组
* /
public static double [] bd09towgs84(double lng,double lat){
double [] gcj = bd09togcj02(lng,lat);
double [] wgs84 = gcj02towgs84(gcj [ 0 ],gcj [ 1 ]);
返回 wgs84;
}
/ **
* WGS坐标转百度坐标系(BD-09)
*
* @param lng WGS84坐标系的经度
* @param lat WGS84坐标系的纬度
* @return百度坐标数组
* /
public static double [] wgs84tobd09(double lng,double lat){
double [] gcj = wgs84togcj02(lng,lat);
double [] bd09 = gcj02tobd09(gcj [ 0 ],gcj [ 1 ]);
返回 bd09;
}
/ **
*火星坐标系(GCJ-02)转百度坐标系(BD-09)
*
*谷歌,高德 - >百度
* @param lng火星坐标经度
* @param lat火星坐标纬度
* @return百度坐标数组
* /
public static double [] gcj02tobd09(double lng,double lat){
双 z = 数学。sqrt(lng * lng + lat * lat)+ 0.00002 * Math 。sin(lat * x_pi);
double theta = 数学。atan2(lat,lng)+ 0.000003 * Math 。cos(lng * x_pi);
double bd_lng = z * Math 。cos(θ)+ 0.0065 ;
double bd_lat = z * Math 。罪(THETA)+ 0.006 ;
返回新的double [] {bd_lng,bd_lat};
}
/ **
*百度坐标系(BD-09)转火星坐标系(GCJ-02)
*
*百度 - >谷歌,高德
* @param bd_lon百度坐标纬度
* @param bd_lat百度坐标经度
* @return火星坐标数组
* /
public static double [] bd09togcj02(double bd_lon,double bd_lat){
双 X = bd_lon - 0.0065 ;
double y = bd_lat - 0.006 ;
双 z = 数学。sqrt(x * x + y * y)- 0.00002 * Math 。sin(y * x_pi);
double theta = 数学。atan2(y,x)- 0.000003 * Math 。cos(x * x_pi);
double gg_lng = z * Math 。COS(THETA);
double gg_lat = z * Math 。罪(THETA);
返回新的double [] {gg_lng,gg_lat};
}
/ **
* WGS84转GCJ02(火星坐标系)
*
* @param lng WGS84坐标系的经度
* @param lat WGS84坐标系的纬度
* @return火星坐标数组
* /
public static double [] wgs84togcj02(double lng,double lat){
if(out_of_china(lng,lat)){
返回新的double [] {lng,lat};
}
double dlat = transformlat(lng - 105.0,lat - 35.0);
double dlng = transformlng(lng - 105.0,lat - 35.0);
double radlat = lat / 180.0 * pi;
双重魔法= 数学。罪(radlat);
魔法= 1 - EE *魔*魔;
double sqrtmagic = Math 。SQRT(魔术);
dlat =(dlat * 180.0)/((a *(1 - ee))/(magic * sqrtmagic)* pi);
DLNG =(DLNG * 180.0)/(A / sqrtmagic * 数学。 COS(radlat)* PI);
double mglat = lat + dlat;
双 mglng = lng + dlng;
返回新的double [] {mglng,mglat};
}
/ **
* GCJ02(火星坐标系)转GPS84
*
* @param lng火星坐标系的经度
* @param lat火星坐标系纬度
* @返回 WGS84坐标数组
* /
public static double [] gcj02towgs84(double lng,double lat){
if(out_of_china(lng,lat)){
返回新的double [] {lng,lat};
}
double dlat = transformlat(lng - 105.0,lat - 35.0);
double dlng = transformlng(lng - 105.0,lat - 35.0);
double radlat = lat / 180.0 * pi;
双重魔法= 数学。罪(radlat);
魔法= 1 - EE *魔*魔;
double sqrtmagic = Math 。SQRT(魔术);
dlat =(dlat * 180.0)/((a *(1 - ee))/(magic * sqrtmagic)* pi);
DLNG =(DLNG * 180.0)/(A / sqrtmagic * 数学。 COS(radlat)* PI);
double mglat = lat + dlat;
双 mglng = lng + dlng;
返回新的double [] {lng * 2 - mglng,lat * 2 - mglat};
}
/ **
*纬度转换
*
* @param lng
* @param lat
* @返回
* /
public static double transformlat(double lng,double lat){
double ret = - 100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math 。SQRT(数学。 ABS(LNG));
RET + =(20.0 * 数学。 SIN(6.0 * LNG * PI)+ 20.0 * 数学。 SIN(2.0 * LNG * PI))* 2.0 / 3.0 ;
RET + =(20.0 * 数学。罪(LAT * PI)+ 40.0 * 数学。罪(LAT / 3.0 * PI))* 2.0 / 3.0 ;
RET + =(160.0 * 数学。罪(LAT / 12.0 * PI)+ 320 * 数学。罪(LAT * PI / 30.0))* 2.0 / 3.0 ;
返回 ret;
}
/ **
*经度转换
*
* @param lng
* @param lat
* @返回
* /
public static double transformlng(double lng,double lat){
double ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math 。SQRT(数学。 ABS(LNG));
RET + =(20.0 * 数学。 SIN(6.0 * LNG * PI)+ 20.0 * 数学。 SIN(2.0 * LNG * PI))* 2.0 / 3.0 ;
RET + =(20.0 * 数学。罪(LNG * PI)+ 40.0 * 数学。罪(LNG / 3.0 * PI))* 2.0 / 3.0 ;
RET + =(150.0 * 数学。罪(LNG / 12.0 * PI)+ 300.0 * 数学。罪(LNG / 30.0 * PI))* 2.0 / 3.0 ;
返回 ret;
}
/ **
*判断是否在国内,不在国内不做偏移
*
* @param lng
* @param lat
* @返回
* /
public static boolean out_of_china(double lng,double lat){
如果(lng < 72.004 || lng > 137.8347){
返回true ;
} else if(lat < 0.8293 || lat > 55.8271){
返回true ;
}
返回false ;
}
}
php高德地图与百度地图转换,高德地图百度地图坐标相互转换相关推荐
- python实现坐标系转换_(数据科学学习手札60)用Python实现WGS84、火星坐标系、百度坐标系、web墨卡托四种坐标相互转换...
importmathclassLngLatTransfer():def __init__(self): self.x_pi= 3.14159265358979324 * 3000.0 / 180.0s ...
- python读取数据文件、并把里面的数据变成x的二维坐标_(数据科学学习手札60)用Python实现WGS84、火星坐标系、百度坐标系、web墨卡托四种坐标相互转换...
importmathclassLngLatTransfer():def __init__(self): self.x_pi= 3.14159265358979324 * 3000.0 / 180.0s ...
- 腾讯地图api php经纬度转换地址,腾讯地图经纬度转换为百度地图经纬度
利用微信来获取用户当前的详细地址是非常方便的,但是利用微信获取到用户的经纬度转换为具体地址时,老是出现误差很大,因此,决心把腾讯地图经纬度转换城百度地图经纬度,然后再利用百度地图api来获取详细 ...
- python利用百度/高德地图获取地理位置并转换
提示:作者原创,转载请注明 文章目录 一.地理编码与逆编码 二.高德地图地理编码 三.百度地图地理编码 四.坐标转换和空间化 一.地理编码与逆编码 地理编码与逆编码表示的是地名地址与地理坐标(经纬度) ...
- 百度地图和高德地图坐标系的互相转换
原文地址:http://blog.csdn.net/a13570320979/article/details/51366355 一.在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: 1 ...
- android 高德地图移动卡顿_高德地图4.8和百度地图3.1的抉择,如何发送地址到车机(下载失效本帖奉上百度云盘)...
9月已经过去半个月了,升级一直围绕着领克车友,8月的兴奋,总想知道车机有什么改变,很多车友提前去预约,总想尝第一口鲜,这个第一口可不好喝,头啖汤随好,但会烫口,于是我带着观望的态度,因为我始终觉得,安 ...
- 百度地图经纬度转腾讯/高德
前言:当百度的经纬度用在腾讯或高德地图中时,会出现误差,所以需要将经纬度进行转换. /*** @desc 百度转腾讯/高德* @param {number} lng - 百度地图经度* @param ...
- 我们是低估了百度地图,还是高估了高德?
十六年前,地图是一张散发着墨香的纸,载满异国他乡的回忆:十六年后,地图是手机里能说会道的软件,指向日异月殊的新生活. 如今,电子地图已经成为我们日常生活中不可或缺的一部分,无论是开车还是乘坐公共交通都 ...
- 基本农田卫星地图查询_#重庆朝天门#谷歌百度腾讯高德“卫星地图”PK,谷歌更胜一筹...
截图自便民查询网,各家卫星地图PK,各有千秋~ 谷歌精确度最高:5m,来福士修建中,嘉陵江是绿的,长江是黄的.两江交汇处有一条分明的界线. 谷歌 5m:20ft 谷歌 50m:100ft 谷歌 200 ...
- android启动百度地图应用并开始导航,android打开外部地图导航(百度、高德、腾讯)...
外部打开百度地图进行导航: /*** 打开百度地图*@paramslat开始地点 维度*@paramslon开始地点 经度*@paramsname开始地点 名字*@paramdlat终点地点 维度*@ ...
最新文章
- Java自带的常用工具
- Hyperledger Fabric 核心模块(6)Fabric-ca-server
- Python基础教程:copy()和deepcopy()
- leetcode597. 好友申请 I :总体通过率(SQL)
- 13 - java包装类
- 薪酬与工作满意度大调查:数据科学家还是21世纪最性感的职业吗?
- win7 搭建 caffe 以及 python 接口配置
- 调用百度音频,文字转音频
- 在计算机rwn代表,基于改进和RWn-SVM的化工过程故障快速诊断.pdf
- 【数据结构(C语言)】数据结构-内部排序
- 空值的日期类型和update 中的null
- 微信群管理机器人php,一个人管理微信群太累,试试可以自动管群微信机器人
- IOS开发把汉字转换成拼音的两种方法和返回拼音首字母
- 什么是rundll32.exe,为什么运行?
- Java常用类--java.lang.StringBuilder
- 日记app(1.0)进展报告
- 关于SimpleDateFormat日期格式与字符串、时间戳之间的转换
- 图片旋转90度解决的方法
- 常见的SQL面试题: 经典50题
- 美团、飞猪基础架构组实习经历分享
热门文章
- 油价上涨后,「两轮电动车」还是没有找到正确的出路?
- 拼多多狂砸百亿补贴的iphone是真的吗?
- 阿里云对象存储OSS费用内容的说明
- hdu-6287-口算训练
- 如何求地球上两点之间的最短距离_高中数学“最实在”的蒙题技巧,让高中数学短时间内突破120分...
- 谷歌浏览器 无法翻译此网页的解决方法
- 多组两两比较用什么检验方法_方差分析中两两多重比较方法的含义及如何正确选择...
- 河北化工医药职业技术学院学计算机怎么样,河北化工医药职业技术学院宿舍条件怎么样 男生女生宿舍图片...
- mac下读取ntfs
- 企业盈利能力五大指标之:毛利率