Запрос общедоступных транзитных данных с помощью Azure Maps служб Mobility Services (Предварительная версия)Request public transit data using the Azure Maps Mobility services (Preview)

Важно!

Службы Mobility Azure Maps в настоящее время доступны в общедоступной предварительной версии.Azure Maps Mobility services are currently in public preview. Эта предварительная версия предоставляется без соглашения об уровне обслуживания и не рекомендована для использования рабочей среде.This preview version is provided without a service level agreement, and it's not recommended for production workloads. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены.Certain features might not be supported or might have constrained capabilities. Дополнительные сведения см. в статье Дополнительные условия использования предварительных выпусков Microsoft Azure.For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

В этой статье показано, как использовать службы мобильности Azure Maps для запроса общедоступных транзитных данных.This article shows you how to use Azure Maps Mobility services to request public transit data. Транзитные данные включают остановку передачи, сведения о маршруте и оценки времени поездки.Transit data includes transit stops, route information, and travel time estimations.

В этой статье вы узнаете, как:In this article you'll learn, how to:

Предварительные требованияPrerequisites

  1. Создайте учетную запись службы Azure MapsMake an Azure Maps account
  2. Получите первичный ключ подписки, который иногда называется первичным ключом или ключом подписки.Obtain a primary subscription key, also known as the primary key or the subscription key. Дополнительные сведения о проверке подлинности в Azure Maps см. в этой статье.For more information on authentication in Azure Maps, see manage authentication in Azure Maps.

В этом руководстве используется приложение Postman, но вы можете выбрать другую среду разработки API.This tutorial uses the Postman application, but you may choose a different API development environment.

Получить идентификатор области метроGet a metro area ID

Чтобы запросить подробную информацию о транзитных агентствах и поддерживаемых типах транзитных складов для определенной области города, вам понадобится эта metroId область.In order to request detail information about transit agencies and supported transit types for a particular metropolitan area, you'll need the metroId of that area. Интерфейс API "получить область метро " позволяет запрашивать области метро, в которых доступны Azure Maps службы Mobility Services.The Get Metro Area API allows you to request metro areas, in which the Azure Maps Mobility services are available. Ответ содержит такие сведения metroId , как, metroName и представление геометрии области Metro в формате геоjson.The response includes details such as the metroId, metroName, and the representation of the metro area geometry in GeoJSON format.

Давайте создадим запрос для получения области Metro для Seattle-Tacoma идентификатора области Metro.Let's make a request to get the Metro Area for the Seattle-Tacoma metro area ID. Чтобы запросить идентификатор для области Metro, выполните следующие действия.To request ID for a metro area, complete the following steps:

  1. Откройте приложение POST и создадим коллекцию для хранения запросов.Open the Postman app, and let's create a collection to store the requests. В верхней части приложения Postman выберите элемент Создать.Near the top of the Postman app, select New. В окне Create New (Создание) выберите Collection (Коллекция).In the Create New window, select Collection. Присвойте имя коллекции и нажмите кнопку Создать.Name the collection and select the Create button.

  2. Чтобы создать запрос, нажмите кнопку Создать еще раз.To create the request, select New again. В окне Create New (Создание) выберите Request (Запрос).In the Create New window, select Request. Введите Имя запроса для запроса.Enter a Request name for the request. Выберите коллекцию, созданную на предыдущем шаге, в качестве расположения для сохранения запроса.Select the collection you created in the previous step as the location in which to save the request. Затем нажмите кнопку Сохранить.Then, select Save.

    Создание запроса в POST

  3. Выберите метод получения HTTP на вкладке Построитель и введите следующий URL-адрес для создания запроса GET.Select the GET HTTP method on the builder tab and enter the following URL to create a GET request. Замените на {subscription-key} Azure Maps первичный ключ.Replace {subscription-key}, with your Azure Maps primary key.

    https://atlas.microsoft.com/mobility/metroArea/id/json?subscription-key={subscription-key}&api-version=1.0&query=47.63096,-122.126
    
  4. После успешного выполнения запроса вы получите следующий ответ:After a successful request, you'll receive the following response:

    {
        "results": [
            {
                "metroId": 522,
                "metroName": "Seattle–Tacoma–Bellevue, WA",
                "viewport": {
                    "topLeftPoint": {
                        "latitude": 48.5853,
                        "longitude": -124.80934
                    },
                    "btmRightPoint": {
                        "latitude": 46.90534,
                        "longitude": -121.55032
                    }
                },
                "geometry": {
                    "type": "Polygon",
                    "coordinates": [
                        [
                            [
                                -121.99604,
                                47.16147
                            ],
                            [
                                -121.97051,
                                47.17222
                            ],
                            [
                                -121.96308,
                                47.17671
                            ],
                            ...,
                            ...,
                            ...,
                            [
                                -122.01525,
                                47.16008
                            ],
                            [
                                -122.00553,
                                47.15919
                            ],
                            [
                                -121.99604,
                                47.16147
                            ]
                        ]
                    ]
                }
            }
        ]
    }
    

Запрос нахождения ближайших транзитных точек останавливаетсяRequest nearby transit stops

Служба Azure Maps получить близлежащие транзитные службы позволяет выполнять поиск по транзитным объектам.The Azure Maps Get Nearby Transit service allows you to search transit objects. API возвращает сведения о транзитном объекте, такие как прекращение общедоступного транзита и передача общих велосипедов по заданному расположению.The API returns the transit object details, such as public transit stops and shared bikes around a given location. Далее мы выполним запрос к службе для поиска ближайших общественных транзитных мест в радиусе 300 метров по отношению к заданному расположению.Next, we'll make a request to the service to search for nearby public transit stops within a 300-meters radius around the given location.

Чтобы выполнить запрос на транзитноеподключение, выполните следующие действия:To make a request to the Get Nearby Transit, follow the steps below:

  1. В окне POST щелкните новый запрос | получить запрос и назовите его Get поблизости.In Postman, click New Request | GET request and name it Get Nearby stops.

  2. На вкладке Построитель выберите метод Get HTTP, введите следующий URL-адрес запроса для КОНЕЧНОЙ точки API и нажмите кнопку Отправить.On the Builder tab, select the GET HTTP method, enter the following request URL for your API endpoint and click Send.

    https://atlas.microsoft.com/mobility/transit/nearby/json?subscription-key={subscription-key}&api-version=1.0&query=47.63096,-122.126&radius=300&objectType=stop
    
  3. После успешного запроса структура ответа должна выглядеть следующим образом:After a successful request, the response structure should look like the one below:

    {
        "results": [
            {
                "id": "522---2060603",
                "type": "stop",
                "objectDetails": {
                    "stopKey": "71300",
                    "stopName": "NE 24th St & 162nd Ave NE",
                    "stopCode": "71300",
                    "mainTransitType": "Bus",
                    "mainAgencyId": "522---5872",
                    "mainAgencyName": "Metro Transit"
                },
                "position": {
                    "latitude": 47.631504,
                    "longitude": -122.125275
                },
                "viewport": {
                    "topLeftPoint": {
                        "latitude": 47.632413,
                        "longitude": -122.12659
                    },
                    "btmRightPoint": {
                        "latitude": 47.630594,
                        "longitude": -122.123959
                    }
                }
            },
            {
                "id": "522---2061020",
                "type": "stop",
                "objectDetails": {
                    "stopKey": "68372",
                    "stopName": "NE 24th St & 160th Ave NE",
                    "stopCode": "68372",
                    "mainTransitType": "Bus",
                    "mainAgencyId": "522---5872",
                    "mainAgencyName": "Metro Transit"
                },
                "position": {
                    "latitude": 47.631409,
                    "longitude": -122.127136
                },
                "viewport": {
                    "topLeftPoint": {
                        "latitude": 47.632318,
                        "longitude": -122.128451
                    },
                    "btmRightPoint": {
                        "latitude": 47.630499,
                        "longitude": -122.12582
                    }
                }
            },
            {
                "id": "522---2060604",
                "type": "stop",
                "objectDetails": {
                    "stopKey": "71310",
                    "stopName": "NE 24th St & 160th Ave NE",
                    "stopCode": "71310",
                    "mainTransitType": "Bus",
                    "mainAgencyId": "522---5872",
                    "mainAgencyName": "Metro Transit"
                },
                "position": {
                    "latitude": 47.631565,
                    "longitude": -122.127808
                },
                "viewport": {
                    "topLeftPoint": {
                        "latitude": 47.632474,
                        "longitude": -122.129124
                    },
                    "btmRightPoint": {
                        "latitude": 47.630655,
                        "longitude": -122.126492
                    }
                }
            }
        ]
    } 
    

Если вы внимательно следите за структурой ответа, вы увидите, что она содержит параметры для каждого транзитного объекта.If you observe the response structure carefully, you'll see that it contains parameters for each transit object. Каждый транзитный объект имеет такие параметры id , как, type , stopName ,, mainTransitType mainAgencyName и положения объекта в координатах.Each transit object has parameters such as id, type, stopName, mainTransitType, mainAgencyName, and the position, in coordinates, of the object.

В целях обучения мы будем использовать точку id останова в качестве источника для нашего маршрута в следующем разделе.For the purpose of learning, we'll use an id of a bus stops as the origin, for our route in the next section.

Запрос транзитного маршрутаRequest a transit route

API Azure Maps получения транзитных маршрутов позволяет планировать поездки.The Azure Maps Get Transit Routes API allows trip planning. Он возвращает наилучшие возможные варианты маршрута от источника к назначению.It returns the best possible route options from an origin to a destination. Служба предоставляет различные режимы поездки, в том числе прохождение, поездкам и общедоступные передачи.The service provides different kind of travel modes, including walking, biking, and public transit. Далее мы будем выполнять поиск по маршруту с ближайшей шины на место в Сиэтле.Next, we'll search a route from the closest bus stop to the Space Needle tower in Seattle.

Получение координат расположения для назначенияGet location coordinates for destination

Чтобы получить координаты места расположения "игольчатый", мы будем использовать службу "Azure Maps нечеткий поиск".To obtain the location coordinates of the Space Needle tower, we'll use the Azure Maps Fuzzy Search service.

Чтобы выполнить запрос к службе поиска нечетких запросов, выполните следующие действия:To make a request to the Fuzzy search service, follow the steps below:

  1. В окне POST щелкните создать запрос | получить запрос и назовите его « Получение координат расположения».In Postman, click New Request | GET request and name it Get location coordinates.

  2. На вкладке Построитель выберите метод Get HTTP, введите следующий URL-адрес запроса и нажмите кнопку Отправить.On the Builder tab, select the GET HTTP method, enter the following request URL, and click Send.

    https://atlas.microsoft.com/search/fuzzy/json?subscription-key={subscription-key}&api-version=1.0&query=space needle
    
  3. Если взглянуть на ответ внимательно, он содержит несколько расположений в результатах поиска в виде стрелки.If you look at the response carefully, it contains multiple locations in the results for the Space Needle search. Каждый результат содержит координаты расположения под позицией.Each result contains the location coordinates under the position. Скопируйте lat и lon под позицией первого результата.Copy the lat and lon under the position of the first result.

    {
         "summary": {
             "query": "space needle",
             "queryType": "NON_NEAR",
             "queryTime": 35,
             "numResults": 8,
             "offset": 0,
             "totalResults": 11,
             "fuzzyLevel": 1
         },
         "results": [
             {
                 "type": "POI",
                 "id": "US/POI/p0/6993440",
                 "score": 4.67369,
                 "info": "search:ta:840539001406144-US",
                 "poi": {
                     "name": "Space Needle",
                     "phone": "+(1)-(206)-9052100",
                     "categorySet": [
                         {
                             "id": 7376009
                         }
                     ],
                     "url": "www.spaceneedle.com",
                     "categories": [
                         "important tourist attraction",
                         "tower"
                     ],
                     "classifications": [
                         {
                             "code": "IMPORTANT_TOURIST_ATTRACTION",
                             "names": [
                                 {
                                     "nameLocale": "en-US",
                                     "name": "important tourist attraction"
                                 },
                                 {
                                     "nameLocale": "en-US",
                                     "name": "tower"
                                 }
                             ]
                         }
                     ]
                 },
                 "address": {
                     "streetNumber": "400",
                     "streetName": "Broad St",
                     "municipalitySubdivision": "South Lake Union, Seattle, Lower Queen Anne",
                     "municipality": "Seattle",
                     "countrySecondarySubdivision": "King",
                     "countryTertiarySubdivision": "Seattle",
                     "countrySubdivision": "WA",
                     "postalCode": "98109",
                     "countryCode": "US",
                     "country": "United States",
                     "countryCodeISO3": "USA",
                     "freeformAddress": "400 Broad St, Seattle, WA 98109",
                     "localName": "Seattle",
                     "countrySubdivisionName": "Washington"
                 },
                 "position": {
                     "lat": 47.62039,
                     "lon": -122.34928
                 },
                 "viewport": {
                     "topLeftPoint": {
                         "lat": 47.62129,
                         "lon": -122.35061
                     },
                     "btmRightPoint": {
                         "lat": 47.61949,
                         "lon": -122.34795
                     }
                 },
                 "entryPoints": [
                     {
                         "type": "main",
                         "position": {
                             "lat": 47.61982,
                             "lon": -122.34886
                         }
                     }
                 ]
             },
             ...,
             ...,
             ...
         ]
     }
    

Маршрут запросаRequest route

Чтобы выполнить запрос маршрута, выполните следующие действия:To make a route request, complete the steps below:

  1. В окне POST щелкните создать запрос | получить запрос и назовите его получить сведения о маршруте.In Postman, click New Request | GET request and name it Get Route info.

  2. На вкладке Построитель выберите метод Get HTTP, введите следующий URL-адрес запроса для КОНЕЧНОЙ точки API и нажмите кнопку Отправить.On the Builder tab, select the GET HTTP method, enter the following request URL for your API endpoint and click Send.

    Мы зазапрашиваем открытые транзитные маршруты для шины, указав modeType Параметры и transitType .We'll request public transit routes for a bus by specifying the modeType and transitType parameters. URL-адрес запроса содержит расположения, полученные в предыдущих разделах.The request URL contains the locations retrieved in the previous sections. Для у originType нас теперь есть стопид.For the originType, we now have a stopId. И для у destionationType нас есть Расположение.And for the destionationType, we have the position.

    См. список параметров URI , которые можно использовать в запросе к API получения транзитных маршрутов.See the list of URI parameters you can use in your request to the Get Transit Routes API.

    https://atlas.microsoft.com/mobility/transit/route/json?subscription-key={subscription-key}&api-version=1.0&originType=stopId&origin=522---2060603&destionationType=position&destination=47.62039,-122.34928&modeType=publicTransit&transitType=bus
    
  3. После успешного запроса структура ответа должна выглядеть следующим образом:Upon a successful request, the response structure should look like the one below:

    {
        "results": [
            {
                "itineraryId": "cb6b6b6f-5cda-451e-b68d-2e97971dd60c---20190906BBBEC4D2219A436A9D794224978C9BBF:0---522",
                "departureTime": "2019-09-07T01:01:50Z",
                "arrivalTime": "2019-09-07T02:16:33Z",
                "travelTimeInSeconds": 4483,
                "numberOfLegs": 8,
                "legs": [
                    {
                        "legType": "Wait",
                        "legStartTime": "2019-09-07T01:01:50Z",
                        "legEndTime": "2019-09-07T01:01:50Z",
                        "caption": "249"
                    },
                    {
                        "legType": "Bus",
                        "legStartTime": "2019-09-07T01:01:50Z",
                        "legEndTime": "2019-09-07T01:26:00Z",
                        "caption": "249",
                        "lengthInMeters": 9139
                    },
                    {
                        "legType": "Wait",
                        "legStartTime": "2019-09-07T01:26:00Z",
                        "legEndTime": "2019-09-07T01:28:00Z",
                        "caption": "255"
                    },
                    {
                        "legType": "Bus",
                        "legStartTime": "2019-09-07T01:28:00Z",
                        "legEndTime": "2019-09-07T01:57:21Z",
                        "caption": "255",
                        "lengthInMeters": 13136
                    },
                    {
                        "legType": "Walk",
                        "legStartTime": "2019-09-07T01:57:22Z",
                        "legEndTime": "2019-09-07T02:01:27Z",
                        "caption": "Denny Way",
                        "lengthInMeters": 308
                    },
                    {
                        "legType": "Wait",
                        "legStartTime": "2019-09-07T02:01:27Z",
                        "legEndTime": "2019-09-07T02:06:33Z",
                        "caption": "8"
                    },
                    {
                        "legType": "Bus",
                        "legStartTime": "2019-09-07T02:06:33Z",
                        "legEndTime": "2019-09-07T02:12:41Z",
                        "caption": "8",
                        "lengthInMeters": 1060
                    },
                    {
                        "legType": "Walk",
                        "legStartTime": "2019-09-07T02:12:42Z",
                        "legEndTime": "2019-09-07T02:16:33Z",
                        "lengthInMeters": 251
                    }
                ],
                "itineraryFare": {
                    "price": {
                        "amount": 550,
                        "currencyCode": "USD"
                    },
                    "tickets": [
                        {
                            "amount": 275,
                            "currencyCode": "USD"
                        },
                        {
                            "amount": 275,
                            "currencyCode": "USD"
                        }
                    ]
                }
            },
            ...,
            {
                "itineraryId": "cb6b6b6f-5cda-451e-b68d-2e97971dd60c---20190906BBBEC4D2219A436A9D794224978C9BBF:2---522",
                "departureTime": "2019-09-07T00:49:32Z",
                "arrivalTime": "2019-09-07T02:20:06Z",
                "travelTimeInSeconds": 5434,
                "numberOfLegs": 10,
                "legs": [
                    {
                        "legType": "Wait",
                        "legStartTime": "2019-09-07T00:49:32Z",
                        "legEndTime": "2019-09-07T00:49:32Z",
                        "caption": "226"
                    },
                    {
                        "legType": "Bus",
                        "legStartTime": "2019-09-07T00:49:32Z",
                        "legEndTime": "2019-09-07T01:15:00Z",
                        "caption": "226",
                        "lengthInMeters": 6792
                    },
                    {
                        "legType": "Wait",
                        "legStartTime": "2019-09-07T01:15:00Z",
                        "legEndTime": "2019-09-07T01:20:00Z",
                        "caption": "241"
                    },
                    {
                        "legType": "Bus",
                        "legStartTime": "2019-09-07T01:20:00Z",
                        "legEndTime": "2019-09-07T01:28:00Z",
                        "caption": "241",
                        "lengthInMeters": 3397
                    },
                    {
                        "legType": "Wait",
                        "legStartTime": "2019-09-07T01:28:00Z",
                        "legEndTime": "2019-09-07T01:33:00Z",
                        "caption": "550"
                    },
                    {
                        "legType": "Bus",
                        "legStartTime": "2019-09-07T01:33:00Z",
                        "legEndTime": "2019-09-07T01:58:00Z",
                        "caption": "550",
                        "lengthInMeters": 12899
                    },
                    {
                        "legType": "Walk",
                        "legStartTime": "2019-09-07T01:58:01Z",
                        "legEndTime": "2019-09-07T01:59:21Z",
                        "caption": "4th Avenue South",
                        "lengthInMeters": 99
                    },
                    {
                        "legType": "Wait",
                        "legStartTime": "2019-09-07T01:59:21Z",
                        "legEndTime": "2019-09-07T02:01:00Z",
                        "caption": "33"
                    },
                    {
                        "legType": "Bus",
                        "legStartTime": "2019-09-07T02:01:00Z",
                        "legEndTime": "2019-09-07T02:13:29Z",
                        "caption": "33,24",
                        "lengthInMeters": 2447
                    },
                    {
                        "legType": "Walk",
                        "legStartTime": "2019-09-07T02:13:30Z",
                        "legEndTime": "2019-09-07T02:20:06Z",
                        "lengthInMeters": 457
                    }
                ],
                "itineraryFare": {
                    "price": {
                        "amount": 550,
                        "currencyCode": "USD"
                    },
                    "tickets": [
                        {
                            "amount": 275,
                            "currencyCode": "USD"
                        },
                        {
                            "amount": 275,
                            "currencyCode": "USD"
                        }
                    ]
                }
            }
        ]
    }
    
  4. Если вы следите за осторожностью, в ответе есть несколько маршрутов шины .If you observe carefully, there are multiple bus routes in the response. Каждому маршруту присваивается уникальный идентификатор, сводка, описывающая каждую часть маршрута, и объект itineraryFare , который предоставляет как детализированную, так и общую стоимость билетов шины.Each route has a unique itinerary ID, a summary that describes each leg of the route, and an itineraryFare that gives both the itemized and total price for bus tickets. Точка маршрута является частью маршрута между двумя вайпоинтсами.A route leg is the part of the route between two stop waypoints. Далее мы зазапрашиваем сведения о быстром маршруте, используя itineraryId в ответе.Next, we'll request details for the fastest route using the itineraryId in the response.

Запрашивать самый быстрый маршрут маршрутовRequest fastest route itinerary

Служба Azure Maps получить путевые маршруты позволяет запрашивать данные для конкретного маршрута, используя идентификатор маршрута, возвращенный службой API получения транзитных маршрутов .The Azure Maps Get Transit Itinerary service allows you to request data for a particular route using the route's itinerary ID returned by the Get Transit Routes API service. Чтобы выполнить запрос, выполните следующие действия:To make a request, complete the steps below:

  1. В окне POST щелкните создать запрос | получить запрос и назовите его получить сведения о транзитном транспорте.In Postman, click New Request | GET request and name it Get Transit info.

  2. На вкладке Построитель выберите метод Get HTTP.On the Builder tab, select the GET HTTP method. Введите следующий URL-адрес запроса для конечной точки API и нажмите кнопку Отправить.Enter the following request URL for your API endpoint and click Send.

    Мы будем присвоить detailType параметру значение Geometry , чтобы ответ содержал сведения о недоступности для бесплатного транзитного пути и последующего включения навигации для прохода и нахождения велосипеда маршрута.We'll set the detailType parameter to geometry so that the response contains stop information for public transit and turn-by-turn navigation for walk and bike legs of the route.

    https://atlas.microsoft.com/mobility/transit/itinerary/json?api-version=1.0&subscription-key={subscription-key}&query={itineraryId}&detailType=geometry
    
  3. После успешного запроса структура ответа должна выглядеть так, как показано ниже.Upon a successful request, the response structure should look like the one below. Если вы видите ответ JSON, то обратите внимание, что каждая Разрезка шины содержит legfare элемент.If you observe the JSON response, you'll notice that each bus leg contains a legfare element. legfareЭлемент содержит затраты (в центах) каждого маршрута шины, который приобретается отдельно.The legfare element contains the cost, in cents, of each bus route that is purchased separately. В конце ответа вы увидите itineraryFare элемент, содержащий стоимость в центе всего маршрута.At the end of the response, you'll see an itineraryFare element that contains the cost, in cents, of the entire route. В этом примере существует четыре маршрута шины $2.75 .In this example, there are four bus routes at $2.75 each. Однако если вы приобретаете один билет для всего маршрута, стоимость — $5.50 .However, if you purchase a single ticket for the entire route, the cost is $5.50.

    {
        "departureTime": "2020-07-22T19:54:47Z",
        "arrivalTime": "2020-07-22T21:12:21Z",
        "legs": [
            {
                "legType": "Wait",
                "legStartTime": "2020-07-22T19:54:47Z",
                "legEndTime": "2020-07-22T19:54:47Z",
                "lineGroup": {
                    "lineGroupId": "522---666063",
                    "agencyId": "522---5872",
                    "agencyName": "Metro Transit",
                    "lineNumber": "226",
                    "caption1": "Eastgate P&R-Crossroads-Overlake-Bellevue TC",
                    "caption2": "226 Eastgate P&R-Crossroads-Overlake-Bellevue TC",
                    "color": "347E5D",
                    "transitType": "Bus"
                },
                "line": {
                    "lineId": "522---2756599",
                    "lineGroupId": "522---666063",
                    "direction": "forward",
                    "agencyId": "522---5872",
                    "lineNumber": "226",
                    "lineDestination": "Bellevue Transit Center Crossroads"
                },
                "stops": [
                    {
                        "stopId": "522---2060603",
                        "stopKey": "71300",
                        "stopName": "NE 24th St & 162nd Ave NE",
                        "stopCode": "71300",
                        "position": {
                            "latitude": 47.631504,
                            "longitude": -122.125275
                        },
                        "mainTransitType": "Bus",
                        "mainAgencyId": "522---5872",
                        "mainAgencyName": "Metro Transit"
                    },
                    {
                        "stopId": "522---2062263",
                        "stopKey": "85630",
                        "stopName": "Bellevue Tc",
                        "stopCode": "85630",
                        "position": {
                            "latitude": 47.615591,
                            "longitude": -122.196491
                        },
                        "mainTransitType": "Bus",
                        "mainAgencyId": "522---5872",
                        "mainAgencyName": "Metro Transit"
                    }
                ],
                "waitOnVehicle": false
            },
            {
                "legType": "Bus",
                "legStartTime": "2020-07-22T19:54:47Z",
                "legEndTime": "2020-07-22T20:15:00Z",
                "lineGroup": {
                    "lineGroupId": "522---666063",
                    "agencyId": "522---5872",
                    "agencyName": "Metro Transit",
                    "lineNumber": "226",
                    "caption1": "Eastgate P&R-Crossroads-Overlake-Bellevue TC",
                    "caption2": "226 Eastgate P&R-Crossroads-Overlake-Bellevue TC",
                    "color": "347E5D",
                    "transitType": "Bus"
                },
                "line": {
                    "lineId": "522---2756599",
                    "lineGroupId": "522---666063",
                    "direction": "forward",
                    "agencyId": "522---5872",
                    "lineNumber": "226",
                    "lineDestination": "Bellevue Transit Center Crossroads"
                },
                "stops": [
                   ...
                ],
                "geometry": {
                    "type": "LineString",
                    "coordinates": [
                       ...
                    ]
                },
                "legFare": {
                    "fares": [
                        {
                            "price": {
                                "amount": 275,
                                "currencyCode": "USD"
                            },
                            "usage": "pay"
                        }
                    ]
                }
            },
            ...,
            ...,
            {
                "legType": "Bus",
                "legStartTime": "2020-07-22T20:20:00Z",
                "legEndTime": "2020-07-22T20:28:00Z",
                "lineGroup": {
                    "lineGroupId": "522---666071",
                    "agencyId": "522---5872",
                    "agencyName": "Metro Transit",
                    "lineNumber": "241",
                    "caption1": "Eastgate P&R - Bellevue Transit Center",
                    "caption2": "241 Eastgate P&R - Bellevue Transit Center",
                    "color": "347E5D",
                    "transitType": "Bus"
                },
                "line": {
                    "lineId": "522---2756619",
                    "lineGroupId": "522---666071",
                    "direction": "backward",
                    "agencyId": "522---5872",
                    "lineNumber": "241",
                    "lineDestination": "Eastgate P&R Factoria"
                },
                "stops": [
                ...
                ],
                "geometry": {
                    "type": "LineString",
                    "coordinates": [
                   ...
                    ]
                },
                "legFare": {
                    "fares": [
                        {
                            "price": {
                                "amount": 275,
                                "currencyCode": "USD"
                            },
                            "usage": "transfer"
                        }
                    ]
                }
            },
            ...,
            {
                "legType": "Bus",
                "legStartTime": "2020-07-22T20:31:00Z",
                "legEndTime": "2020-07-22T20:54:13Z",
                "lineGroup": {
                    "lineGroupId": "522---312636",
                    "agencyId": "522---854535",
                    "agencyName": "Sound Transit",
                    "lineNumber": "550",
                    "caption1": "Bellevue - Seattle",
                    "caption2": "550 Bellevue - Seattle",
                    "color": "00008B",
                    "transitType": "Bus"
                },
                "line": {
                    "lineId": "522---962201",
                    "lineGroupId": "522---312636",
                    "direction": "backward",
                    "agencyId": "522---854535",
                    "lineNumber": "550",
                    "lineDestination": "Seattle"
                },
                "stops": [
                   ...
                ],
                "geometry": {
                    "type": "LineString",
                    "coordinates": [
                 ...
                    ]
                },
                "legFare": {
                    "fares": [
                        {
                            "price": {
                                "amount": 275,
                                "currencyCode": "USD"
                            },
                            "usage": "pay"
                        }
                    ]
                }
            },
            ...,
            ...,
            {
                "legType": "Bus",
                "legStartTime": "2020-07-22T20:57:00Z",
                "legEndTime": "2020-07-22T21:06:00Z",
                "lineGroup": {
                    "lineGroupId": "522---480518",
                    "agencyId": "522---5872",
                    "agencyName": "Metro Transit",
                    "lineNumber": "13",
                    "caption1": "Seattle Pacific - Downtown Seattle",
                    "caption2": "13 Seattle Pacific - Downtown Seattle",
                    "color": "347E5D",
                    "transitType": "Bus"
                },
                "line": {
                    "lineId": "522---1744932",
                    "lineGroupId": "522---480518",
                    "direction": "forward",
                    "agencyId": "522---5872",
                    "lineNumber": "13",
                    "lineDestination": "Seattle Pacific University Seattle Center W"
                },
                "stops": [
                   ...
                ],
                "geometry": {
                    "type": "LineString",
                    "coordinates": [
                      ...
                    ]
                },
                "legFare": {
                    "fares": [
                        {
                            "price": {
                                "amount": 275,
                                "currencyCode": "USD"
                            },
                            "usage": "transfer"
                        }
                    ]
                }
            },
            ...,
        ],
        "itineraryFare": {
            "price": {
                "amount": 550,
                "currencyCode": "USD"
            },
            "tickets": [
                {
                    "amount": 275,
                    "currencyCode": "USD"
                },
                {
                    "amount": 275,
                    "currencyCode": "USD"
                }
            ]
        }
    }
    
    

Дальнейшие действияNext steps

Узнайте, как запрашивать данные в режиме реального времени с помощью служб Mobility Services (Предварительная версия):Learn how to request real-time data using Mobility services (Preview):

Ознакомьтесь с документацией по API Azure Maps Mobility Services (Предварительная версия)Explore the Azure Maps Mobility services (Preview) API documentation