有没有办法让MapPolyline在WP7上有更好的性能

时间:2011-03-02 02:38:45

标签: silverlight performance windows-phone-7 bing-maps

我目前正在使用WP7的Silverlight地图控件,我正在尝试在地图上显示行车路线。为了突出显示所需的路线,我使用MapLayerMapPolyline。问题是即使将CacheMode设置为BitmapCache,只要用户平移或缩放地图,MapPolyline区域就会重新绘制。我已经使用了其他控件,如Ellipses或Pushpins,并且使用BitmapCache,它们都不会重绘并提供与MapPolyline相同的性能。

这是一个简单的例子

    <maps:Map ZoomLevel="3">
        <maps:MapPolyline Name="line" Stroke="Red" StrokeThickness="9">
            <maps:MapPolyline.CacheMode>
                <BitmapCache/>
            </maps:MapPolyline.CacheMode>
            <maps:MapPolyline.Locations>
                <maps:LocationCollection>
                    <geo:GeoCoordinate Latitude="33" Longitude="33"/>
                    <geo:GeoCoordinate Latitude="36" Longitude="33"/>
                    <geo:GeoCoordinate Latitude="33" Longitude="36"/>
                </maps:LocationCollection>
            </maps:MapPolyline.Locations>
        </maps:MapPolyline>       
    </maps:Map>

如果设置App.Current.Host.Settings.EnableRedrawRegions = true;,则可以看到重绘的情况。如果您有更大的折线并且放大更近,性能会特别差。

有什么可以帮助的吗?本地Bing映射具有非常流畅的路由绘制,所以我认为应该有办法解决这个问题吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

你能解释一下问题是什么吗?

我有一个应用程序 - RunSat - 我在其中绘制了数百个点的折线(例如我只看了3个小时的自行车骑行)并且这很好 - 包括在缩放操作期间。

我不明白这个问题 - 即使使用上面的示例代码。要提供帮助 - 您是在手机上还是在模拟器上进行测试?

对于CacheMode和BitmapCache,我真的不确定如何将这些设置用于地图 - 如果有帮助,我不会在RunSat中使用它们 - 我只是单独留下手机来制作自己的GPU绘图。 / p>