Ich verwende derzeit das Silverlight Map Control für WP7 und versuche, eine Wegbeschreibung auf der Karte zu visualisieren. Um die benötigte Route zu markieren, verwende ich ein MapLayer
mit einer MapPolyline
. Das Problem ist, dass selbst mit CacheMode
eingestellt auf BitmapCache
wird der MapPolyline-Bereich immer dann neu gezeichnet, wenn der Benutzer die Karte verschiebt oder vergrößert. Ich habe andere Steuerelemente wie Ellipsen oder Pushpins verwendet, und mit BitmapCache auf, keiner von ihnen neu zu zeichnen und geben die gleiche Leistung Hit als MapPolyline.
Hier ein kurzes Beispiel
<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>
Wenn Sie die App.Current.Host.Settings.EnableRedrawRegions = true;
können Sie sehen, wie das Bild neu gezeichnet wird. Die Leistung ist besonders schlecht, wenn Sie eine größere Polylinie haben und näher heranzoomen.
Gibt es irgendetwas, das man tun kann, um zu helfen? Die native Bing Maps hat eine ziemlich glatte Route Zeichnung, so würde ich denken, dass es eine Möglichkeit, dies zu lösen sein sollte?
Danke!