2010-08-04 2 views
22

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

+0

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

+0

@ Cannonade Да, это было бы хорошо .. извините .. я могу привести пример? просто немного запутался – Skizit

+0

Я приведу пример и обновлю свой ответ, как только у меня появится шанс. – RedBlueThing

ответ

28

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

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

После того, как вы установили 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 
     }; 

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

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

+0

A B C показывает как маркеры на карте. Где они установлены? Как это изменить, чтобы быть пустым или заголовком на месте? – LTech

+2

спасибо за информацию о путевых точках –

3

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

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

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

Не могли бы вы поделиться полным кодом, о котором вы говорите? –

0

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

Надеется, что это помогает.

Смежные вопросы