Bonjour à tous,

Je développe une application en Silverlight utilisant une Google Map. J’exécute mes scriptes javascript une commande silverlight afin de dessiner un circuit. Mon circuit est en fait une succession de plusieurs point que je relies ensuite. Tout fonctionne très bien mais le problème est que pendant que le circuit se dessine, mon UI est bloqué (les animations se figent par exemple).

Je me dis donc qu'il faudrais réduire le temps de dessin sur ma carte afin de figer l'UI le moins longtemps possible.

Voici comment je dessine mes circuit.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
foreach (Point _point in ListPoints)
{
     CallJavascriptFunction( "AddWaypointToList", PT_LAT.ToString().Replace(",", "."),PT_LNG.ToString().Replace(",", ".") );
}
CallJavascriptFunction( "DrawWaypointPolyline");
Le CallJavascriptFunction me permet d'executer mes script javascript

voici maintenant le code JS :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
//Represent a list of WayPoint
var WaypointCoordinates = [];
var WptCount = 0;
 
//Add a coordiante to the list of Waypoint and draw a little circle at each point
function AddWaypointToList(_WayPointNumber, _lat, _lng) {
    var _LatLng = new google.maps.LatLng(_lat, _lng);
 
    var _myCircle = {
        strokeOpacity: 0.8,
        strokeWeight: 2,
        fillOpacity: 0.35,
        map: map,
        center: _LatLng,
        zIndex: 1,
        radius: 2.5
    };
 
    var _circle = new google.maps.Circle(_myCircle);
 
    WaypointCoordinates[WptCount] = new google.maps.LatLng(_lat, _lng);
    WptCount++;
}
 
//Display all the waypoint on the Map
function DrawWaypointPolyline(_color) {
    var WayPointPath = new google.maps.Polyline({
        path: WaypointCoordinates,
        strokeColor: _color,
        strokeOpacity: 1.0,
        strokeWeight: 2
    });
 
    WayPointPath.setMap(map);
    WptCount = 0;
    WaypointCoordinates = [];
}
Je précise que mes point de passage sont des cercle car j'ai des fois besoin de pouvoir les sélectionner.
Y'aurait-il un moyen d'optimiser cela ? Car cela prend bien une dizaine de secondes à chaque fois ?

Merci d'avance, Cordialement MoZo