12345678910111213141516171819202122232425262728293031323334 |
- <?php
- /**
- * 自定义公共函数
- * @Description
- * @Author 刘学玺
- * @Date 2023/11/30 13:50
- */
- /**
- * 根据起点坐标和终点坐标测距离
- * @param array $from [起点坐标(经纬度),例如:array(118.012951,36.810024)]
- * @param array $to [终点坐标(经纬度)]
- * @param bool $km 是否以公里为单位 false:米 true:公里(千米)
- * @param int $decimal 精度 保留小数位数
- * @return float 距离数值
- */
- function get_distance(array $from, array $to, bool $km = true, int $decimal = 2): float
- {
- sort($from);
- sort($to);
- $EARTH_RADIUS = 6370.996; // 地球半径系数
- $distance = $EARTH_RADIUS * 2 * asin(sqrt(pow(sin(($from[0] * pi() / 180 - $to[0] * pi() / 180) / 2), 2) + cos($from[0] * pi() / 180) * cos($to[0] * pi() / 180) * pow(sin(($from[1] * pi() / 180 - $to[1] * pi() / 180) / 2), 2))) * 1000;
- if ($km) {
- $distance = $distance / 1000;
- }
- return round($distance, $decimal);
- }
- function get_file_extension($filename){
- return substr($filename, strrpos($filename, '.') + 1);
- }
|