Показать сообщение отдельно
  #1 (permalink)  
Старый 02.09.2016, 01:52
Кандидат Javascript-наук
Отправить личное сообщение для sergofedor06 Посмотреть профиль Найти все сообщения от sergofedor06
 
Регистрация: 10.11.2015
Сообщений: 131

Проставить точку после двух чисел, например 65.0987
Всем привет, есть скрипт рассчета растояния между городами, скрипт
в целом работает нормать, но есть одна проблема в нем
если растояние между городами к примеру (Киев-Москва) больше 100 км
то скрипт отображает верное расстояние 853 км

а вот если взять города у которых расстояние между ними будет меньше 100 км
то тут начинаются чудеса со скриптом
например расстояние (Полтава-Диканька) по факту 30 км
скрипт показывает 302 км
и такая фигня со всеми замерами между городами если их фактическое расстояние меньше 100 км
например расстояние (Полтава-Харьков) скрипт отобразит верно 144 км
так как тут уже больше 100км по факту!

где-то в скрипте есть ошибка!
нужно чтобы если расстояние между городами меньше 100 км
то
var Distance
получал вместо
302 км
только
30.2 км

чтобы оставлято только 2 числа потом ишла точка, гляньте пожалуйста где ошибка в скрипте, спасибо!



var waypts = [];
var request = {
origin: gl_start,
destination: gl_end,
waypoints: waypts,
optimizeWaypoints: true,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status)
{
if (status == google.maps.DirectionsStatus.OK)
{
directionsDisplay.setDirections(response);
var route = response.routes[0];


// For each route, display summary information.
if(route.legs.length==0)
alert("Не получилось просчитать расстояние.");
for (var i = 0; i < route.legs.length; i++)
{
var routeSegment = i + 1;

//отображаем результаты вычислений
jQuery("#calc_result").show();

//отображаем начальный и конечный город
jQuery("#start_city").html(document.getElementById("start").value);
jQuery("#end_city").html(document.getElementById("end").value);




var Distance;//расстояние

if(route.legs[i].distance.text.indexOf("мил") != -1 || route.legs[i].distance.text.indexOf("mi") != -1) //если в милях
{
Distance = 1.609344*parseFloat(route.legs[i].distance.text.replace(/[\t,\D]/g,'')); //расстояние без единицы измерения
}
else//если в километрах
{
Distance = parseFloat(route.legs[i].distance.text.replace(/[\t,\D]/g,'')); //расстояние без единицы измерения
}
Distance = Math.round(Distance*100)/100;




//отображаем вычисленное расстояние
jQuery("#distance").html(Distance + " км");
Ответить с цитированием