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

Построение маршрута на Картах Google

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

4b9b3361

Ответ 1

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

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

Как только вы установили свойство путевых точек, вы вызываете метод маршрута для расчета направлений:

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

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

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

&path=color:blue|weight:5|45.123,-123.595|46.456,-124.985

Ответ 3

Я сделал это на 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/

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