Vous pouvez définirs une liste de markers qui auront la faculté de se déplacer le long d'un chemin prédéterminé (routes, polylines ou polygones) .
Cette liste de type TMobileList est disponible au travers de la propriété Mobiles.
TECMap dispose en plus de deux propriétés liées aux mobiles
TMobileList
Vous avez accès aux méthodes et propriétés suivantesiMarker est l'indice du marker dans la liste Markers
iRoute est l'indice du chemin à suivre soit dans Routes (par défaut), soit dans Polylines ou Polygones
iSpeed est la vitesse du mobile en Km/h
iDistance est la position de départ sur le chemin en mètre
var c:TAlphaColor;
...
TAlphaColorRec(c).R := 247;
TAlphaColorRec(c).G := 250;
TAlphaColorRec(c).B := 191;
map.ColorFilter.Colors.Add(c);
map.ColorFilter.ActionColor := acKeep;
...
map.ColorFilter.Add(Old_color_1);
map.ColorFilter.Add(New_color_1);
map.ColorFilter.Add(Old_color_2);
map.ColorFilter.Add(New_color_2);
map.ColorFilter.ActionColor := acReplace;
Propriété en lecture/écriture qui indique quel est le mobile que l'on va suivre, la carte se recentrera automatiquement sur lui lorsqu'il franchira les limites visibles.
Positionnez cette propriété à -1 pour ne suivre aucun mobile
28Par défaut les mobiles ne bougent pas, vous pouvez les déplacer soit en mode automatique soit en mode manuel.
En mode automatique ils se déplaceront à la vitesse que vous leur avez assigné, en mode manuel vous pourrez soit manipuler directement la distance soit la faire se calculer en fonction du temps et de la vitesse.
Même en mode automatique vous pouvez modifier manuellement la distance, la vitesse, vous pouvez aussi changer la route sur laquelle le mobile se déplace, sa position est automatiquement réajusté.
29Pour cela vous devez accèder à la classe TMobile
TMobile
Propriété en lecture/écriture qui fixe la distance, en mètre, du mobile depuis son point de départ réel, la direction n'est pas prise en compte.
Tout changement de cette propriété entraine un déplacement du marker associé au mobile
30Sens de déplacement, dsStartEnd ou dsEndStart
Pour une route dsStartEnd correspond à un déplacement du point de départ ou point d'arrivée, pour les polylines et polygones du premier point au dernier.
La distance est toujours calculée en fonction du point de départ réel, la direction ne va donc être déterminante que pour un déplacement automatique ou manuel par appel à Move.
Indice du mobile dans la liste des mobiles
Propriété en lecture/écriture qui indique l'indice du Marker à déplacer
Propriété en lecture/écriture qui définie si le mobile se déplace automatiquement ou non, par défaut fixé à false le mobile ne se déplace pas tout seul.
Évènements
Deux évènements sont liés aux mobiles
Index est l'indice du marker dans la liste Markers
dLatitude et dLongitude la nouvelle position
Vous pouvez modifier celle-ci dans l'évènement
9iMobile indice du mobile dans la liste Mobiles
En fonction de la direction le mobile est soit arrivé au terminus soit au point de départ
La propriété Mobile est passée à false, pour relancer votre mobile en mode automatique il vous faut la remettre à true et inverser la direction.
Démonstration
Le programme DemoMobile vous montre une utilisation des mobiles