如何保存并附加到地图图层?

时间:2014-03-30 17:08:05

标签: c# windows-phone-8 bing-maps

我有一种方法可以将图钉绘制到地图上,但是我需要在第一层附加第二个图钉。我猜这将涉及保存第一层,以便以后可以操作。有没有人知道我会怎么做,因为我不太确定如何保存图层?

目前DrawPushPin方法在应用程序中被调用两次,所以第一次创建一个新图层并且第二次相同,但这并不理想,因为我需要追加到第一层而不是创建一个新图层。

这个方法就像这个DrawPushPinCurrent(MyGeoPosition, pushPinName);一样被调用,下面是draw方法。

private void DrawPushPin(GeoCoordinate MyGeoPosition,string pushPinName)
        {
            MapLayer layer1 = new MapLayer();
            Pushpin pushpin1 = new Pushpin();

            pushpin1.GeoCoordinate = MyGeoPosition;
            pushpin1.Content = pushPinName;


            MapOverlay overlay1 = new MapOverlay();
            overlay1.Content = pushpin1;
            overlay1.GeoCoordinate = MyGeoPosition;
            layer1.Add(overlay1);

            MyMap.Layers.Add(layer1);
            MyMap.Center = MyGeoPosition;
            MyMap.ZoomLevel = 15;


        }

1 个答案:

答案 0 :(得分:-1)

我要做的是将MapLayer移到方法之外并使它们成为全局的(在类级别)。然后我会创建另一种方法:

MapLayer layer1;

public MyClass()
{
   layer1 = new MapLayer;
}

private void AppendPushpin(GeoCoordinate MyGeoPosition, string pushpinName)
{
   Pushpin pushpin1 = new Pushpin();

   pushpin1.GeoCoordinate = MyGeoPosition;
   pushpin1.Content = pushPinName;

   MapOverlay overlay1 = new MapOverlay();
   overlay1.Content = pushpin1;
   overlay1.GeoCoordinate = MyGeoPosition;
   layer1.Add(overlay1);
}

*编辑

在您的情况下,您需要在应用程序范围内存储该变量,您可能希望保持MapLayer对象执行以下操作:

Windows.Storage.ApplicationDataContainer localSettings =   Windows.Storage.ApplicationData.Current.LocalSettings;
localSettings.Values["MapLayer"] = layer1;

由您决定设置和获取此全局变量的位置。