pro heart google formato earth crear como archivos archivo kml google-earth

kml - heart - ¿Cómo mostrar un barco en movimiento en Google Earth?



google heart (8)

Es posible que desee consultar las visitas: http://code.google.com/apis/kml/documentation/touring.html

He visto algo como esto utilizando una combinación de (un número de) etiquetas <gx:AnimatedUpdate> para mover una marca de posición creada anteriormente que representa su barco y etiquetas <gx:FlyTo> para mover la vista (creo) todo dentro de un <gx:Playlist> .

Espero que esto ayude.

Soy nuevo en el formato KML y trato de averiguar cómo mostrar un barco (un png), moviéndome de un lugar a otro a lo largo de un camino (una línea simple dibujada compuesta de varias líneas).

Puedo ver cómo mostrar una marca de posición, incluso con un icono y una ruta, por separado.

Lo que me gustaría ver cuando hago clic en el archivo KML es:

  • el barco que aparece en el punto de partida;
  • el trazado trazado hasta la llegada;
  • el ícono del barco se mueve a una velocidad cómoda (punto de bonificación puedo establecer un tiempo / progreso de ración, bonificación extra si puedo hacer clic en Iniciar, pausar o rebobinar) desde la salida hasta la llegada a lo largo del camino.

¿Es eso posible? Sé que es con Google Map, pero puedes programarlo con Javascript, lo que facilita mucho las cosas.


Esta es una pregunta antigua, y ahora hay una mejor manera de mover una marca de posición (o incluso mejor un modelo) a lo largo de una cadena de líneas predeterminada. Mira en el uso de esta característica:

http://code.google.com/apis/kml/documentation/kmlreference.html#gxtrack

Código de muestra:

<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2"> <Folder> <Placemark> <gx:Track> <when>2010-05-28T02:02:09Z</when> <when>2010-05-28T02:02:35Z</when> <when>2010-05-28T02:02:44Z</when> <when>2010-05-28T02:02:53Z</when> <when>2010-05-28T02:02:54Z</when> <when>2010-05-28T02:02:55Z</when> <when>2010-05-28T02:02:56Z</when> <gx:coord>-122.207881 37.371915 156.000000</gx:coord> <gx:coord>-122.205712 37.373288 152.000000</gx:coord> <gx:coord>-122.204678 37.373939 147.000000</gx:coord> <gx:coord>-122.203572 37.374630 142.199997</gx:coord> <gx:coord>-122.203451 37.374706 141.800003</gx:coord> <gx:coord>-122.203329 37.374780 141.199997</gx:coord> <gx:coord>-122.203207 37.374857 140.199997</gx:coord> </gx:Track> </Placemark> </Folder> </kml>



La única forma en que he podido hacer que esto funcione en KML estático es interpolar entre los puntos de inicio y parada y agregar marcas de posición para cada fotograma que quiero animar. Entonces, de t = 0 a t = 1, dibuje una marca de posición en el punto de inicio. Desde t = 1 hasta t = 2, dibuja una marca de posición en el siguiente punto, etc.

Esto te da la barra de jugador temporal en Google Earth y puedes rebobinar o avanzar la animación. Sin embargo, es un poco molesto porque terminas con cada punto de interpolación en el árbol de tu marca de posición. Poner las marcas de posición en su propia carpeta las mantiene fuera del camino, pero no hay forma de ocultárselas al usuario.

Echa un vistazo a http://code.google.com/apis/kml/documentation/time.html#animating El ejemplo del tiburón ballena hace más o menos lo que quieres para la marca de posición. (La URL para el icono del marcador está rota). Animar el progreso a lo largo de la pista se puede hacer usando el mismo truco.

Si desea probar algo mucho más difícil, puede intentar servir KML dinámico. Haga que Google Earth cargue un enlace de red a sus datos iniciales. Luego, carga otro enlace de red con un que envíe una actualización para tu marca de posición cada vez que marques.

Este enfoque tiene algunas desventajas serias porque requiere un programa externo para manejar Google Earth y no le da al usuario acceso a la barra de jugador temporal de Google Earth incorporada. También requiere que todos los datos se carguen a través de un enlace de red; los datos KML de un archivo no se pueden actualizar. Eso significa que su programa de controlador debe actuar como un servidor http. Además, en este modelo es muy difícil saber exactamente cuándo Google Earth ha terminado de cargar y dibujar la actualización. Realmente no recomiendo hacer esto; Puedes hacer que funcione con la API COM de Google Earth, pero siempre será una solución frágil.


Si va a mostrar un barco en Google Earth, un modelo 3D sería un mejor enfoque que una imagen, ya que los usuarios pueden cambiar el ángulo de visión.



Supongo que esta funcionalidad no existía cuando se contestó originalmente, pero puede lograr el efecto utilizando un recorrido. A continuación se muestra una marca de posición que se mueve de esta manera.

<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2"> <Document> <Placemark id="boat"> <Point> <coordinates>0,0</coordinates> </Point> </Placemark> <gx:Tour> <name>Play me!</name> <gx:Playlist> <gx:FlyTo> <gx:duration>5.0</gx:duration> <LookAt> <longitude>0</longitude> <latitude>0</latitude> <altitude>0</altitude> <heading>-95</heading> <tilt>65</tilt> <range>250000</range> <altitudeMode>relativeToGround</altitudeMode> </LookAt> </gx:FlyTo> <gx:AnimatedUpdate> <gx:duration>5.0</gx:duration> <Update> <targetHref/> <Change> <Placemark targetId="boat"> <Point> <coordinates>1,1</coordinates> </Point> </Placemark> </Change> </Update> </gx:AnimatedUpdate> <gx:Wait> <gx:duration>6.0</gx:duration> </gx:Wait> </gx:Playlist> </gx:Tour> </Document> </kml>

El camino se puede marcar con puntos cuya visibilidad se ve alterada por el recorrido en el momento adecuado.


Tengo la siguiente muestra en el sitio de Google. Espero que esto ayude.

(detalles en: https://sites.google.com/site/canadadennischen888/home/kml/auto-refresh-3d-tracking )

  1. prepare un servicio RestFul para generar un archivo KML desde la base de datos (muestra como en https://sites.google.com/site/canadadennischen888/home/kml/3d-tracking )

  2. Mi otro código generará un archivo KMZ que tiene un enlace a mi servicio Restful (ejemplo como en esta página)

  3. Archivo KMZ tiene en Intervalo

  4. La página web permite al usuario descargar el archivo KMZ que tiene una URL que enlaza con mi servicio Restful

  5. Cuando Google Earth abra el archivo KMZ, Google Earth se actualizará automáticamente para obtener nuevos datos de ese servicio Restful