thinkphp通过经纬度获取周边信息的例子

thinkphp实现附近范围的查询,如附近的人和附近团购之类。首先,要定位用户的经纬度。客户端定位的方法可以使用地图api或者用html5浏览器定位(比较不稳定而且不会太精确)。然后,将当前经纬度,和需要搜索的距离范围,计算一个经纬度范围,这个范围就是“附近”。要有mysql数据库的支持,效果图:

 代码如下 复制代码

/*
    参数说明:
    $lng  经度
    $lat   纬度
    $distance  周边半径  默认是500米(0.5Km)
*/

function returnSquarePoint($lng, $lat,$distance = 0.5)
{
    $dlng =  2 * asin(sin($distance / (2 * 6371)) / cos(deg2rad($lat)));
    $dlng = rad2deg($dlng);
    $dlat = $distance/6371;
    $dlat = rad2deg($dlat);
    return array(
    'left-top'=>array('lat'=>$lat + $dlat,'lng'=>$lng-$dlng),
    'right-top'=>array('lat'=>$lat + $dlat, 'lng'=>$lng + $dlng),
    'left-bottom'=>array('lat'=>$lat - $dlat, 'lng'=>$lng - $dlng),
    'right-bottom'=>array('lat'=>$lat - $dlat, 'lng'=>$lng + $dlng)
    );
}

在文件中调用并组成条件:

 代码如下 复制代码

$array = $this->returnSquarePoint($latitude, $longitude, 5);

生成Thinkphp查询条件

 代码如下 复制代码

$map = array(
   "latitude" => array(array('EGT',$array['right-bottom']['lat']),array('ELT',$array['left-top']['lat']),'or'),
   "longitude" => array(array('EGT',$array['left-top']['lng']),array('ELT',$array['right-bottom']['lng']),'or'),
   "status" => array("eq",1),
);

生成sql:

 

查询结果:

时间: 2024-11-13 06:58:05

thinkphp通过经纬度获取周边信息的例子的相关文章

C#的百度地图开发(三)依据坐标获取位置、商圈及周边信息

原文:C#的百度地图开发(三)依据坐标获取位置.商圈及周边信息 我们得到了百度坐标,现在依据这一坐标来获取相应的信息.下面是相应的代码   [html] view plaincopy public class BaiduMap   {           /// <summary>           /// 依据坐标获取定位信息的URL模板.           /// 参数1:百度地图API的KEY.           /// 参数2:坐标(经度,纬度).                

php微信公众开发之获取周边酒店信息的方法_php技巧

本文实例讲述了php微信公众开发之获取周边酒店信息的方法.分享给大家供大家参考.具体分析如下: 关注微信公众之后发送回复地理位置信息,即可回复周边附近的酒店信息列表,下面我就来给各位介绍利用php是怎么实现这个功能,希望全子对大家有帮助.代码如下: 复制代码 代码如下: <?php  //将提交过来的信息接收 $signature = $_GET['signature'];  $timestamp = $_GET['timestamp'];  $nonce = $_GET['nonce'];  

微信公众开发之获取周边酒店信息

效果图: 开发之获取周边酒店信息-虹桥开发区周边酒店"> 并且附加上代码:  代码如下 复制代码 <?php  //将提交过来的信息接收   $signature = $_GET['signature'];    $timestamp = $_GET['timestamp'];    $nonce = $_GET['nonce'];    $echostr = $_GET['echostr'];    $token = "yanjiadong";    //判断接

asp.net版微信网页登录授权,获取用户信息例子

asp.net版微信网页登录授权必须要是微信公众号并且类型为"服务号" 首先大家要看下微信的API文档. 微信网页授权,获取用户的微信官方API文档地址: http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html 微信认证流程: 1 第一步:用户同意授权,获取code 2 第二步:通过code换取网页授权access_token 3 第三步:刷新access_token(如果需要) 4 第四步:拉取用户信

Swift QQ授权登录,并获取个人信息(用户资料)的例子

现在很多APP或者网站都支持使用QQ帐号进行登录.本文演示如何实现QQ的第三方登录,以及登录后的获取用户的个人信息.   1,腾讯开放平台注册,以及SDK的配置(这个可以官方去找) 2,登录授权,并获取用户资料信息 (1)点击"登录并获取用户资料"按钮 (2)程序会自动跳转到QQ,显示登录页面(页面上会显示需要的授权) (3)登录成功后又会自动返回原来的APP.本样例中我们在登录成功后,获取用户信息并打印出来 附:返回参数说明 参数名称 描述 ret 返回码.详见公共返回码说明#Ope

Android中使用百度地图API:根据经纬度查询地址信息

百度地图移动版API不仅包含构建地图的基本接口,还集成了众多搜索服务,包括:位置检索.周边检索. 范围检索.公交检索.驾乘检索.步行检索.地址信息查询等. 百度地图移动版API提供的搜索服务主要是 通过初始化MKSearch类,注册搜索结果的监听对象MKSearchListener来实现异步搜索服务.首先需要自定义一 个MySearchListener类,它实现MKSearchListener接口,然后通过实现接口中不同的回调方法,来获得对应的 搜索结果.MySearchListener类的定义

Android百度地图定位后获取周边位置的实现代码

本文实例讲解Android百度地图定位后获取周边位置的实现代码,分享给大家供大家参考,具体内容如下 效果图: 具体代码: 1.布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical&q

[开发故事]第四回:应用反射在运行时动态获取类型信息

引言 网友hbfly,对于我在[你必须知道的.NET]第三十回:.NET十年(下)一文中 关于"当应用attribute进行运行时反射"的论述,希望举例说明,他提出了自己 的想法:[你必须知道的.NET]第二十四回:认识元数据和IL(上)[你必须知道的.NET]第二十五回:认识元数据和IL(中)[你必须知道的.NET]第二十六回:认识元数据和IL(下) [MyAttribute("text.....")] public mymethod() { //我可以再方法内部

C# 网络编程之通过豆瓣API获取书籍信息

这篇文章主要是讲述如何通过豆瓣API获取书籍的信息,起初看到这个内容我最初的想法是在"C# 网络编程之网页简单下载实现"中通过HttpWebResponse类下载源码,再通过正则表达式分析获取结点标签得到信息.但后来发现可以通过豆瓣API提供的编程接口实现.该文章仅是基础性C#网络编程文章,尝试测试了下豆瓣API,并没什么高深的内容.但希望对大家有所帮助,仅供学习.(警告:文章仅供参考,提供一种想法,否则访问多次-10次被403 forbidden莫怪.建议认证使用豆瓣API) 一.豆