Google maps - сервис маршрутов api ZERO_RESULTS - PullRequest
0 голосов
/ 09 июня 2018

У меня вопрос по API направления услуг.Есть ли гибридный режим движения, который позволил бы мне нарисовать маршрут для велосипеда, даже если на этой улице нет велосипедной дорожки или она противоречит правилам улицы (возможно ли это даже).Я хотел бы нарисовать отрезок, который будет идти от А к В точно по выбранной дороге, а не вокруг, если эта дорога фактически не позволяет двигаться в этом направлении.Это не должно быть правильно в отношении правил вождения, оно должно быть просто нарисовано над улицей.Я пробовал велосипедный режим вместо режима вождения, но нет никакой разницы.

Я надеюсь, что мой пост имеет какой-то смысл

In blue is route made by google, I need route in yellow

Пример звонка:

function loadRoute0() {
  var request0 = {
    origin: new google.maps.LatLng(46.56300788, 15.62779705),
    destination: new google.maps.LatLng(46.55953332, 15.62616729),
    travelMode: google.maps.TravelMode.BICYCLING
  };

  directionsService.route(request0, function(result, status) {
    if (status == google.maps.DirectionsStatus.OK) {
      var renderer = new google.maps.DirectionsRenderer({
        polylineOptions: {
          strokeColor: "#00FF00"
        },
        suppressMarkers: true,
        map: map
      });
      renderer.setDirections(result);
    }
  });
}

1 Ответ

0 голосов
/ 09 июня 2018

Вы можете использовать TravelMode.WALKING, который дает результаты для односторонних дорог и других маршрутов, которые не будут работать для TravelMode.DRIVING.Код в вашем вопросе не воспроизводит отправленную вами картинку, но использование TravelMode.WALKING возвращает маршрут (где TravelMode.BICYCLING дает ZERO_RESULTS для отправленного кода)

function loadRoute0() {
  var request0 = {
    origin: new google.maps.LatLng(46.56300788, 15.62779705),
    destination: new google.maps.LatLng(46.55953332, 15.62616729),
    travelMode: google.maps.TravelMode.WALKING
  };
  directionsService.route(request0, function(result, status) {
    if (status == google.maps.DirectionsStatus.OK) {
      var renderer = new google.maps.DirectionsRenderer({
        polylineOptions: {
          strokeColor: "#00FF00"
        },
        suppressMarkers: true,
        map: map
      });
      renderer.setDirections(result);
    } else
      console.log("status=" + status);
  });
}

screenshot of resulting map

screenshot of resulting map

фрагмент кода:

var map;

function initialize() {
  map = new google.maps.Map(document.getElementById("map_canvas"));
  directionsService = new google.maps.DirectionsService();
  loadRoute0();

  function loadRoute0() {
    var request0 = {
      origin: new google.maps.LatLng(46.56300788, 15.62779705),
      destination: new google.maps.LatLng(46.55953332, 15.62616729),
      travelMode: google.maps.TravelMode.WALKING
    };
    var markerS = new google.maps.Marker({
      position: request0.origin,
      map: map,
      label: "S"
    });
    var markerE = new google.maps.Marker({
      position: request0.destination,
      map: map,
      label: "E"
    });
    directionsService.route(request0, function(result, status) {
      if (status == google.maps.DirectionsStatus.OK) {
        var renderer = new google.maps.DirectionsRenderer({
          polylineOptions: {
            strokeColor: "#00FF00"
          },
          suppressMarkers: true,
          map: map
        });
        renderer.setDirections(result);
      } else
        console.log("status=" + status);
    });
  }

}
google.maps.event.addDomListener(window, "load", initialize);
html,
body,
#map_canvas {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map_canvas"></div>
...