Google Maps API: найти расстояние маршрута
Мне нужно отслеживать расстояние, пройденное пользователем. Я фиксирую местоположение пользователя каждые 30 секунд, и после того, как пользователь завершил поездку, у меня есть ряд местоположений пути, по которому прошел пользователь.
Мне нужно найти расстояние пути, используя записанные местоположения. Я пытался использовать API матрицы расстояний, но я не могу измерить полное расстояние с помощью одного вызова API. Я должен измерить расстояние между каждым последовательным местоположением и добавить их, чтобы получить общее расстояние.
Есть ли более простой способ сделать это?
2 ответа
Вы можете попробовать проверить API направлений, если он может делать то, что вы хотите достичь. Если API матрицы расстояний - это служба, предоставляющая расстояние и время в пути для матрицы отправлений и пунктов назначения, API маршрутов - это служба, которая вычисляет направления между точками. Но он также содержит такую информацию, как расстояние и продолжительность поездки.
Вот пример запроса с использованием Directions API:
https://maps.googleapis.com/maps/api/directions/json?origin=Dodger%20Stadium,%201000%20Vin%20Scully%20Ave,%20Los%20Angeles,%20CA%2090012,%20United%20States&destination=STAPLES%20Center,%201111%20South%20Figueroa%20Street,%20Los%20Angeles,%20CA%2090015,%20United%20States&key=YOUR_API_KEY
Просто взгляните на ноги и ступени. Эти два являются частью путевых точек, которые могут дать вам небольшую информацию о направлениях.
legs[]
содержит массив, который содержит информацию о участке маршрута между двумя точками в пределах данного маршрута. Отдельный участок будет присутствовать для каждой указанной путевой точки или пункта назначения. (Маршрут без путевых точек будет содержать ровно одну ветку в массиве ветвей.) Каждая ветка состоит из серии шагов.Каждый элемент в массиве этапов определяет один этап пути от пункта отправления до пункта назначения в рассчитанном маршруте. Для маршрутов, которые не содержат путевых точек, маршрут будет состоять из одной "ветки", но для маршрутов, которые определяют одну или несколько путевых точек, маршрут будет состоять из одной или нескольких ветвей, соответствующих определенным веткам маршрута.
steps[]
содержит массив шагов, обозначающих информацию о каждом отдельном этапе этапа путешествия.Каждый элемент в массиве steps определяет один шаг рассчитанных направлений. Шаг - это самая атомарная единица маршрута, содержащая один шаг, описывающий конкретную отдельную инструкцию в пути. Например,"Поверните налево на 4-й улице" Этап не только описывает инструкцию, но также содержит информацию о расстоянии и продолжительности, относящуюся к тому, как этот этап относится к следующему этапу. Например, шаг, обозначенный как "Слияние на I-80 Запад", может содержать продолжительность "37 миль" и "40 минут", что указывает на то, что следующий шаг составляет 37 миль /40 минут от этого шага.
Просто прочитайте документацию по API Directions, чтобы узнать больше об этом и о том, что вы можете сделать для этого API. Я надеюсь дать вам небольшое представление об этом. Удачи:)
Может быть, этот пост будет полезен для поиска расстояния между источником и пунктом назначения.