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);
}
可以看到这次国庆萤光云搞了一个不错的折扣,香港CN2产品6.5折促销,还送50的国庆红包。萤光云是2002年创立的商家,本次国庆活动主推的是香港CN2优化的机器,其另外还有国内BGP和高防服务器。本次活动力度较大,CN2优化套餐低至20/月(需买三个月,用上折扣+代金券组合),有需求的可以看看。官方网站:https://www.lightnode.cn/地区CPU内存SSDIP带宽/流量价格备注购...
LOCVPS在农历新年之后新上架了日本大阪机房软银线路VPS主机,基于KVM架构,配备原生IP,适用全场8折优惠码,最低2GB内存套餐优惠后每月仅76元起。LOCVPS是一家成立于2012年的国人VPS服务商,提供中国香港、韩国、美国、日本、新加坡、德国、荷兰、俄罗斯等地区VPS服务器,基于KVM或XEN架构(推荐选择KVM),线路方面均选择国内直连或优化方案,访问延迟低,适合建站或远程办公使用。...
萤光云怎么样?萤光云是一家国人云厂商,总部位于福建福州。其成立于2002年,主打高防云服务器产品,主要提供福州、北京、上海BGP和香港CN2节点。萤光云的高防云服务器自带50G防御,适合高防建站、游戏高防等业务。目前萤光云推出北京云服务器优惠活动,机房为北京BGP机房,购买北京云服务器可享受6.5折优惠+51元代金券(折扣和代金券可叠加使用)。活动期间还支持申请免费试用,需提交工单开通免费试用体验...