Я просто не могу понять, как сделать эффективный и понятный код для этого.
У меня есть строка координат, каждая точка, естественно, состоит из долготы, широты и высоты (сейчас я вообще не беспокоюсь о высоте, и я знаю, что функция для определения отснятого материала не поддерживает высоту) :
$coordinates = "-82.36554110283872,26.15200821551467,0 -82.420692,26.097404,0 -82.52855700000001,26.186567,0 -82.41250599999999,25.996422,0 -82.50644510379755,26.05431354409091,0"
Мне нужно выяснить расстояние в футах между каждой координатой и сложить итог.
У меня есть следующая функция (которая прекрасно работает), чтобы выяснить расстояние между двумя точками:
function coordDistance($lat1, $lon1, $lat2, $lon2) {
$delta_lat = $lat2 - $lat1;
$delta_lon = $lon2 - $lon1;
$earth_radius = 20908800.00; //Distance around the earth in feet
$alpha = $delta_lat/2;
$beta = $delta_lon/2;
$a = sin(deg2rad($alpha)) * sin(deg2rad($alpha)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * sin(deg2rad($beta)) * sin(deg2rad($beta)) ;
$c = asin(min(1, sqrt($a)));
$distance = 2*$earth_radius * $c;
$distance = round($distance, 4);
return $distance;
}
То, как я сейчас разбиваю строку с координатами и пытаюсь передать ее функции, совершенно нелепо. Любые предложения о том, как разбить координаты и разбить их, чтобы получить хороший материал для пути в хорошем виде?