PHP中百度地图和高德地图经纬度互相转换
if(! function_exists('bdEncrypt'))
{//GCJ-02(火星,高德)坐标转换成BD-09(百度)坐标//@param $longitude 高德经度//@param $latitude 高德纬度function bdEncrypt($longitude,$latitude){$x_pi = 3.14159265358979324 * 3000.0 / 180.0;$x = $longitude;$y = $latitude ;$z = sqrt($x * $x + $y * $y) - 0.00002 * sin($y * $x_pi);$theta = atan2($y, $x) - 0.000003 * cos($x * $x_pi);$longitude = $z * cos($theta) + 0.0065;$latitude = $z * sin($theta) + 0.006;// 保留小数点后六位$data['longitude'] = round($longitude, 6);$data['latitude'] = round($latitude, 6);return $data;}
}
if(! function_exists('gdEncrypt'))
{//BD-09(百度)坐标转换成GCJ-02(火星,高德)坐标//@param $longitude 百度经度//@param $latitude 百度纬度function gdEncrypt($longitude,$latitude){$x_pi = 3.14159265358979324 * 3000.0 / 180.0;$x = $longitude - 0.0065;$y = $latitude - 0.006;$z = sqrt($x * $x + $y * $y) - 0.00002 * sin($y * $x_pi);$theta = atan2($y, $x) - 0.000003 * cos($x * $x_pi);$longitude = $z * cos($theta);$latitude = $z * sin($theta);$data['longitude'] = round($longitude, 6);$data['latitude'] = round($latitude, 6);return $data;}
}
PHP根据百度经纬度获取具体的地址
/*** [batchLocation description]* @param [type] $locations [description] 经纬度* @return [type] [description]*/public function getBatchLocation( $locations ){$api = config('setting.amap.api.geocode_regeo');//url:https://restapi.amap.com/v3/geocode/regeo$data = ['output' => 'json','location' => $locations,'radius' => 1000,'extensions' => 'all','batch' => 'true','key' => $this->key,//key值];$resp = $this->Curl->get($api, $data);//curl请求return $resp;} 实例调用:$postions = $longitude. ',' .$latitude; //$longitude经度 $latitude纬度
$locations = json_decode($this->getBatchLocation(implode('|', $postions)), true);
if( $locations['status'] == 1 ) {$locations = $locations['regeocodes'];$address = $locations['formatted_address'];//详细地址$street = $locations['addressComponent']['township'];//街道}
PHP根据两地经纬度计算距离
/*** 求两个已知经纬度之间的距离,单位为米* * @param lng1 $ ,lng2 经度* @param lat1 $ ,lat2 纬度* @return float 距离,单位米* @author www.Alixixi.com */public static function getDistance($lng1, $lat1, $lng2, $lat2) {// 将角度转为狐度$radLat1 = deg2rad($lat1); //deg2rad()函数将角度转换为弧度$radLat2 = deg2rad($lat2);$radLng1 = deg2rad($lng1);$radLng2 = deg2rad($lng2);$a = $radLat1 - $radLat2;$b = $radLng1 - $radLng2;$s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2))) * 6378.137 * 1000;return $s;}示例:$latitude = '30.624762';$longitude='104.13498';$latitude1 = '30.676048';$longitude1='104.144013';$distance = round($this->getDistance($latitude, $longitude, $latitude1, $longitude1) / 1000, 1);/**
*方法二
*/function distance($lat1, $lon1, $lat2,$lon2,$radius = 6378.137){$rad = floatval(M_PI / 180.0);$lat1 = floatval($lat1) * $rad;$lon1 = floatval($lon1) * $rad;$lat2 = floatval($lat2) * $rad;$lon2 = floatval($lon2) * $rad;$theta = $lon2 - $lon1;$dist = acos(sin($lat1) * sin($lat2) + cos($lat1) * cos($lat2) * cos($theta));if ($dist < 0 ) {$dist += M_PI;}return $dist = $dist * $radius;}
示例:$latitude = '30.624762';$longitude='104.13498';$latitude1 = '30.676048';$longitude1='104.144013';$distance = round($this->distance($latitude, $longitude, $latitude1, $longitude1) , 1);
PHP中百度地图和高德地图经纬度互相转换相关推荐
- 手机php打开自带地图,android在自带的app中,调用手机自带的百度地图和高德地图去实现导航的功能...
1.此方法不需要集成百度的sdk 高德的sdk 节省了内存 2.只需要几行代码就能实现调用百度地图或者高德地图的sdk实现导航的功能 3.代码如下 private View.OnClickListe ...
- android在自带的app中,调用手机自带的百度地图和高德地图去实现导航的功能
2019独角兽企业重金招聘Python工程师标准>>> 1.此方法不需要集成百度的sdk 高德的sdk 节省了内存 2.只需要几行代码就能实现调用百度地图或者高德地图的sdk实现导 ...
- 高德h5地图api接口_html5通过腾讯地图、高德地图、百度地图开发api接口获取坐标对应的周边信息...
在通过 geolocation 获取到当前的 GPS 坐标后,需要通过"逆地理位置解析"才能得到街道对应的街道.建筑物.周边等相关信息. 下面我使用国内的三家主要的地图厂商(腾讯地 ...
- 通过腾讯地图、高德地图、百度地图开发接口获取坐标对应的周边相关信息
通过腾讯地图.高德地图.百度地图开发接口获取坐标对应的周边相关信息 更新: 以前出于好意暴露了个人的KEY,现已被烂用.为不影响您的业务,请使用我的KEY的朋友去申请自己的KEY,我的KEY将在不久后 ...
- 关于百度地图和高德地图,关于地图坐标系
原文作者: 深白Andy 原文地址: http://my.eoe.cn/gueryue/archive/15390.html 众所周知地球是一个不规则椭圆体,GIS中的坐标系定义由基准面和地图投影两组 ...
- iOS 应用内跳转到百度地图、苹果地图、谷歌地图、高德地图等
最近在做导航,所以把自己找到的资料总结一下! 无论是百度地图.高德地图.谷歌地图还是腾讯地图它们都有自己的SDK,我们只需要在自己的工程中导入SDK并查看相应的官方文档,基本上就可以实现导航.但是这样 ...
- 移动端浏览器调起百度地图、高德地图
类似这样,点击两个按钮,分别调到各自的app客户端,没有客户端跳进移动端的web地图中. 百度地图和高德地图都提供了各自的地图调用的方法.百度api 高德api 百度的稍微麻烦一些,不过还好,我页面使 ...
- ios - 百度地图和高德地图坐标的区别
一.在地图开发中,我们一般解除的三种坐标系 1.WGS-84坐标系(原始坐标系),它是国际GPS记录仪记录下来的经纬度.Google和高德地图定位的经纬度都是基于WGS-84坐标系的,但是国内是不允许 ...
- Android调用跳转百度地图、高德地图、腾讯地图进行目的地导航
Android App跳转百度地图.高德地图.腾讯地图进行目的地导航. 先放上百度.高德.腾讯地图调起API文档地址,有些参数不懂可以参考. 百度地图:http://lbsyun.baidu.com/ ...
- Android 调起百度地图和高德地图
目录 前言 原理 示例代码 1.百度地图 2.高德地图 前言 最近由于业务需求需要拉起百度地图和高德地图进行导航, 原理 百度和高德都给开发者提供了接口,开发者只需要调用接口传递起始坐标就可以了. 示 ...
最新文章
- 用notepad++怎样批量添加引号
- 浅论服务端应用程序开发中的CAP思想(非分布式系统中的CAP理论)
- C# WinForm 弹出模式窗口操作滚动条
- ASP.NET中Json的处理
- python实现新闻网站_如何用 100 行 Python 代码实现新闻爬虫?这样可算成功?
- Nacos源码ServiceManager
- 关于怎么在手机端实现一个拖拽的操作
- k8s pod MySQL环境变量_Kubernetes 配置Pod和容器(一)定义容器环境变量
- OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize()
- mysql通用日志不打印_解决logback不打印mybatis的SQL日志的问题
- 命令行编译和运行java
- P5704 【深基2.例6】字母转换(python实现)
- 【李宏毅2020 ML/DL】补充:Structured Learning: Introduction Structured Linear Model
- Flash学习资源下载列表
- 浏览器与WEB服务器的网络协议
- IN和AdaIN原理与代码实现
- Matlab学习手记——牛顿型信頼域法求解无约束问题
- 【计算机网络】网络层 : 子网划分 ( 三级 IP 地址 | 子网划分 | 子网掩码 | 子网掩码计算示例 | 子网的分组转发 )★
- Linux perf 1.4、hardware events
- 新浪微博php实习生电面