我创建了一个大地图帐户并生成了CredentialsProvider
密钥。
我在使用以下内容编写的测试应用程序中使用了它:
<wpf:Map CredentialsProvider="MyCredentialsProviderKey" Width="250" Height="250"/>
地图显示,一切都像发条一样。
我已将所有这些移动到我的生产项目中,每当地图显示时我都会得到Invalid Credentials
。相同的密钥,与测试项目相同的一切。
我对于为什么会发生这种情况感到非常困惑。我在这里已经阅读了一些答案,有些建议设置Culture
属性,我已经这样做了,但没有用。
显然有一些属性或设置会导致这种行为。
答案 0 :(得分:0)
我找到了问题的解决方案,虽然它并不优雅。
我创建了IMultiValueConverter
,其中包含Latitude
,Longitude
,Map
(Bing地图控件),并返回Location
(已使用)通过大地图控制)。
这是我的XAML:
<wpf:Map Width="250" Height="250" x:Name="BingMapControl">
<wpf:Pushpin>
<wpf:Pushpin.Location>
<MultiBinding Converter="{StaticResource LatitudeLongitudeToLocationConverter}">
<Binding Path="LatitudeCoordinate"/>
<Binding Path="LongitudeCoordinate"/>
<Binding Path="." ElementName="BingMapControl"/>
</MultiBinding>
</wpf:Pushpin.Location>
</wpf:Pushpin>
</wpf:Map>
在该转换器中,我打了这个电话:
var cp = map.CredentialsProvider as ApplicationIdCredentialsProvider;
if (string.IsNullOrEmpty(cp.ApplicationId))
cp.ApplicationId = "MyBingMapKey";
当我尝试在CredentialsProvider
内执行此操作时,为什么XAML
未被设置,这仍然令我感到困惑。