2013-06-05 15 views
5

Ho appena eliminato i livelli dal mio programma di mappatura e quando tento di aggiungere un nuovo layer, ricevo questo messaggio di errore.Tentativo di aggiungere sovrapposizioni all'errore mappa

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

Se qualcuno sa perché questo è che sarebbe molto apprezzato il vostro aiuto

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

Poi queste immagini vengono cancellate e un nuovo livello di zoom è caricato

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 

Tutte le immagini sono dichiarati globalmente perché sono utilizzati in altre funzioni/metodi all'interno del programma.

Sembra che stia tentando di aggiungere lo stesso layer precedentemente aggiunto e che ha difficoltà a farlo, ma tutti i livelli vengono cancellati sulla prima riga del metodo.

+0

Includi il codice nella tua domanda –

+0

okay ho fatto @AlaaMasoud –

+1

Sei mai riuscito a risolvere questo problema perché sto riscontrando lo stesso problema nella mia app? –

risposta

3

Ho avuto questo stesso problema utilizzando un poligono globale anziché un'immagine. Il problema è che anche se si chiama map1.Layers.Clear() questo non viene eseguito immediatamente dopo la chiamata, quindi è necessario creare una nuova immagine. In generale, questo può essere risolto non usando variabili globali/di istanza per l'overlay.Content ... basta dichiararlo ogni volta e assegnarlo al Contenuto.

Problemi correlati