2013-06-05 1 views
5

J'ai juste effacé des couches de mon programme de mappage et lorsque j'essaye d'ajouter un nouveau calque, je reçois ce message d'erreur.Essayer d'ajouter des superpositions pour mapper l'erreur

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

Si quelqu'un sait pourquoi est-ce que je serais très reconnaissant de votre aide

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); 

Ensuite, ces photos sont remis à zéro et un nouveau niveau de zoom est chargé

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 

Toutes les images sont déclarés globalement car ils sont utilisés dans d'autres fonctions/méthodes du programme.

Il semble que ce soit en essayant d'ajouter le même calque qui a été ajouté précédemment et qui a de la difficulté à le faire, mais tous les calques sont effacés sur la première ligne de la méthode.

+0

Inclure le code dans votre question –

+0

okay J'ai fait @AlaaMasoud –

+1

Avez-vous déjà réussi à résoudre ce problème, car je vois le même problème dans mon application? –

Répondre

3

J'ai eu ce même problème en utilisant un polygone global au lieu d'une image. Le problème est que même si vous appelez map1.Layers.Clear() cela ne se fait pas immédiatement après son appel, vous devez donc créer une nouvelle image. En général, cela peut être corrigé en n'utilisant pas de variables globales/d'instance pour la superposition. Conteneur ... déclarez-le à chaque fois et assignez-le au contenu.

Questions connexes