прокладывание маршрута на Google Maps - PullRequest
23 голосов
/ 04 августа 2010

Как бы я использовал API Карт Google для построения маршрута?Например, чтобы на карту было загружено несколько точек маршрута (у меня это сейчас есть) и нарисовать линию от каждого из них, показывающую пользователю маршрут, который они могли бы пройти, чтобы увидеть все из них?Как мне тогда загрузить это, когда пользователь увидит карту?

Ответы [ 3 ]

29 голосов
/ 04 августа 2010

Вы можете установить свойство waypoints для объекта DirectionsService , и оно будет прокладывать маршрут от источника до пункта назначения через все точки в вашем массиве:

Массив промежуточных путевых точек. Направления будут рассчитываться из Происхождение к месту назначения путем каждая путевая точка в этом массиве.

После того, как вы установили свойство waypoints , вы вызываете метод маршрута для расчета направлений:

route(request:DirectionsRequest, callback:function(DirectionsResult, DirectionsStatus)))

Когда у вас есть DirectionsResult, вы можете использовать объект DirectionsRenderer для отображения результатов на карте Google.

Обновление с рабочим примером

Следующий код делает запрос направления между жестко заданными начальными и конечными точками через массив из трех путевых точек:

// three points through which the directions pass
var point1 = new google.maps.LatLng(-33.8975098545041,151.09962701797485);
var point2 = new google.maps.LatLng(-33.8584421519279,151.0693073272705);
var point3 = new google.maps.LatLng(-33.84525521656404,151.0421848297119);

// build an array of the points
var wps = [{ location: point1 }, { location: point2 }, {location: point3}];

// set the origin and destination
var org = new google.maps.LatLng ( -33.89192157947345,151.13604068756104);
var dest = new google.maps.LatLng ( -33.69727974097957,150.29047966003418);

var request = {
        origin: org,
        destination: dest,
        waypoints: wps,
        travelMode: google.maps.DirectionsTravelMode.DRIVING
        };

Вы можете найти рабочий пример этого кода здесь ( source ).

N.B. Имейте в виду, что вы можете использовать только восемь путевых точек в вашем массиве, если только вы не переключаетесь на бизнес-аккаунт.

2 голосов
/ 04 августа 2010

Вы можете использовать статическую карту, а затем перебрать свои точки и построить точки, используя параметр пути.

Что-то вроде:

&path=color:blue|weight:5|45.123,-123.595|46.456,-124.985
0 голосов
/ 29 августа 2017

Я сделал это на Android.У Google есть сервис для этого, вот ссылка https://developers.google.com/maps/documentation/roads/intro

Пример вызова API на этой странице вы найдете здесь.Плюс некоторые веб-инструкции.https://developers.google.com/maps/documentation/roads/snap

Это пример веб-звонка в службу.https://roads.googleapis.com/v1/snapToRoads?path=-35.27801,149.12958|-35.28032,149.12907|-35.28099,149.12929|-35.28144,149.12984|-35.28194,149.13003|-35.28282,149.12956|-35.28302,149.12881|-35.28473,149.12836&interpolate=true&key=YOUR_API_KEY

Если память не изменится, я полагаю, что вы можете иметь до 100 баллов за звонок, и вы платите за каждый звонок независимо от количества баллов.настроен для привязки к дорогам.

Что касается рисования маршрутов при загрузке карты, это зависит от того, какие технологии вы используете.Я знаю, что это легко сделать в .NET WinForms

Если вы оставите комментарий на свой вопрос;Сообщив мне, какие технологии вы используете, я могу дать вам несколько советов.

Если вы хотите протестировать свои маршруты бесплатно, я нашел изящный маленький веб-сайт: https://www.darrinward.com/lat-long/

Надеюсь, это поможет.

...