10 votos

Mover el marcador suavemente a lo largo de dos coordenadas GPS

Estoy intentando animar un marcador de una coordenada GPS a otra. Actualmente estoy utilizando Google Maps para lograrlo y, aunque mi algoritmo parece correcto, Google Maps está haciendo un mal trabajo en la conversión de la posición del GPS al píxel correcto en el mapa, lo que hace que la animación no sea tan suave cuando el mapa se aleja. Acercado, es muy suave y por eso sospecho que el "zig zag" es causado por Google haciendo una mala conversión LatLng->pixel.

La mejor solución sería que tratara directamente con las coordenadas de los píxeles de los marcadores (x,y), pero desgraciadamente no hay ningún método público para asignar la ubicación de los píxeles a un marcador.

El código está disponible aquí: http://dev.syskall.com/map/

¿Cómo hacer que la animación sea más suave cuando se aleja? Alternativamente, me interesaría utilizar un equivalente a Google Maps que me permita lograr lo que estoy tratando de hacer si no es posible con Google Maps.

PD: No estoy seguro de que este sea el lugar adecuado para plantear mi pregunta, hazme saber si no es el caso.

8voto

Erik Öjebo Puntos 6937

V2 http://econym.org.uk/gmap/example_cartrip.htm

v3 http://plebeosaur.us/etc/map/ (funciona mejor con el iphone) puedes usar tus datos gps sin procesar.

Consejo: utilice las coordenadas geográficas reales en lugar de las coordenadas de píxeles, ya que éstas se redondean (2 decimales) y las coordenadas geográficas utilizan 6 d.p.

2voto

viskin Puntos 11

Puede utilizar marker-animate-unobtrusive biblioteca para que los marcadores de un lugar a otro.

Podrías inicializar tu marcador así:

var marker = new SlidingMarker({
   //your original marker options
   //...
});

Así que su marcador se animará desde la ubicación inicial a la dada en esta llamada:

marker.setPosition(givenPosition);

P.D. Soy el autor de la biblioteca.

0 votos

¿Su biblioteca tiene la capacidad de rotar el icono en un ángulo? basado en el último lat, lon moviéndose al siguiente lat lon?

0 votos

Ver debate aquí . Hay un evento levantado para cada paso de la animación, donde puedes obtener coordenadas y tratar de rotar tu marcador.

1voto

pedja Puntos 7773

También puedes comprobarlo: http://mypersonalsoft.blogspot.com/2012/02/simulating-moving-targets-in-google.html

Se hace que un objetivo se mueva lentamente en los mapas de google simulando un objetivo GPS.

1voto

bkg Puntos 21

También podría considerar el siguiente enfoque:

  • generar una colección de marcadores entre dos coordenadas por cada ubicación
  • activar un marcador específico mediante marker.setVisibility(value) función

Ejemplo completo

JSFiddle

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X