3
我創建的地圖使用MapLayer和MapOverlay我自己的路/折線路徑/折線,通過GPS採集的所有點都存儲在一個結構,這樣我可以訪問它們。任何時候。對應的變換地圖縮放/移動操作
現在,我想的路徑,在地圖是由用戶(縮放,地圖復位)操縱,因此路徑仍然加入同一分同一時間變換。到目前爲止,我的方法是非常消耗CPU,看起來很糟糕
GeocoordinateList _coordinates;
MapLayer pointsLayer;
private void MyMap_ZoomLevelChanged(object sender, MapZoomLevelChangedEventArgs e)
{
repositionPoints(); // This is done other way but for the sake of brevity
}
private void repositionPathPoints()
{
try
{
Polyline path = (Polyline)pointsLayer.First(TrackPath).Content; // retrieves MapOverlay corresponding to line
path.Points.Clear();
path.Points = new PointCollection();
foreach (Geocoordinate coord in _coordinates)
{
path.Points.Add(MyMap.ConvertGeoCoordinateToViewportPoint(coord));
}
}
catch (Exception exc)
{
Debug.WriteLine(exc.Message);
}
}
是否有任何更有效的方法來使用XAML方法來做到這一點?我發現this old thread關於如何縮放地圖,但我的情況下,由地圖存儲在縮放級別爲1只是一個數值20,每跳變焦沒有跡象顯示的規模%。
如果你打算至少投降,你可以提供一些關於問題有什麼問題的反饋。 –