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);
}
horain怎么样?horain cloud是一家2019年成立的国人主机商家,隶属于北京辰帆科技有限公司,horain持有增值电信业务经营许可证(B1-20203595),与中国电信天翼云、腾讯云、华为云、UCloud、AWS等签署渠道合作协议,主要提企业和个人提供云服务器,目前商家推出了几款特价物理机,都是在内地,性价比不错,其中有目前性能比较强悍的AMD+NVMe系列。点击进入:horain...
舍利云怎么样?舍利云推出了6核16G超大带宽316G高性能SSD和CPU,支持全球范围,原价516,折后价200元一月。原价80美元,现价30美元,支持地区:日本,新加坡,荷兰,法国,英国,澳大利亚,加拿大,韩国,美国纽约,美国硅谷,美国洛杉矶,美国亚特兰大,美国迈阿密州,美国西雅图,美国芝加哥,美国达拉斯。舍利云是vps云服务器的销售商家,其产品主要的特色是适合seo和建站,性价比方面非常不错,...
Sharktech最近洛杉矶和丹佛低价配置大部分都无货了,只有荷兰机房还有少量库存,商家又提供了两款洛杉矶特价独立服务器,价格不错,CPU/内存/硬盘都是高配,1-10Gbps带宽不限流量最低129美元/月起。鲨鱼机房(Sharktech)我们也叫它SK机房,是一家成立于2003年的老牌国外主机商,提供的产品包括独立服务器租用、VPS主机等,自营机房在美国洛杉矶、丹佛、芝加哥和荷兰阿姆斯特丹等,主...