PHP根据一个给定经纬度的点进行附近地点查询
实现原理先算出该点周围的矩形的四个点然后使用经纬度去直接匹配数据库中的记录。//获取周围坐标public function returnSquarePoint($lng, $lat,$distanc e=0.5){
$earthRadius=6378138;
$dlng=2*asin(sin($distanc e/(2* $earthRadius)) /c os(deg2rad($lat)));
$dlng=rad2deg($dlng);
$dlat=$distanc e/$earthRadius;
$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)
//计算两个坐标的直线距离public function getDistanc e($lat 1, $lng 1, $lat2, $lng2){
$earthRadius=6378138; //近似地球半径米
//转换为弧度
$lat1=($lat1 *pi()) / 180;
$lng1=($lng1 *pi())/ 180;
$lat2=($lat2*pi())/ 180;
$lng2=($lng2*pi())/ 180;
//使用半正矢公式用尺规来计算
$c alc Longitude=$lng2- $lng 1;
$c alc Latitude=$lat2- $lat 1;
$stepOne=pow(s in($c alc Latitude/2),2)+c os($lat 1) * c os($lat2) *pow(s in($c alc Longitude/
2),2);
$stepTwo=2*asin(min(1, sqrt($stepOne)));
$c alculatedDistanc e=$earthRadius * $stepTw o;return round($c alc ulatedDis tanc e);
}
bgpto怎么样?bgp.to日本机房、新加坡机房的独立服务器在搞特价促销,日本独立服务器低至6.5折优惠,新加坡独立服务器低至7.5折优惠,所有优惠都是循环的,终身不涨价。服务器不限制流量,支持升级带宽,免费支持Linux和Windows server中文版(还包括Windows 10). 特色:自动部署,无需人工干预,用户可以在后台自己重装系统、重启、关机等操作!bgpto主打日本(东京、大阪...
819云互联 在本月发布了一个购买香港,日本独立服务器的活动,相对之前的首月活动性价比更高,最多只能享受1个月的活动 续费价格恢复原价 是有些颇高 这次819云互联与机房是合作伙伴 本次拿到机房 活动7天内购买独立服务器后期的长期续费价格 加大力度 确实来说这次的就可以买年付或者更长时间了…本次是5个机房可供选择,独立服务器最低默认是50M带宽,不限制流量,。官网:https://ww...
标题【萤光云双十二 全场6折 15元/月 续费同价】今天站长给大家推荐一家国内云厂商的双十二活动。萤光云总部位于福建福州,其成立于2002 年。主打高防云服务器产品,主要提供福州、北京、上海 BGP 和香港 CN2 节点。萤光云的高防云服务器自带 50G 防御,适合高防建站、游戏高防等业务。这家厂商本次双十二算是性价比很高了。全线产品6折,上海 BGP 云服务器折扣更大 5.5 折(测试了一下是金...