Я пытаюсь разбить полилинию на четные отрезки длиной около 160 метров, используя PHP.
У меня есть функция PHP, в которой я передаю 4 переменные. Lat и Lng начала полилинии и Lat и Lng конца полилинии. Затем мне нужно вернуть массив всех координат Lat и Lng, которые составляют ломаную линию, разделенную на приблизительно 160 метров в длину.
При поиске на этом сайте я обнаружил следующую функцию, которая возвращает середину полилинии:
function midpoint ($lat1, $lng1, $lat2, $lng2) {
$lat1= deg2rad($lat1);
$lng1= deg2rad($lng1);
$lat2= deg2rad($lat2);
$lng2= deg2rad($lng2);
$dlng = $lng2 - $lng1;
$Bx = cos($lat2) * cos($dlng);
$By = cos($lat2) * sin($dlng);
$lat3 = atan2( sin($lat1)+sin($lat2),
sqrt((cos($lat1)+$Bx)*(cos($lat1)+$Bx) + $By*$By ));
$lng3 = $lng1 + atan2($By, (cos($lat1) + $Bx));
$pi = pi();
return ($lat3*180)/$pi .' '. ($lng3*180)/$pi;
}
Можно ли в любом случае изменить эту функцию, чтобы она возвращала координаты приблизительно на расстоянии 160 метров? Длина не обязательно должна быть точно 160, если отрезки ломаной линии будут равны.