Подтвердить что ты не робот

Использование API Google Maps 3 для получения нескольких маршрутов на карте

Я работаю над проблемой маршрутизации транспортных средств. Недавно я потратил немного времени на использование API Карт Google, чтобы узнать, могу ли я печатать несколько маршрутов на одной карте. Я бы хотел: Route1: точка a, b, c, a маршрут 2 точка a, d, e, f, a маршрут 3 точка a, g, h, a и я хотел бы, чтобы каждый маршрут имел другую цветную полилинию. Может кто-то помочь мне с этим.

4b9b3361

Ответ 1

Да, это довольно просто, как только вы его повесили.

Вы хотите использовать объект directionRenderer.

Большое дело в том, что вы хотите, чтобы ваши маршруты были настроены в массиве, а затем вы хотите перебирать их через цикл. Каждый раз создавайте новый объектRenderer и каждый раз привязывайте его к карте. Внутри цикла вы также захотите создать новую переменную полилинии, которую вы каждый раз переходите к directionRenderer с различным цветом. Я использую код, который сделал это, но не знаю, где он находится в данный момент.

Вот пример того, кто использует разные цветовые полилинии.

http://www.geocodezip.com/violette_com_TestMap2c.html

Если вы сосредоточитесь на этих двух строках кода, вы увидите, как устанавливается цвет полилинии, а также как он передается в directionRenderer.

directionsDisplayActual = new google.maps.DirectionsRenderer({suppressMarkers: true, polylineOptions: polylineOptionsActual})

var polylineOptionsActual = {
      strokeColor: '#FF0000',
      strokeOpacity: 1.0,
      strokeWeight: 10
      };

Далее следуют пути для ваших маршрутов.

http://code.google.com/apis/maps/documentation/javascript/examples/directions-waypoints.html

Еще один хороший пример.

var request = {
    origin: start, 
    destination: end,
    waypoints: waypts,
    optimizeWaypoints: true,
    travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {

Если вы сосредоточитесь на приведенном выше коде в приведенном примере Google, вы увидите waypts var. Вот где будет установлен ваш промежуточный маркер (как вы говорите, пункт b). Вы сделаете это, выполнив waypts.push(.....). Происхождение и пункт назначения будут вашей точкой a и точкой b.

Не должно быть слишком сложно ударить что-то вместе. Я бы предложил захватить пример Google, наиболее близкий к вашим потребностям, и перечеркнуть его до простого проекта, а затем построить его оттуда.