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

Kev*_*lia 6 bing-maps windows-phone windows-runtime windows-phone-8.1

我正在开发一个应用程序,其中地图将显示给用户,我需要在地图上添加大约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);
Run Code Online (Sandbox Code Playgroud)

我的问题是

在我添加了这12张图像之后,我的地图控件变成了Soo Laggy,在将地图从一个位置移动到另一个位置时,它会挂起很多.

那么,有没有有效的方法在Windows Phone 8.1 App中向Map添加图像.

编辑:

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

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

rbr*_*itt 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 属性中。