Google Map V3, как получить список лучших маршрутов для нескольких направлений?

Я хотел бы использовать API Gmap для расчета лучшего маршрута вождения для многих пунктов назначения. Я прочитал эту страницу:

http://googlegeodevelopers.blogspot.de/2010/03/good-day-for-salesmen-that-travel-on.html

Это почти то же самое, что я хочу. Тем не менее, я хочу только получить список адресов назад, которые отсортированы и указать, куда отправиться первым.

Например: я отправляю местоположение трех пунктов назначения A, B, C в Gmap. Мне нужно получить массив, как $bestroute [] = {B, C, A}.

Я буду писать код с PHP и javascript. Если вы можете помочь мне или узнать какой-либо учебник, пожалуйста, помогите.

Большое спасибо.

Ответы

Ответ 1

Ссылка, на которую вы ссылаетесь, объясняет, как это сделать: по общему признанию вы также возвращаете информацию о некоторых направлениях, о которой вам неинтересна, но вы можете просто проигнорировать ее.

Чтобы быть понятным, вы просто отправляете запрос маршрута с некоторыми путевыми точками (например, B, C и D) в дополнение к вашему происхождению и месту назначения (A и E).

Если вы используете веб-службу , убедитесь, что вы настроили оптимизацию: true, прежде чем перечислять свои путевые точки, и проверьте массив waypoint_order (около нижней части результата для этого URL-адреса) для получения необходимой информации:

http://maps.googleapis.com/maps/api/directions/json?origin=Adelaide,SA&destination=Adelaide,SA&waypoints=optimize:true|Barossa+Valley,SA|Clare,SA|Connawarra,SA|McLaren+Vale,SA&sensor=false

Если вы используете JS API, установите optimizeWaypoints: true в вашем запросе.

Как всегда, убедитесь, что вы соблюдаете условия обслуживания (например, результаты вашего запроса веб-службы должны отображаться на карте Google).

Ответ 2

Возможно, вам захочется посмотреть на службу "Матрица расстояния": https://developers.google.com/maps/documentation/javascript/distancematrix

Он дает вам расстояния между множеством истоков и мест назначения и может помочь вам с сужением вариантов.