我有下面的函数,它是从Swift函数改编而成的,该函数每10m生成一个新的纬度/经度坐标,从中心纬度/经度创建一个圆。问题在于该功能正在超时,但是没有错误,所以我不知道它出了什么问题。
所以本质上我想在中心点周围生成36个点。
距离是将步长转换为米。
$distanceInMetres = 1000 / 0.75;
$coordinates = [];
$first = 0;
$last = 360;
$step = 10;
$n = 0.0;
for($i = 0; $i < 360; $i + 10)
{
$distanceInMetres = $distanceInMetres / (3.14 * 2);
$directionInDegrees = $n;
$lat = -37.713870;
$long = 144.944215;
$radDirection = deg2rad($directionInDegrees);
$dx = $distanceInMeter * cos($radDirection);
$dy = $distanceInMeter * sin($radDirection);
$radLat = deg2rad($lat);
$deltaLongitude = $dx/(111320 * cos($radLat));
$deltaLatitude = $dy/110540;
$endLat = $lat + $deltaLatitude;
$endLong = $long + $deltaLongitude;
$coordinates = array('latitude' => $endLat, 'longitude' => $endLong);
if($n == 0.0) {
$firstLat = $endLat;
$firstLng = $endLong;
}
$n += 10.0;
}