尝试添加叠加到映射错误
本文关键字:映射 错误 叠加 添加 | 更新日期: 2023-09-27 18:16:56
我刚刚从我的映射程序中清除了图层,当我试图添加一个新图层时,我收到这个错误消息。
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
所有的图像都是全局声明的,因为它们在程序内的其他函数/方法中使用。
它似乎试图添加先前添加的相同图层,并且很难这样做,但是在方法的第一行清除了所有图层。
我在使用全局多边形而不是图像时遇到了同样的问题。问题是,即使你正在调用map1.Layers.Clear(),这并没有在它被调用后立即完成,因此你需要创建一个新的图像。一般来说,这可以通过不使用全局/实例变量来解决。只需每次声明它并将其分配给Content。