Я пытаюсь использовать библиотеку GoogleAPI Roads для привязки к дороге.
Вызов асинхронный:
GoogleMaps.Roads.SnapToRoad.QueryAsync(request).GetAwaiter();
Но когда я запускаю код, я получаю сообщение об ошибке «Операция не поддерживается на этой платформе».
Исходный код был:
var response = await GoogleMaps.Roads.SnapToRoad.QueryAsync(request).Result;
Но для этого требуется пустота, которая делает этот вызов асинхронным, так что проблема просто перемещается на более раннюю позицию в стеке вызовов.
Я также не могу использовать OnCompleted, так как для этого сначала необходимо вызвать GetAwaiter.
Я не уверен, что я здесь делаю неправильно.
Устройство работает под управлением iOS 16.7.4, Xcode 15.2 и Visual Studio 17.8.6
РЕДАКТИРОВАНИЕ: обновлено с помощью функции асинхронной задачи
По-прежнему возникает та же ошибка:
var response = await GoogleMaps.Roads.SnapToRoad.QueryAsync(request);
Вот что у меня сейчас получилось:
public static async Task snapToRoad(List gpsPos)
{
List result = new List();
List subLists = ListExtensions.ChunkBy(gpsPos, 100);
foreach (List gPos in subLists)
{
Coordinate[] requestPath = gPos
.Select(geo => new Coordinate((double)geo.Latitude, (double)geo.Longitude))
.ToArray();
SnapToRoadsRequest request = new SnapToRoadsRequest
{
Key = MAPS_KEY,
Path = requestPath
};
var response = await GoogleMaps.Roads.SnapToRoad.QueryAsync(request);
foreach (SnappedPoint sp in response.SnappedPoints)
{
result.Add(new Position(sp.Location.Latitude, sp.Location.Longitude));
}
}
return result;
}
Он вызывается новым потоком, который запускается событием нажатия кнопки:
async void btnSomething_Click(object sender, EventArgs e)
{
Thread trd = new Thread(async () =>
{
var snapped = await MapUtils.snapToRoad(rawCordList);
});
trd.IsBackground = true;
trd.Start();
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... s-platform
C# Maui iOS GetAwaiter Operation не поддерживается на этой платформе ⇐ IOS
Программируем под IOS
1712817164
Anonymous
Я пытаюсь использовать библиотеку GoogleAPI Roads для привязки к дороге.
Вызов асинхронный:
GoogleMaps.Roads.SnapToRoad.QueryAsync(request).GetAwaiter();
Но когда я запускаю код, я получаю сообщение об ошибке «Операция не поддерживается на этой платформе».
Исходный код был:
var response = await GoogleMaps.Roads.SnapToRoad.QueryAsync(request).Result;
Но для этого требуется пустота, которая делает этот вызов асинхронным, так что проблема просто перемещается на более раннюю позицию в стеке вызовов.
Я также не могу использовать OnCompleted, так как для этого сначала необходимо вызвать GetAwaiter.
Я не уверен, что я здесь делаю неправильно.
Устройство работает под управлением iOS 16.7.4, Xcode 15.2 и Visual Studio 17.8.6
[b]РЕДАКТИРОВАНИЕ: обновлено с помощью функции асинхронной задачи[/b]
По-прежнему возникает та же ошибка:
var response = await GoogleMaps.Roads.SnapToRoad.QueryAsync(request);
Вот что у меня сейчас получилось:
public static async Task snapToRoad(List gpsPos)
{
List result = new List();
List subLists = ListExtensions.ChunkBy(gpsPos, 100);
foreach (List gPos in subLists)
{
Coordinate[] requestPath = gPos
.Select(geo => new Coordinate((double)geo.Latitude, (double)geo.Longitude))
.ToArray();
SnapToRoadsRequest request = new SnapToRoadsRequest
{
Key = MAPS_KEY,
Path = requestPath
};
var response = await GoogleMaps.Roads.SnapToRoad.QueryAsync(request);
foreach (SnappedPoint sp in response.SnappedPoints)
{
result.Add(new Position(sp.Location.Latitude, sp.Location.Longitude));
}
}
return result;
}
Он вызывается новым потоком, который запускается событием нажатия кнопки:
async void btnSomething_Click(object sender, EventArgs e)
{
Thread trd = new Thread(async () =>
{
var snapped = await MapUtils.snapToRoad(rawCordList);
});
trd.IsBackground = true;
trd.Start();
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78304854/c-sharp-maui-ios-getawaiter-operation-is-not-supported-on-this-platform[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия