Сведения о среде [*]ОС: Windows 11. [*]Версия .NET: 4.8 [*]Название и версия пакета: [Google.Maps.Routing.V2] 1.0.0-beta10
Проблема: Я пытаюсь использовать RouteAPI для определения расстояний от одного места к другому (от одного до многих). Мне не удается получить данные из некоторых пунктов назначения в списке. Однако если я создаю запрос только с одним пунктом назначения и использую проблемный пункт назначения, все работает нормально.
Рабочий пункт
{ "originIndex": 0, "destinationIndex": 102, "status": { }, «distanceMeters»: 1271616, «длительность»: «42600 с», «staticDuration»: "42600s", "условие": "ROUTE_EXISTS", "localizedValues": { "distance": { "text": "1272 км" }, "duration": { "text": "11 часов 50 mins" }, "staticDuration": { "text": "11 часов 50 минут" } }
102, 01226, { "latitude": 42.475, "longitude": -73.1603 } # index, zip, lat/long
Направление проблемы
{ "originIndex": 0, "destinationIndex": 351, "status": { }, "условие": "ROUTE_NOT_FOUND"
351, 01937, { "latitude": 42.5862, "longitude": -70.9745 } # index, zip, lat/long
Асинхронный метод ComputeRouteMatrix
Клиент RoutesClient = await RoutesClient.CreateAsync(); CallSettings callSettings = CallSettings.FromHeader("X-Goog-FieldMask", "*"); var origin = новая путевая точка {Местоположение = новое местоположение {LatLng = новое LatLng {Широта = 41,7682, Долгота = -83,5797} }}; List destList = новый список(); zipObjects.ForEach(x => destList.Add(new RouteMatrixDestination { Waypoint = x.waypoint })); вар BatchedDest = CreateBatch (destList, 400); число интервалов = 0; ИНТ CurrentBatch = 1; foreach (var dest в пакетном Dest) { if (count >= 4) // используется для ожидания, поэтому лимит в минуту не достигается { Thread.Sleep(1 * // минут до сна 60 * // секунд до минуты 1000); счет = 0; } Запрос ComputeRouteMatrixRequest = новый ComputeRouteMatrixRequest { Origins = {new RouteMatrixOrigin { Waypoint = origin }, }, TravelMode = МаршрутTravelMode.Drive, RoutingPreference = RoutingPreference.Unspecified, }; request.Destinations.Add(dest); используя (RoutesClient.ComputeRouteMatrixStream ответ = client.ComputeRouteMatrix(запрос, callSettings)) { AsyncResponseStream responseStream = response.GetResponseStream(); в то время как (ожидайте ответаStream.MoveNextAsync()) { RouteMatrixElement responseItem = responseStream.Current; Console.WriteLine(responseItem.ToString()); динамические данные = JObject.Parse(responseItem.ToString()); индекс вар = Convert.ToInt32(data.destinationIndex); double distanceMeters = data.distanceMeters.ToObject(); # здесь не получается, потому что значения distanceMeters нет в ответе var миль = Math.Round(distanceMeters * 0,000621371, 2); } } считать += 1; текущий пакет++; Console.WriteLine(currentBatch); } Я пропустил какую-то настройку?
Google RouteAPI (google-cloud-dotnet): RouteMatrix — ROUTE_NOT_FOUND с использованием нескольких пунктов назначения ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
QtableWidget Cell Found Found Color имеет нежелательную «округлую прокладку»
Anonymous » » в форуме Python - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
QtableWidget Cell Found Found Color имеет нежелательную «округлую прокладку»
Anonymous » » в форуме Python - 0 Ответы
- 4 Просмотры
-
Последнее сообщение Anonymous
-