Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   При разных растояниях, разные события (https://javascript.ru/forum/events/41533-pri-raznykh-rastoyaniyakh-raznye-sobytiya.html)

wilkas 18.09.2013 11:26

При разных растояниях, разные события
 
Это кусок скрипта gmap:
function calcRoute() {
  var start = document.getElementById('start').value;
  var end = document.getElementById('end').value;
  var waypts = [];
  var checkboxArray = document.getElementById('waypoints');
  for (var i = 0; i < checkboxArray.length; i++) {
    if (checkboxArray.options[i].selected == true) {
      waypts.push({
          location:checkboxArray[i].value,
          stopover:true});
    }
  }

  var request = {
      origin: start,
      destination: end,
      waypoints: waypts,
      optimizeWaypoints: true,
      travelMode: google.maps.TravelMode.DRIVING,
      unitSystem: google.maps.UnitSystem.IMPERIAL
  };
directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) {
      directionsDisplay.setDirections(response);
      var route = response.routes[0];
      var summaryPanel = document.getElementById('directions_panel');
      summaryPanel.innerHTML = '';
      // For each route, display summary information.
      for (var i = 0; i < route.legs.length; i++) {
        var routeSegment = i + 1;
        summaryPanel.innerHTML += route.legs[i].distance.value + '<br><br>';
        }
    }
  });

При нажатии на кнопку ( calcRoute() )он выводит резултаты подщета растояния между тремя точками. То есть в резултате мы получаем две цыфры в метрах ( route.legs[i].distance.value ). Как сделать так, чтоб если эта цыфра меньше, скажем, 5000, то открывалась другая страница, если больше, выводилось сообщение.
Прошу ногами не пинать, я только постигаю премудрости JavaScript.

wilkas 19.09.2013 10:28

С выводом сообщения вроде разобрался. Там все просто. Добавил это:
if (route.legs[i].distance.value > 128748) {alert("sorry");}
else 
{window.open('message.html', '_self');};

Но возникла другая проблема. Цифры получаем две и если первая менше требуемого значения открываетса страница message.html, а мне надо, чтоб если хоть одна цыфра больше чем надо, выводилось предупреждение.
Нашел решение. Правда не очень изящное, но оно делает то что в данный момент надо.
var a = route.legs[0].distance.value;
var b = route.legs[1].distance.value;
if (a > 128748) {alert("sorry");}
else if(b > 128748) {alert("sorry2");}
else {window.open('мессаге.html', '_self');};


Часовой пояс GMT +3, время: 00:09.