我目前正在使用WP7的Silverlight地图控件,我正在尝试在地图上显示行车路线。为了突出显示所需的路线,我使用MapLayer
和MapPolyline
。问题是即使将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映射具有非常流畅的路由绘制,所以我认为应该有办法解决这个问题吗?
谢谢!
答案 0 :(得分:0)
你能解释一下问题是什么吗?
我有一个应用程序 - RunSat - 我在其中绘制了数百个点的折线(例如我只看了3个小时的自行车骑行)并且这很好 - 包括在缩放操作期间。
我不明白这个问题 - 即使使用上面的示例代码。要提供帮助 - 您是在手机上还是在模拟器上进行测试?
对于CacheMode和BitmapCache,我真的不确定如何将这些设置用于地图 - 如果有帮助,我不会在RunSat中使用它们 - 我只是单独留下手机来制作自己的GPU绘图。 / p>