1

您好,我在使用 Bing 地图控件时遇到了一些问题。

如果我放大到折线附近,它们开始消失(从下到上,从右到左)
折线是通过绑定到我自己的 LocationData 集合的 ItemsControl(包含在地图命名空间中的)动态生成的从由 IValueConverter 转换为地图特定 LocationPoints 的 ViewModel。
在加载的事件中设置了一些无法从 ViewModel 访问的值。
地图和容器在整个屏幕上延伸。

因此,如果线条开始消失并且我通过 ApplicationBar 中的按钮缩小

private void ZoomOut_Click(object sender, RoutedEventArgs e)
{
    map1.ZoomLevel -= 1.0;
}

应用程序毫无例外地退出......
我已经在带有和不带调试器的真实设备上对其进行了测试,调试器只说他已经失去了与设备的连接。

任何人都有这个或类似的问题,并希望解决它?

谢谢你的帮助。

PS:我的 LocationData 包含大约 100 - 200 个点,这些点被分成 3 - 7 行,不能太多,或者?

4

1 回答 1

2

是的,数百分太多了,但这是你的问题中最少的。您对此进行编码的方式是,每次平移或缩放时,您都在重新转换和重新绘制您的点。

  • 不要使用类型转换器。转换一次您的点,缓存转换后的点并绑定到转换后的点。
  • 研究四叉树以及它们如何应用于根据缩放级别按比例剔除您的点集。
  • 应用剪切矩形。根据我的经验,显示区域的每一侧大半度效果很好。
  • 研究 Bing 地图事件模型并重新设计您的代码,以便您仅在地图操作停止时进行剔除、剪辑和绘图。
  • 理想情况下,编写你的剔除、剪辑和绘图逻辑,使其异步并且可以发出中止信号,这样如果在剔除、剪辑和绘图完成之前重新开始操作,它可以被中止并重新启动。

使用上述技术,我可以获得与内置地图相当的性能。

于 2011-08-02T06:47:36.577 回答