Как использовать API Карт Google для построения маршрута? Например, чтобы на карте была загружена пучка точек маршрута (в настоящее время у меня есть это) и нарисовать линию от каждого из них, показывая пользователю маршрут, который они могли бы взять, чтобы увидеть все из них? Как я могу загрузить это, когда пользователь увидит карту?
Построение маршрута на Картах Google
Ответ 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/
Надеюсь, что это поможет.