Прежде всего я хочу извиниться за английский.
Я разрабатываю приложение для магазина Windows 8.1. На языке C ++ / CX. Мое решение содержит несколько проектов. Один из проектов имеет «Среда выполнения Windows» введите и выполните геокодирование и обратное геокодирование.
Для геокодирования я использую «Bing Maps SDK для приложений Магазина Windows 8.1» (ссылка на сайт).
Вот мой алгоритм:
void addressByLocation(double latitude, double longitude)
{
ResourceLoader^ loader = ref new ResourceLoader();
String^ credentials = loader->GetString("BingMapCredentials");
Location^ location = ref new Location(latitude, longitude);
ReverseGeocodeRequestOptions^ requestOptions = ref new ReverseGeocodeRequestOptions(location);
Map^ map = ref new Map();
map->Credentials = credentials;
SearchManager^ searchManager = map->SearchManager;
task<LocationDataResponse^> reverseGeocodeTask(searchManager->ReverseGeocodeAsync(requestOptions));
reverseGeocodeTask.then([=](LocationDataResponse^ response)
{
if (!response->HasError)
{
//
}
});
}
У меня проблема в этой строке:
Map^ map = ref new Map();
Он всегда генерирует исключение с текстом:
«Platform :: DisconnectedException ^ в ячейке памяти 0x0396DF80.
HRESULT: 0x80010108 Вызванный объект отключился от своих клиентов.
Информация WinRT: вызванный объект отключился от своих клиентов. «
Но я заметил что-то странное. Если добавить проект к решению, которое содержит UI (xaml), мой код в этом проекте работает отлично, без каких-либо исключений.
Может кто-нибудь указать мне ошибку?
Или объясните это странное поведение.
Вероятно, существуют другие способы выполнения геокодирования для приложений магазина Windows 8.1, которых я пока не знаю.
Благодарю.
Задача ещё не решена.
Других решений пока нет …