2011-01-06 71 views
1

您好,我在Bing地圖控件中存在一些問題。使用折線在Bing地圖中縮放導致(重)問題

如果我放大到靠近結合到他們開始消失(從底部到頂部,並從右到左)的折線
的折線與一個ItemsControl(即一個被包括在地圖名稱空間)動態生成的我從ViewModel中將自己的LocationData集合由IValueConverter轉換爲特定於地圖的LocationPoints。
在加載的事件中設置了一些無法從ViewModel訪問的值。
地圖和容器在整個屏幕上延伸。

因此,如果線開始消失,我通過一個按鈕在我的應用程序任務欄縮小

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

退出應用程序無一例外...
我已經使用和不使用調試器測試它在真實設備上調試器只會說他已經失去了與設備的連接。

任何人有這個或類似的問題,並希望解決它?

感謝您的任何幫助。

PS:我的位置數據包含大約100 - 200個點,分成3 - 7行,不能太多或?

回答

2

是的,數百分太多了,但這是你的問題中最少的。您編碼的方式,每當有平移或縮放時,都會重新轉換並重新繪製您的點。

  • 請勿使用類型轉換器。將點轉換一次,緩存轉換的點並綁定到轉換的點。
  • 研究四叉樹以及它們如何應用於按比例縮放您的點集。
  • 應用剪切矩形。根據我的經驗,您的顯示區域的每一側都有半個大的尺寸。
  • 研究Bing地圖事件模型並重新設計代碼,以便在地圖操作停止時僅進行剔除,剪輯和繪圖。
  • 理想情況下,編寫您的剔除,剪輯和繪圖邏輯,以便它們是異步的,並可用信號通知中止,這樣如果在剔除,剪輯和繪圖完成之前重新執行操作,它可以被中止並重新啓動。

使用上述技術,我可以獲得與內置地圖相媲美的性能。