我一直在使用MapControl制作一个UWP应用程序,但当我运行该应用程序时,我在底部角落得到一个错误,说"警告:MapServiceToken未指定"。我使用的XAML如下所示:
<Maps:MapControl x:Name="MapControl1" Loaded="mapLoaded" ZoomLevelChanged="mapZoomChanged" MapServiceToken="AqK9nK0h_LngGSC8pHPzBJvl62yf617zRytgimB3fyYqdJPljcB-EGm3llmUUrlI"/>
正如你所看到的,我已经指定了MapServiceToken,我也尝试使用c#指定它,但没有运气。
MapService.ServiceToken = "AqK9nK0h_LngGSC8pHPzBJvl62yf617zRytgimB3fyYqdJPljcB-EGm3llmUU...";
MapControl1.MapServiceToken = "AqK9nK0h_LngGSC8pHPzBJvl62yf617zRytgimB3fyYqdJPljcB-EGm3llmU...";
我已经使用www.bingmapsportal.com来获取令牌,但我也尝试过使用Windows开发中心的应用程序ID和身份验证令牌。什么好主意吗?
注意:对于那些可能使用Windows 8平台的旧密钥的用户
将旧密钥更新为通用Windows平台类型似乎有问题。我有一个在2014年创建的密钥,但即使在我将密钥更新到Universal Windows之后,当我将密钥放在XAML的MapServiceToken值中时,它仍然不会授权。(当你改变键的类型时,键本身的值似乎永远不会改变,即使它应该用一个新值更新)
为了解决这个问题,你必须创建一个全新的应用程序密钥并使用该值,然后警告信息将消失
我有同样的问题,但这是我的解决方案。
首先导航到https://www.bingmapsportal.com/Application。查找链接创建新密钥
在表单中,填写Application type
字段。可用的选项有:
-
Dev/Test
-
Mobile Application
-
Website
-
Windows Application
即使你正在开发Xamarin。表单项目(直观上是一种移动应用程序),你必须选择Windows Application
而不是Mobile Application
。为什么?原因可能是"UWP是一个Windows应用程序"。时期。
不这样做将触发警告。
登录Microsoft Dev帐户并导航到此URI
https://www.bingmapsportal.com/Application
这里可以获得Universal的Key。
它可以在XAML MapServiceToken中设置,工作良好!
您也可以直接登录Bing Maps生成密钥。
https://www.bingmapsportal.com/My Account -> My keys
对于UWP,此键相当长。
仅供参考,当我使用MapServiceToken属性为MapControl添加XAML键时,应用程序崩溃了我的计算机。然后当我重新启动它时,应用程序运行良好。
阅读微软文档https://learn.microsoft.com/en-us/windows/uwp/maps-and-location/authentication-key
生成新密钥并添加到MapControl MapServiceToken中。