小型网站使用高德地图开发定位模块需要的php代码
项目要求:
1.使用定位,获取gps信息
2.获取当前所在城市
3.从该城市中取数据,按照距离我的当前位置远近排序
方案
1.使用js获取当前位置信息,然后使用cookie或者session存储
function showPosition(position)
{
var lat = position.coords.latitude;
var lon = position.coords.longitude;
var baseUrl = '{|:U(GROUP_NAME.'/Index/position')|}';
//baseUrl += '?lat='+position.coords.latitude+'&lon='+position.coords.longitude;
$.post(baseUrl,{lat:lat,lon:lon},function(data){
location.reload();
// alert(data);
});
}
//js调用函数
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
}
2.将gps坐标转换成高德坐标,并获取所在城市 直辖市的city为空(保存在province属性中)
http://restapi.amap.com/v3/geocode/regeo?location=108.948711,34.230511&key=b7e6f37cfbf325818525241fc3616e7f&s=rsv3&radius=1000&extensions=all
注意:1.经纬度小数点后只能6位
2.extensions 可取 base(当前位置基本信息) all(周边信息)
Php
//根据高德坐标获取所在城市
function getAmapCity($lng,$lat,$default='北京'){
$res = file_get_contents('http://restapi.amap.com/v3/geocode/regeo?location='.$lng.','.$lat.'&key=b7e6f37cfbf325818525241fc3616e7f&s=rsv3&radius=1000&extensions=base');
$res = json_decode($res);
if($res->info == 'OK'){
return explode('市',$res->regeocode->addressComponent->city)[0];
}else{
return $default;
}
}
3.计算两个坐标的距离
//计算地图两点间距离
function getShortDistance ( $lngx, $latx, $lngy, $laty )
{
$DEF_PI = 3.14159265359; // pi();
$DEF_2PI = 6.28318530712; // 2 * $DEF_PI;
$DEF_PI180 = 0.01745329252; // $DEF_PI/180.0;
$DEF_R = 6378.137; // radius of earth // 角度换弧度
$radLat1 = $lngx * $DEF_PI180;
$radLat2 = $lngy * $DEF_PI180; $a = $radLat1 - $radLat2;
$b = ( $latx * $DEF_PI180 ) - ( $laty * $DEF_PI180 );
$s = 2 * sin(sqrt(pow(sin($a/2),2) + cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)));
$s = $s * $DEF_R;
$distance = round($s * 1000);
return $distance;
}
小型网站使用高德地图开发定位模块需要的php代码的更多相关文章
- Android高德地图开发具体解释
这段时间开发的时候用到了高德地图,对高德地图开发有心得体会,如今分享给大家.对我开发过百度地图的我来说,整体来说高德地图Demo,没有百度解说的具体 个人更偏向于使用百度地图,可是没办发,项目须要使用 ...
- 【高德地图开发4】---增加覆盖物setMapTextZIndex
高德地图 Android SDK 允许用户将添加的线.面等覆盖物设置在地图底图文字的上方或下方. 具体实现是使 用 AMap 类的 setMapTextZIndex() 方法来设置地图底图文字的z轴指 ...
- 在vue中使用高德地图开发,以及AMap的引入?
百度引入BMap ,一个import 即可,可AMap 却报AMap is not difined ? 1.首先在 externals: { "BMap": "BMap& ...
- 高德地图开发之获取SHA1码
通过Android Studio获取SHA1 第一步.打开 Android Studio 的 Terminal 工具. 第二步.输入命令:keytool -v -list -keystore key ...
- 安卓开发笔记①:利用高德地图API进行定位、开发电子围栏、天气预报、轨迹记录、搜索周边(位置)
高德地图开发时需要导入的包在下面的网盘链接中:(由于高德地图api更新得太快,官网上最新的包使用起来没有之前的方便,所以以下提供最全面的原始包) 链接:http://pan.baidu.com/s/1 ...
- [WEB地图] 2017高德地图API WEB开发(key申请,地图搭建)简约教程
前端时间因为公司需要研究 了一下百度的教程 然后写个简约的笔记记录一下自己学习的收获,只为了满足自己暂时的写作热情 高德地图WEB开发(key申请.api)简约教程 1.首先我们需要去“高德地 ...
- 引用第三方高德地图接口---使用js脚本进行开发地图定位的步骤
①在高德地图开发平台注册一个账号,获取key ②添加新的key ③引入map插件 ④复制过来map的脚本代码和编写搜索框 <script type="text/javascript&q ...
- android开发对应高德地图定位服务进度一
进行android的高德地图开发首先需要进入高德地图的控制台进行注册登录.之后创建新的应用并且绑定软件得到相应的key. 这里面需要找到自己软件对应的多个SHA1.这里有发布版和调试版,以及对应的软件 ...
- iOS:高德地图的使用
本人花了点时间集成了高德地图的几乎所有的功能,包含:地图的显示.地图的绘制.地图的定位.地图的POI数据检索.地图的线路规划.地图导航等下载地址如下:https://github.com/xiayua ...
随机推荐
- 关于web项目创建后WEB-INF下面没有出现web.xml的解决方法
提供两种解决方案: 第一种:创建完项目后,需要手动创建出web.xml 第一步:选取创建的项目名称右击 第二步:eclipse的同学找到 java EE Tools 中的 下图画圈部分. MyEcl ...
- [HDFS Manual] CH6 HDFS Federation
HDFS Federation HDFS Federation 1 Background 2.多个namenode/namespace 2.1 关键好处 3 联合配置 3.1 配置 3.2 格式化na ...
- 消息中间件系列二:RabbitMQ入门(基本概念、RabbitMQ的安装和运行)
一.基本概念 1. AMQP AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议.支持不同语言和不同的产品 2. 生产者 ...
- tomcat 配置 使用综合
[参考]Tomcat 7.0安装与配置 [参考]tomcat 控制台日志(startup.bat)输出到指定文件中 [参考]将Java web应用部署到Tomcat 及部署到Tomcat根目录 的三种 ...
- 终于把eShopOnContainer部署成功了。
先上图说明一下,然后把步骤一部一部写上来吧.
- Oracle集群(RAC)时间同步(ntp和CTSS)
Oracle集群(RAC)时间同步(ntp和CTSS) http://blog.itpub.net/26736162/viewspace-2157130/ crsctl stat res -t -in ...
- echarts网络拓扑图
option = { title: { text: '' }, tooltip: {}, animationDurationUpdate: 1500, animationEasingUpdate: ' ...
- Android的TextView设置padding无效
I finally found the problem I have to set the background first before setting the padding. Setting t ...
- 程序中的@Override是什么意思?
@Override是Java5的元数据,自动加上去的一个标志,告诉你说下面这个方法是从父类/接口 继承过来的,需要你重写一次,这样就可以方便你阅读,也不怕会忘记 @Override是伪代码,表示重写( ...
- springBoot整合ftp上传图片功能
知识点: springBoot后端项目,接收前端框架传到的图片,把图片上传到ftp图片服务器上 注意:在上传的过程中可能回出现,可以创建文件夹,但是图片上传不了的问题: 尝试了网上的很多方法,最后将f ...