首页 文章

Bing Maps控件导致手机冻结?

提问于
浏览
0

我在Windows Phone 8应用程序的页面中的XAML中创建了Bing Maps Control( Microsoft.Phone.Controls.Maps.Map ) .

<maps:Map x:Name="map" CredentialsProvider="..." MapResolved="map_MapResolved"   ViewChangeStart="map_ViewChangeStart">
</maps:Map>

我在 Map 上总共添加了六个 MapTileLayer 类 . 所有这些层都会导致 Map 的功能比正常情况略慢,但并非不可接受 .

当我在我的三部手机中的两部手机(诺基亚Lumia 920,诺基亚Lumia 1020)上运行应用程序时,它可以正常工作大约半分钟 . 然后,整个手机冻结,必须强行重启 . 如果我减少了我在 Map 上使用的图层数量,则会减少此问题的频率 . 但是,我必须有六层 . 我也必须使用WP7 Bing Maps控件,我不能使用WP8诺基亚 Map 控件 .

该应用程序适用于我的Lumia 1520,这并不奇怪,因为它比其他两个快得多 .

关于可能导致这个问题的任何想法,或者我可以去确定原因?

谢谢

1 回答

  • 0

    我怀疑您的问题的根源是正在进行的Web请求的数量 . 通常使用1280x720分辨率的屏幕(Lumia 920具有此功能),每个图块层至少会有15个图块加载到视图中 . 每次将 Map 移动到新区域时,都会请求更多的图块 . 因此,如果您有6个图层,则可以轻松地一次请求和下载90个 Map 图块 . 如果您没有使用WIFI连接,您可能会发现加载很多瓷砖的速度非常慢 .

    一种可能会加快速度的可能解决方案是创建一种代理服务,该服务将来自各层的切片组合到一个切片中 . 因此,如果有人请求tile abc,则首先将不同层的所有切片加载到服务中并合并为单个图像并返回到设备 . 您可以使用C#中的Generic处理程序和.NET绘图工具相当容易地完成此操作 . 这是一篇同样的博文:http://rbrundritt.wordpress.com/2009/11/27/bing-maps-custom-tile-skinner/

相关问题