【问题标题】:Add more than one coordination to windows phone 8 map为 windows phone 8 地图添加多个坐标
【发布时间】:2013-01-15 08:03:28
【问题描述】:

我的 wp8 应用程序从 xml 加载了不同的坐标,所有坐标都应该显示在地图中?我的应用程序中的所有内容都是动态创建的,因此我以编程方式创建地图并添加 maplayer 和 mapoverlay。但似乎我不能向 maplayer 添加多个 mapoverlay。请帮帮我。

MapOverlay myLocationOverlay = new MapOverlay();
                myLocationOverlay.Content = pinIMG;
                myLocationOverlay.PositionOrigin = new Point(0.5, 0.5);
                myLocationOverlay.GeoCoordinate = new GeoCoordinate(57.724611, 12.938945);

MapOverlay myLocationOverlay2 = new MapOverlay();
                myLocationOverlay2.Content = pinIMG;
                myLocationOverlay2.PositionOrigin = new Point(0.5, 0.5);
                myLocationOverlay2.GeoCoordinate = new GeoCoordinate(57.724155, 12.939023);

MapLayer myLocationLayer = new MapLayer();
myLocationLayer.Add(myLocationOverlay);
myLocationLayer.Add(myLocationOverlay2);
MyMap.Layers.Add(myLocationLayer);

它适用于一个 mapoverlay 但不是两个。

【问题讨论】:

标签: windows-phone-8


【解决方案1】:

通过使用您的示例,我发现将相同的 Image 对象分配给 MapOverlays' 内容变量不起作用(引发调试异常)。给MapOverlays 一个唯一的Image 对象是解决方案:

假设您使用的是位图图像,那么这就足够了:

BitmapImage bmp = new BitmapImage(new Uri("/Assets/pinIMG.png", UriKind.Relative));

System.Windows.Controls.Image pinIMG1 = new System.Windows.Controls.Image();
pinIMG1.Source = bmp;

System.Windows.Controls.Image pinIMG2 = new System.Windows.Controls.Image();
pinIMG2.Source = bmp;

// MapOverlay and MapLayer setup (each overlay gets its on pinIMG...)

听起来您可能在从 XML 加载坐标时使用循环来生成 MapOverlays。如果是这种情况,只需在每次循环中设置一个新图像,而不是在循环的每次迭代中重复使用相同的实例。

【讨论】:

    【解决方案2】:

    请在另一个帖子中查看我对这个问题的回答@How can I add programmatically add a PushPin, and could I make it have a custom image?

    短版本是您可以在单个 MaPlayer 中以编程方式生成多个 MapOverlay,或者您可以使用 MapExtensions 图钉数据绑定来为您执行此操作。

    另外,您的代码中存在错误。您不能将相同的 UIElement(在本例中为 Image)添加到可视树两次。正如 user8709 所说,您应该为每个 MapOverlay 创建一个新的 UIElement。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多