我有一种方法可以将图钉绘制到地图上,但是我需要在第一层附加第二个图钉。我猜这将涉及保存第一层,以便以后可以操作。有没有人知道我会怎么做,因为我不太确定如何保存图层?
目前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;
}
答案 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;
由您决定设置和获取此全局变量的位置。