将图像添加到MapControl的高效/正确方法 - Windows Phone 8.1

时间:2016-05-13 07:50:42

标签: windows-runtime windows-phone-8.1 windows-phone bing-maps

我正在开发一个应用程序,其中将向用户显示地图,我需要在不同的GeoPoints中将大约10-12个图像添加到地图中,每个GeoPoints的大小为1KB。

我按照以下动态添加这些图片:

Image img = new Image();
img.Height = 35;
img.Width = 35;
img.Source = new BitmapImage(new Uri("ms-appx:///Assets/myImage.png"));
img.RenderTransform = new CompositeTransform() { Rotation = item.bearing };

MapControl.SetNormalizedAnchorPoint(img, new Point(0.5, 0.5));
MapControl.SetLocation(img, new Geopoint(new BasicGeoposition() { Latitude = item.latitude, Longitude = item.longitude }));

myMap.Children.Add(img);

我的问题是

在我添加了这12张图片之后,我的地图控件变得太过拉吉,在将地图从一个位置移动到另一个位置时,它会挂起很多。

那么,是否有任何有效的方法可以在Windows Phone 8.1 App中向Map添加图像。

修改

我已尝试将MapIcons添加到地图中,但在这种情况下,MapIcons在特定缩放级别消失了,但我希望在任何缩放级别保持这些MapIcons可见。

那么有什么方法可以让MapIcons在每个缩放级别都可见?

1 个答案:

答案 0 :(得分:3)

您可以使用MapIcon类,这可以更好地处理,因为地图是本机C ++控件,因此必须做很多工作才能在地图上定位XAML元素。 MapIcon类是一个本机类,因此它渲染得更好。您需要将图像转换为RandomAccessStream,然后将其传递给MapIcon图像属性。这可能有所帮助:https://blogs.msdn.microsoft.com/going_metro/2012/05/14/working-with-streams-creating-randomaccessstreamreference-from-image-downloaded-from-web/

然后,您可以将MapIcon添加到地图MapElements属性中。