Недействительные учетные данные с Bing Maps на WP7, WPF, VS2010 - PullRequest
0 голосов
/ 07 февраля 2012

У меня есть ключ от http://www.bingmapsportal.com, и я добавил следующий код в свой проект, как было продемонстрировано в Интернете.

В файле .xaml:

my:Map Height="320" HorizontalAlignment="Stretch" Name="map1" VerticalAlignment="Top" CredentialsProvider="fa0bb238-62bb-41b9-a1e6-459a5e9564a6"/>

(ключ был слегка отредактирован, чтобы избежать злоупотреблений)

В файле .xaml.cs:

map1.CredentialsProvider = new ApplicationIdCredentialsProvider("fa0bb238-62bb-41b9-a1e6-459a5e9564a6");
GeocodeRequest gReq = new GeocodeRequest();
GeocodeServiceClient gSrvc = new GeocodeServiceClient("BasicHttpBinding_IGeocodeService");

gReq.Credentials = new Credentials();
gReq.Credentials.ApplicationId = "fa0bb238-62bb-41b9-a1e6-459a5e9564a6".ToUpper();

gReq.Query = address;

FilterBase[] filters = new FilterBase[2];
filters[0] = new ConfidenceFilter() { MinimumConfidence = Confidence.High };

GeocodeOptions gOpt = new GeocodeOptions();
gOpt.Filters = filters;
gReq.Options = gOpt;

gSrvc.GeocodeCompleted += new EventHandler<GeocodeCompletedEventArgs>(gSrvc_GeocodeCompleted);
gSrvc.GeocodeAsync(gReq);

Но я не могу заставить его работать, я получаю сообщение с недействительными учетными данными на самой карте и исключение Invalid Credentials с ответом сервера на GeocodeRequest.

Я посетил около 20 тем форума (включая Ошибка «Недопустимые учетные данные» в WP7 Bing Maps ), и я, кажется, сделал все, о чем они говорят, или опубликовал в качестве решения.

Есть еще идеи?

1 Ответ

2 голосов
/ 07 февраля 2012

Вот как я инициализирую GeocodeRequest в WP7:

GeocodeService.GeocodeRequest request = new GeocodeService.GeocodeRequest
{
    Culture = CultureInfo.CurrentUICulture.ToString(),
    Credentials = new GeocodeService.Credentials { ApplicationId = applicationId },
    UserProfile = new GeocodeService.UserProfile { DeviceType = GeocodeService.DeviceType.Mobile },
    Options = new GeocodeService.GeocodeOptions { Count = 1 },
    Query = address,
};

Как вы можете видеть, я не делаю ToUpper () в строке ApplicationId, но я устанавливаю UserProfile (а такжеКультура) собственность.Возможно, настройка UserProfile.DeviceType = Mobile должна соответствовать типу вашего ключа API Bing Map, который также является мобильным.

Может быть, это как-то полезно.

...