计算地图上两点间的距离PHP类
<?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
相关文章
在百度地图API中,如何使用Java计算两点间的距离,并显示在地图上?
30Jul2023
在百度地图API中,如何使用Java计算两点间的距离,并显示在地图上?百度地图API是一项强大的地理信息开发工具,提供了多种功能和接口供开发者使用。其中一个常用的功能就是计算两点间的距离,并将结果显示在地图上。本文将介绍如何使用Java语言来实现这一功能,并提供相应的代码示例。使用百度地图API进行开发,首先需要在官方网站申请一个开发者账号,并创建一个新的应
Hot Tools
热门文章
《使命召唤:黑色行动 6》- 阿奇狂欢节活动指南
21Dec2024手游攻略
如何修复 KB5048685 在 Windows 11 中安装失败的问题?
12Dec2024故障排查
Roblox Fisch:所有钓鱼竿位置和统计数据
29Nov2024手游攻略
潜行者 2 保存文件位置和成功保存的文件恢复
28Nov2024故障排查
全球气候可视化:季节对比的数字画布
20Dec2024css教程