Я использую Bing Maps API для создания изображений из определенных мест с помощью пакета NuGet BotFramework-Location. (Какой код можно найти здесь)
Иногда это работает, но иногда изображения не загружаются из-за ошибки в вызове Rest (который вызывается BotFramework, а не мной)
Это мой код:
IGeoSpatialService geoService = new AzureMapsSpatialService(this.azureApiKey);
List < Location > concreteLocations = new List < Location > ();
foreach(String location in locations) {
LocationSet locationSet = await geoService.GetLocationsByQueryAsync(location);
concreteLocations.AddRange(locationSet ? .Locations);
}
// Filter out duplicates
var seenKeys = new HashSet < String > ();
var uniqueLocations = new List < Location > ();
foreach(Location location in concreteLocations) {
if (seenKeys.Add(location.Address.AddressLine)) {
uniqueLocations.Add(location);
}
}
concreteLocations = new List < Location > (uniqueLocations.Take(5));
if (concreteLocations.Count == 0) {
await context.PostAsync("No dealers found.");
context.Done(true);
} else {
var locationsCardReply = context.MakeMessage();
locationsCardReply.Attachments = new LocationCardBuilder(this.bingApiKey, new LocationResourceManager()).CreateHeroCards(concreteLocations).Select(card => card.ToAttachment()).ToList();
locationsCardReply.AttachmentLayout = AttachmentLayoutTypes.Carousel;
await context.PostAsync(locationsCardReply);
}
Причина, по которой отображаются не все изображения, заключается в том, что вызов Rest для Bing Maps API возвращает следующее:
mapArea: значение этого параметра вне допустимого диапазона.
Вот один из URI изображений, которые не работают (я удалил свой ключ):
Кто-нибудь знает, что я делаю неправильно?