2013-06-05 5 views
5

マッピングプログラムからレイヤーをクリアしました。新しいレイヤーを追加しようとすると、このエラーメッセージが表示されます。マップエラーにオーバーレイを追加しようとしました

newSystem.ArgumentException was unhandled by user code 
HResult=-2147024809 
Message=Value does not fall within the expected range. 
Source=System.Windows 
InnerException: 

これは、私は非常に多くのあなたの援助

private void loadZoomLevel12Pics() 
    { 
     map1.Layers.Clear(); 
     MapLayer pinLayer = new MapLayer(); 
     // Create a new empty Pushpin 
     // Beny Sur- Mer War Cemetary 
     MapOverlay pinOverlay = new MapOverlay(); 
     // Add the location of the Pushpin using latitude and longitude. 
     pinOverlay.GeoCoordinate = new GeoCoordinate(49.33783000, -0.45215600); 
     //Image pinOverlayImage = new Image(); 
     pinOverlayImage.Source = new BitmapImage(new Uri("images/Hedgehog.png", UriKind.Relative)); 
     pinOverlay.Content = pinOverlayImage; 
     pinOverlay.PositionOrigin = new Point(0.0, 0.0); 
     pinOverlayImage.Opacity = 0.8; 
     pinOverlayImage.Height = 8; 
     pinOverlayImage.Width = 8; 
     pinOverlayImage.Tap += pinOverlayImage_Tap; 
     pinLayer.Add(pinOverlay); 
     map1.Layers.Add(pinLayer); 

をいただければ幸い次に、これらの画像がクリアされ、新たなズームレベルが

private void loadZoomLevel13Pics() 
    { 
     map1.Layers.Clear(); 
     MapLayer pinLayer = new MapLayer(); 
     // Create a new empty Pushpin 
     // Beny Sur- Mer War Cemetary 
     MapOverlay pinOverlay = new MapOverlay(); 
     // Add the location of the Pushpin using latitude and longitude. 
     pinOverlay.GeoCoordinate = new GeoCoordinate(49.33783000, -0.45215600); 
     //Image pinOverlayImage = new Image(); 
     pinOverlayImage.Source = new BitmapImage(new Uri("images/Hedgehog.png", UriKind.Relative)); 
     pinOverlay.Content = pinOverlayImage; 
     pinOverlay.PositionOrigin = new Point(0.0, 0.0); 
     pinOverlayImage.Opacity = 0.8; 
     pinOverlayImage.Height = 30; 
     pinOverlayImage.Width = 30; 
     pinOverlayImage.Tap += pinOverlayImage_Tap; 
     pinLayer.Add(pinOverlay); 
     map1.Layers.Add(pinLayer); // THIS IS THE LINE CAUSING THE PROBLEM 

画像のすべてをロードされている理由を誰もが知っている場合プログラム内の他の関数/メソッドで使用されるため、グローバルに宣言されます。

以前に追加された同じレイヤーを追加しようとしているようだが、これを行うのが難しいですが、すべてのレイヤーがメソッドの最初の行で消去されます。

+0

あなたの質問にコードを含めてください。 –

+0

大丈夫でしたか@AlaaMasoud –

+1

私はアプリで同じ問題が発生しているので、これを解決できましたか? –

答えて

3

画像の代わりにグローバルポリゴンを使って同じ問題が発生しました。問題は、あなたがmap1.Layers.Clear()を呼び出していても、呼び出された直後には実行されないため、新しい画像を作成する必要があるということです。一般的には、オーバーレイのグローバル/インスタンス変数を使用しないことでこれを修正できます。コンテンツ...毎回宣言してコンテンツに割り当てます。

関連する問題