php 搜索附近人及SQL语句的写法
/**
     * 根据经纬度和半径查询在此范围内的所有
     * @param  String $lat    纬度
     * @param  String $lng    经度
     * @param  float $radius 半径
     * @return Array         计算出来的结果
     */
    public function doPageFujin() {
        global $_W,$_GPC;
        $uniacid = $_W['uniacid'];
        $lat = $_REQUEST['lat'];
        $lng = $_REQUEST['lo'];
        $radius = 5000;//方圆5公里的
        $scope = $this->calcScope($lat, $lng, $radius);     // 调用范围计算函数,获取最大最小经纬度
        // var_dump($scope);
        $minlat = $scope['minLat'];
        $maxlat = $scope['maxLat'];
        $minlong = $scope['minLng'];
        $maxlong = $scope['maxLng'];
        /** 查询经纬度在 $radius 范围内的电站的详细地址 */
        $where1 = " and latitude >= '{$minlat}' and latitude <= '{$maxlat}' and longitude >= '{$minlong}' and longitude <= '{$maxlong}'";
        $sql = "SELECT * FROM ".tablename("pinba_pinyou")." where uniacid=:uniacid ". $where1;
        $list = pdo_fetchall($sql,array(":uniacid"=>$uniacid));
        // $sql = pdo_fetchall("SELECT * FROM".tablename("pinba_pinyou")."where uniacid=:uniacid ". $where1,array(":uniacid"=>$uniaicd));
        // var_dump($sql);
        return $this->result(0,"success",$list);
    }
/**
     * 根据经纬度和半径计算出范围
     * @param string $lat 纬度
     * @param String $lng 经度
     * @param float $radius 半径
     * @return Array 范围数组
     */
    private function calcScope($lat, $lng, $radius) {
        $degree = (24901*1609)/360.0;
        $dpmLat = 1/$degree;
$radiusLat = $dpmLat*$radius;
        $minLat = $lat - $radiusLat;       // 最小纬度
        $maxLat = $lat + $radiusLat;       // 最大纬度
$mpdLng = $degree*cos($lat * (PI/180));
        $dpmLng = 1 / $mpdLng;
        $radiusLng = $dpmLng*$radius;
        $minLng = $lng - $radiusLng;      // 最小经度
        $maxLng = $lng + $radiusLng;      // 最大经度
/** 返回范围数组 */
        $scope = array(
            'minLat'    =>  $minLat,
            'maxLat'    =>  $maxLat,
            'minLng'    =>  $minLng,
            'maxLng'    =>  $maxLng
            );
        return $scope;
    }
php 搜索附近人及SQL语句的写法的更多相关文章
- ADO方式,VC调用Execute执行INSERT INTO插入变量SQL语句的写法
		ADO方式,VC调用Execute执行INSERT INTO插入变量SQL语句的写法 有些情况下,SQL SERVER 2008r2中需要保存float,int类型的数据,当C 中的变量为double ... 
- 3种SQL语句分页写法
		在开发中经常会使用到数据分页查询,一般的分页可以直接用SQL语句分页,当然也可以把分页写在存储过程里,下面是三种比较常用的SQL语句分页方法,下面以每页5条数据,查询第3页为例子: 第一种:使用not ... 
- C#中SQL语句参数写法
		OracleConnection oc=new OracleConnection("data source=osserver;User Id=****;password=**"); ... 
- oracle高性能的SQL语句的写法
		1.当多表查询的时候,把数据量小的表放在最后面,ORACLE会把最后面的表当作基础表,因为表间连接时,最右边的表会被放到嵌套循环的最外层.最外层的循环次数越少,效率越高. 2.Oracle采用自下而上 ... 
- 使用prepareStatement执行的sql语句的写法:
		使用prepareStatement对象执行的增.删.改.查sql语句: 查: String sql = "SELECT * FROM 表名 WHERE loginId=? AND pas ... 
- 【数据库】同一字段根据不同条件更新的sql语句的写法
		语法: update test set 字段1=case when 条件1 then 值1 when 条件2 then 值2 end 示例: update PMS_ProjectInfo set Pr ... 
- mysql sql语句高级写法
		将user表的内容,插入到team_member表INSERT INTO team_member (Nike,HeadImageUrl) SELECT Nike,HeadImageUrl FROM u ... 
- 添加字段的SQL语句的写法:
		alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参 --删除字段 -- alter table [SolidDB].[dbo].tP ... 
- sql语句优化SQL Server
		MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了 ... 
随机推荐
- vim diff 使用
			1. 可以在用户目录下编辑.vimrc 文件,设置vim格式.如无该文件,添加即可vim ~/.vimrc 内容自己添加set ts=4 "set tabstop=4set nu &q ... 
- 5、 LwIP协议栈规范翻译——操作系统仿真层
			为了使lwIP可移植,操作系统特定的函数调用和数据结构不直接在协议的代码中使用.相反,当需要这样的函数调用和数据结构时,直接使用操作系统仿真层. 操作系统仿真层为操作系统服务提供统一的接口,如定时器, ... 
- ansible常用命令大全
			ansible 默认提供了很多模块来供我们使用.在 Linux 中,我们可以通过 ansible-doc -l 命令查看到当前 ansible 都支持哪些模块,通过 ansible-doc -s ... 
- Dvelopment descriptor
			部署描述符是JavaEE程序常见的一部分,但是之前都没有较为全面的学习过,这里就较为全面的记录一下部署描述符中的元素.部署一个Servlet 3 或以上应用程序是一件轻而易举的事.通过Servlet注 ... 
- 在cef中使用自定义协议(scheme)
			在谷歌浏览器中点击设置,地址栏里出现的不是普通网址,而是chrome://settings/ 这个地址就是谷歌浏览器的自定义scheme,cef也提供了自定义协议手段.主要是通过 以下几步: 1.继承 ... 
- svn版本备份和恢复注意事项
			转帖的,因为我经常要用到,所以也在我的博客上记录一下: 注意:备份不备份日志,你想备份日志就要单独在客户端备了,具体步骤百度上都有 svn备份常用命令1.完全备份和增量备份svn.svnadmin ... 
- CMS GC启动参数优化配置
			简介: java启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现 ... 
- HTML基础(1)——样式表
			样式表按出现的位置可以分为:行间(内联)样式表,内部样式表,外部样式表. 行间(内联)样式表:由于要将表现和内容混杂在一起,内联样式会损失掉样式表的许多优势. <div style=" ... 
- Ubuntu 14.04 更新 setuptools 至 19.2 版本
			参考: Error: "No module named _markerlib" when installing some packages on virtualenv Ubuntu ... 
- SSH框架整合,css、js会被过滤器过滤掉
			如果是默认状态 <!--struts2过滤器--> <filter> <filter-name>struts2</filter-name> <fi ... 
