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.
Le CallJavascriptFunction me permet d'executer mes script javascript
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");
voici maintenant le code JS :
Je précise que mes point de passage sont des cercle car j'ai des fois besoin de pouvoir les sélectionner.
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 = []; }
Y'aurait-il un moyen d'optimiser cela ? Car cela prend bien une dizaine de secondes à chaque fois ?
Merci d'avance, Cordialement MoZo
Partager