更多>
最新下载
24小时阅读排行榜
- 1 PHP如何获取当前日期和时间_PHP的date函数格式化日期时间详解
- 2 在Java中如何使用异常来控制程序流程
- 3 使用VSCode进行Vue.js开发
- 4 mysql如何查看索引的使用情况
- 5 Java继承与接口实现:常见错误解析与最佳实践
- 6 Java中ArithmeticException的常见触发原因
- 7 京东快递物流信息查询 京东包裹运输进度实时更新
- 8 CSS盒模型中的padding百分比相对于谁计算_CSS规范说明
- 9 pythonfor循环怎么对文件中的数字求和_pythonfor循环读取文件数字内容并求和的方法
- 10 即梦忘记密码了怎么办_即梦密码找回操作指南
- 11 电脑玩游戏时突然自动关机或重启
- 12 怎么跳过Win11联网登录 Win11安装时绕过微软账户的方法
- 13 手机CPU跑分软件哪个好_常用手机CPU跑分软件推荐与使用
- 14 Windows系统加密方法_BitLocker使用指南
- 15 windows10如何调整图标之间的水平和垂直间距_windows10桌面图标间距调整方法
更多>
最新教程
-
- Node.js 教程
- 7588 2025-08-28
-
- CSS3 教程
- 1062303 2025-08-27
-
- Rust 教程
- 12036 2025-08-27
-
- Vue 教程
- 14231 2025-08-22
-
- PostgreSQL 教程
- 10977 2025-08-21
-
- Git 教程
- 5196 2025-08-21
下载首页 / 类库下载 / 其它类库
<?php
class GeoHelper
{
/**
* @param int $lat1
* @param int $lon1
* @param int $lat2
* @param int $lon2
* @param string $unit
* @return
*/
public static function distance($lat1, $lon1, $lat2, $lon2, $unit = "K")
{
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad
($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = strtoupper($unit);
if ($unit == "K") {
return ($miles * 1.609344);
} else
if ($unit == "N") {
return ($miles * 0.8684);
} else { //mi
return $miles;
}
}
/**
*
* @param string $address
* @param string $apikey
* @return array [1]:lat [0]:lng
*/
public static function getLatLng($address, $apikey)
{
$find = array("\\n", "\\r", " ");
$replace = array("", "", "+");
$address = str_replace($find, $replace, $address);
$url = 'http://maps.google.com/maps/geo?q=' . $address . '&key=' . $apikey .
'&sensor=false&output=xml&oe=utf8';
$response = self::xml2array($url);
$coordinates = $response['kml']['Response']['Placemark']['Point']['coordinates'];
if (!empty($coordinates)) {
$point_array = split(",", $coordinates);
return $point_array;
}
}
}计算地图上两点间的距离,使用的是谷歌地图
本站所有资源都是由网友投搞发布,或转载各大下载站,请自行检测软件的完整性!本站所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!如有侵权请联系我们删除下架,联系方式:admin@php.cn

