HOME 生活记录运维/编程
作者/来源:yixinu.com
栏目:运维/编程
日期:2015-11-10 18:56:31

SELECT * , (POWER(MOD(ABS(substring_index(`loglat`, ',' ,1 ) - '112.991664'),360),2) + POWER(ABS(substring_index( `loglat` , ',' ,-1 ) - '28.208148'),2)) AS distance FROM `clo_business_consumer` where loglat is not null ORDER BY distance limit 10


subindex  就截取字符 串,因为 这里经纬度放一个字段 了,用‘,’隔开的



显示 距离代码 . 


<?php


define('EARTH_RADIUS', 6378.137) ;

function rad($d = null){
    return $d * pi() / 180.0;
}

function GetDistance($lat1,$lng1,$lat2,$lng2){
    $radLat1 = rad($lat1);
    $radLat2 = rad($lat2);
    $a = $radLat1 - $radLat2;
    $b = rad($lng1) - rad($lng2);
    $s = 2 * asin(sqrt(pow(sin($a/2),2) +cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)));
    $s = $s * EARTH_RADIUS;
    $s = round($s * 10000) / 10000;
    return $s;
}

$lng = 112.911664;
$lat = 28.208148;

$lng2 = 112.991664;
$lat2 = 28.228148;

$res =  GetDistance($lat,$lng,$lat2,$lng2);
var_dump($res);


分享到:

Copyright © 2013-2014 yixinu.com 湘ICP备14004402号

QQ:316686606  Email: 316686606@qq.com