缩放会导致Bing地图中出现(重)问题

时间:2011-01-06 22:02:40

标签: bing-maps windows-phone

你好我在Bing Map控件上遇到了一些问题。

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

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

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

应用程序无例外地退出...
我在有和没有调试器的真实设备上测试过它,而调试器只是说他丢失了与设备的连接。

任何人都有这样或类似的问题并希望能解决它吗?

感谢您的帮助。

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

1 个答案:

答案 0 :(得分:2)

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

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

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