【问题标题】:Efficient/Proper way to add Images to MapControl - windows phone 8.1将图像添加到 MapControl 的有效/正确方法 - windows phone 8.1
【发布时间】:2016-05-13 07:50:41
【问题描述】:

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

编辑:

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

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

【问题讨论】:

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


    【解决方案1】:

    您可以改用 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 属性中。

    【讨论】:

    • 所以,当我将 MapIcon 添加到 MapControl 时,MapIcon 将仅在特定缩放级别上可见。当我缩小时,MapIcons 消失了...在我的场景中,我想在地图上的任何缩放级别保持这些 MapIcons 可见...这可能吗..Please help me 并感谢您的建议
    • 在这种情况下,您只能使用 XAML 元素,这会导致您遇到性能问题。请注意,XAML 元素的性能在 UWP 地图控件中得到了很大改进。
    猜你喜欢
    • 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
    相关资源
    最近更新 更多