Poruszający się symbol w GoogleMaps JavaScript

0

Witajcie

Próbuje zaliczenie przedmiotu próbuje zrobić symulator lotu. Zaimportowałam mapy z google maps , a animowany samolot poruszający się do linii zalatwiłam za pomoca takiego kodu

   	  	var lineCoordinates = [
    			new google.maps.LatLng(fromX, fromY),
   				new google.maps.LatLng(toX, toY)
 			 ];
   			 var lineSymbol = {
    			path: //SVG samolotu///,
    			scale: 0.5,
    			strokeColor: 'black', 
    			fillColor: 'black',
    			fillOpacity: 1
  			};
  			  var line = new google.maps.Polyline({
   				path: lineCoordinates,
    			icons: [{
     				 icon: lineSymbol,
     				 offset: '100%'
   					 }],
 			 });
 			 line.setMap(map);

  		  	var count = 0;
  			  window.setInterval(function() {
      		  count = (count + 1) % 200;
			  if(count ==199) stopCircle(line);
      	 	 var icons = line.get('icons');
      		 	icons[0].offset = (count / 2) + '%';
      		 	line.set('icons', icons);
  			 	},20);

jednak te rozwiązanie ma jedną wade. Wszystkie samoloty niezależnie od trasy lecą taki sam czas. A mi zależy żeby miały taka samą prędkość. Niby przerobienie takiego kodu nie powinno być problemem ale zależy mi też aby przyblizajac mape prędkość animacji sie odpowiednio zwiększyła, oddalajac pomniejszyła. I dlatego mam z tym problem. Umiałby ktoś pomóc?

0

bo w petli zawsze dodajesz 1% odleglosci (notabene to modulo 200 jest tak potrzebne jak piesc do oka). wiec jesli zawsze samolot przesuwa sie o jeden procent odleglosci to wszystkie samoloty pokonaja swoje trasy w 100 jednostkach czasu. (w twoim przypadku w dwie sekundy.

zeby zrobic tak jak ty chcesz to ustal sobie stala np. 100 i dziel ja przez odleglosc miedzy punktami poczatkowym i koncowym (tu masz anwet ladny przyklad funkcji w JS na liczenie odleglosci miedzy punktami lat long. http://stackoverflow.com/questions/27928/how-do-i-calculate-distance-between-two-latitude-longitude-points) i o taka wartosc zwiekszaj offset w petli...

0

dziękuje badzo mi pomogłeś

1 użytkowników online, w tym zalogowanych: 0, gości: 1