Я нашел следующий ответ в Stackoverflow.
Из того, что я понимаю, это не правильный способ сделать это. Математика линейная, однако координаты отображаются на сферическую поверхность. Итак, как правильно это сделать?
У меня есть функция, которая вычисляет среднюю точку, как я могу изменить ее, чтобы принять процент в качестве параметра. Другими словами, найдите среднюю точку, которая находится между точкой 1 и 2 и является процентом от точки 1 ...
middle_point(lat1, long1, lat2, long2) {
// Longitude difference.
var d_long = (long2 - long1) * Math.PI / 180;
// Convert to radians.
lat1 = lat1 * Math.PI / 180;
lat2 = lat2 * Math.PI / 180;
long1 = long1 * Math.PI / 180;
var b_x = Math.cos(lat2) * Math.cos(d_long);
var b_y = Math.cos(lat2) * Math.sin(d_long);
var lat3 = Math.atan2(Math.sin(lat1) + Math.sin(lat2), Math.sqrt((Math.cos(lat1) + b_x) * (Math.cos(lat1) + b_x) + b_y * b_y));
var long3 = long1 + Math.atan2(b_y, Math.cos(lat1) + b_x);
// Return result.
return [long3 * 180/Math.PI, lat3 * 180/Math.PI];
}