vladislav_boychenko
@vladislav_boychenko
Купаюсь в гривнах

Как проложить маршрут по заданным точкам в Google Maps API v3?

Добрый вечер.
Вот сабж: dev.boichenko.space/lutsk
Суть проблемы: нужно проложить маршрут по определенным точкам.
Как я это делаю: сначала пробовал через "google.maps.Polyline", но это невероятно тупо, ведь можно пролаживать только прямые линии, и на каждом изгибе дороги приходится добавлять новую точку. Теперь решил попробовать через "directionsService", но он сам определеяет, как проложить путь между точками, хоть я и добавляю "waypoints". Может есть какой-то вариант заставить Google Maps API v3 проложить путь по моим точкам? К примеру как в обычнх Гугл картах, где можно проложить путь так, лично определив точки.
Спасибо!
Вот часть кода, отвечающая за пролаживание пути:
var directionsService = new google.maps.DirectionsService;
  var directionsDisplay = new google.maps.DirectionsRenderer;
  directionsDisplay.setOptions({suppressMarkers: true});
  
  directionsDisplay.setMap(map);

  var waypts = [
    {location: {lat: 50.747796, lng: 25.323531}, stopover: true},
    {location: {lat: 50.745726, lng: 25.319925}, stopover: true},
    {location: {lat: 50.743555, lng: 25.325369}, stopover: true},
    {location: {lat: 50.741620, lng: 25.322099}, stopover: true},
    {location: {lat: 50.742370, lng: 25.317764}, stopover: true},
    {location: {lat: 50.740230, lng: 25.317296}, stopover: true},
  ];

  var request = {
    origin: new google.maps.LatLng(50.746957,25.325646), //точка старта
    destination: new google.maps.LatLng(50.741453,25.317290), //точка финиша
    waypoints: waypts, 
    optimizeWaypoints: true, 
    travelMode: google.maps.DirectionsTravelMode.WALKING //режим прокладки маршрута
  };
  directionsService.route(request, function(response, status){
    if (status == google.maps.DirectionsStatus.OK){
      directionsDisplay.setDirections(response);
    }
  });
  directionsDisplay.setMap(map);
  • Вопрос задан
  • 9960 просмотров
Пригласить эксперта
Ответы на вопрос 2
freeExec
@freeExec
Участник OpenStreetMap
А что же вы не подписали другие параметры, бездумно копируете?
optimizeWaypoints (необязательное) – указывает, что маршрут, использующий предоставленные значения waypoints, может быть оптимизирован путем расположения этих промежуточных точек в более эффективном порядке. Если это поле имеет значение true, служба Directions вернет промежуточные точки маршрута в измененном порядке в поле waypoint_order.
Ответ написан
@evgen9586
Backend-dev. Лублу Enterprise и не люблю понты)
Читаем документацию с наглядным примером
https://developers.google.com/maps/documentation/j...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы