Hola Polifemo
Supongo que la respuesta que donde dices que ya has encontrado la fórmula es.wikipedia.org/ ...e_Vincenty se refiere a mi comentario ¿no?
Mis conocimientos matemáticos no son muy amplios así que lo que veo casi me parece chino
De cualquier forma, muchas gracias
Hola Polifemo
Curiosa esa forma de determinar si está dentro de un margen de altura. Mides la diferencia entre latitudes y si es pequeña, estas cerca del suelo.. nunca se me hubiera ocurrido
Le echaré un vistazo.
Por cierto, he hecho una consulta al respecto de la exageración del terreno en la página oficial de Google Earth (donde puedes reportar fallos y solicitar funciones, no la conocía) y esto me han contestado de momento code.google.com/ ...ail?id=619
Al principio, me han regañado remitiéndome a un ejemplo y diciendo que pusiera como valor 0 (lo que ya habíamos intentado y que no funciona). Cuando les he dicho que eso no funciona y que el ejemplo que citan tampoco funciona correctamente parece que han reconsiderado el tema. A ver que pasa.
También he consultado sobre el tema de la inclinación y he incluido la forma de dibujar circulos sin que se conviertan en ovalos. Ahí no han contestado todavía
Un saludo
¿Es curioso verdad? Algo que está resuelto en el programa y que parece que no es posible hacer en el plugin.
Estaría bien hacer que solo se ejecute a partir de una altura determinada pero no se me ocurre la forma de hacerlo. Aunque pensándolo bien, quizá tendría que ser una función que comprobara a que altura está la vista y hacer que se ejecute la de enderezar_vista cuando correspondiese pero ¿que se ganaría con ello? Mientras la vista no se inclina, el usuario no percibe nada, solo se ve cuando empieza a inclinarse que, cada vez que se mueve el ratón, la vista se "endereza".
He probado con las otras opciones que permite la función con el fin de hacer lo mas transparente posible la ejecución de la función al usuario pero no consigo que lo sea así que la que creo que mas se ajusta a lo que buscaba es la de mover el ratón. Estas posibilidades que comento son:
google.earth.addEventListener(ge.getGlobe(), 'mouseclick', enderezar_vista);
google.earth.addEventListener(ge.getGlobe(), 'mousedblclick', enderezar_vista);
google.earth.addEventListener(ge.getGlobe(), 'mouseover', enderezar_vista);
google.earth.addEventListener(ge.getGlobe(), 'mousedown... Leer más ...
A ver si alguien me puede echar un cable. No se si solo me ocurre a mi o que pero cuando acerco la vista hasta el suelo, automáticamente se inclina y llega a mostrar el horizonte. Me gustaría evitarlo y que siempre se quede en vertical sobre el punto que enfocamos. No se si me explico. Cuando nos vamos acercando a la superficie, llega un momento en que cuando estamos muy cerca del suelo, la vista se va inclinando automáticamente. Observo que solo ocurre en el plugin y no en el programa normal de Google Earth. Pongo un ejemplo básico:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Inclinación de la vista al acercarse al suelo</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script src="http://www.google.com/jsapi?key=ABQIAAAArCZgeQ8ddm8YbeJQqqHN5BTYrZjdppbykE52CdH9dtH9wJ0VsBQSgm6ZbaTJsaMARyyYkz_JttmHMQ"></script>
<script type="text/javascript">
google.load("earth", "1");
var ge = null;
function init() {
google.earth.createInstance("map3d", initCB... Leer más ...
Ya. entiendo. Es cierto que la tierra no es exactamente una esfera. Ahora el reto sería entonces modificar el código para que, teniendo en cuenta la latitud y por tanto el radio, dibujara el circulo exacto.
Cuando me jubile y tenga tiempo...
Un saludo y muchas gracias
¿No existirá alguna formulita tipo la del haversine para eso? Seguro que si
Hola Polifemo de eso se trata que entre todos podamos conseguir hacer lo que nos apetece hacer. Siempre he pensado que los foros bien usados son una gran ayuda para aprender y saber. Si la gente se enrolla a ayudar y a dar a conocer lo que sabe es bueno para todos. La lástima es que la mayoría de las veces los foros no son usados para eso.
No entiendo lo que comentas de que es una lástima que en la páginahttp://www.codecodex.com/wiki...on_a_Globe partan del supuesto de que la tierra es esférica. ¿Puedes aclararlo, por favor?
Hola Polifemo
Si, ya se, pero está copy-pasteado de la página code.google.com/ ...tries.html Si te fijas, donde hablan de la creación de circulos el código está escrito así. El caso es que funciona
Seguramente que el motivo de que aparecieran como óvalos a medida que te alejas del ecuador sea ese que comentas de utilizar trigonometría plana. Para mi un error muy grave por parte de Google ya que ellos deberían de saber mejor que nadie que la tierra no es plana
Al parecer, el autor del código en el que me he basado utiliza una aplicación de la fórmula del haversine es.wikipedia.org/ ..._Haversine. Por cierto que en esa página hay un enlace superinteresante donde desarrollan la fórmula para 9 lenguajes www.codecodex.com/ ...on_a_Globe Seguro que a mas de uno le resulta útil.
En cuanto al error que comentas soy consciente de ello pero tampoco buscaba la exactitud milimétrica así que a mi me vale. Seguro que utilizar la latitud correcta en cada caso me complicaría demasiado el código.
Hola Polifemo
Creo que ya lo he resuelto basándome en este post bbs.keyhole.com/ ...d=1#import
En él, el autor facilita un código en PHP que utiliza en un página suya que, por cierto, no funciona dev.bt23.org/keyhole/circlegen/
Solo he tenido que convertirlo a javascript. Creo que está bien y funciona correctamente en cualquier coordenada
Un saludo
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Generar un circulo de radio en km en Google Earth</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script src="http://www.google.com/jsapi?key=ABQIAAAArCZgeQ8ddm8YbeJQqqHN5BTYrZjdppbykE52CdH9dtH9wJ0VsBQSgm6ZbaTJsaMARyyYkz_JttmHMQ"></script>
<script type="text/javascript">
google.load("earth", "1");
var ge = null;
function init() {
google.earth.createInstance("map3d", initCB, failureCB);
}
Hola Poligemo ¿que tal?
Hacía bastante que no programaba en GE y llevo tiempo detras de solucionar este tema pero no doy con ello. He encontrado otro ejemplo que parece que lo consigue también earth-api-samples.googlecode.com/ ...index.html
He probado de otra forma (algunas de las cosas sobran pero como estoy intentando que funcione no las he quitado todavía)
Esto mas o menos hace lo que yo quiero pero el problema que tengo es que quisiera que el circulo fuesen 50 km alrededor del punto y lo mas que consigo aproximarme (y realmente no se si está bien) es un radio de 82 km y no se como cambiarlo
Este es el código, que está basado en el de www.barnabu.co.uk/geapi/polyplot/
Un saludo y muchas gracias
------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>PolyPlot - draw and compute areas of polygons on Google Earth</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="Ployplot... Leer más ...
El caso es que me ocurre una cosa curiosa. Si dibujo el circulo en las coordenadas 0,0 (como hacen en los ejemplos), aparece un circulo perfecto pero cuando las coordenadas se van aproximando hacia el norte o el sur, el circulo se va conviertiendo en un ovalo.
¿Alguien sabe por qué ocurre esto? y mejor aún ¿alguien sabe como solucionarlo?
Lei por ahí que aunque los tengas desactivados, los tiene que leer cuando arranca. Así que da igual que los tengas activados o no.
Creo que la única solución es que los guardes en una carpeta de tu pc y cada vez que quieras verlos, los busques en esa carpeta.
Hola Fercanez (no se por qué, tu nick me resulta familiar)
No, no lo he intentado. Supongo que se pueda hacer pero no lo se realmente. Ya nos contarás tus progresos
Saludos
Bueno, ya lo he conseguido. Estaba considerando las palabras red, yellow y green como variables en mi if. Menudo fallo!
Este es el código. Permite cargar tres ficheros que le indiquemos y verlos o no según seleccionamos. Es decir como si fuesen capas.
Polifemo, te agradezco mucho la ayuda que me has prestado. Llevaba tiempo detrás de esto y anda que no he dado palos de ciego hasta ahora!!
Un saludo
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="CHARSET" CONTENT="ISO-8859-1">
<title>Capas en Google Earth</title>
<!--SUSTITUYE POR TU KEY API-->
<script src="http://www.google.com/jsapi?key=ABQIAAAArCZgeQ8ddm8YbeJQqqHN5BTYrZjdppbykE52CdH9dtH9wJ0VsBQSgm6ZbaTJsaMARyyYkz_JttmHMQ"></script>
<script type="text/javascript">
function addSampleButton(caption, clickHandler) {
var btn = document.createElement('input');
btn.type = 'button';
btn.value = caption;
if (btn.attachEvent)
btn.attachEvent('onclick', clickHandler);
else
btn.addEventListener('click', clickHandler... Leer más ...
Muchas gracias polifemo!!!
No había visto este ejemplo. Esto hace precisamente lo que quiero, cargar y descargar varios ficheros en la misma instancia
La verdad es que no entiendo demasiado bien como lo hace. Ahora me estoy peleando con que meta los ficheros que yo quiero porque en el ejemplo utiliza las variables red yellow y green para construir el nombre del kml que carga y parece sencillo pensar que cambiando el nombre funcione pero no es así ya que esas palabras las pasa como parámetros o variables en algunas funciones y no cojo el funcionamiento.
Por ejemplo si utilizo un if para ver la variable que me pasa y en función de eso construir el fichero, algo que luego podría cambiar para poner el que yo quiero, no consigo que funcione
En la función
function loadKml(file) {
var kmlUrl = 'http://earth-api-samples.googlecode.com/svn/trunk/' + 'examples/static/' + file + '.kml';
se ve que construye el nombre con la variable file que recibe como parámetro (que por cierto, se la cambio por otro nombre para que funcionara el siguiente if ya que file es una palabra reservada)
Si trato de hacer un if como este, creo que debería de funcionar ya que la palabra... Leer más ...
Es lo que tiene lo de chapurrear el inglés, que tengo que tirar de traductores automáticos y debo decir cada barbaridad
Conozco ese visor interactivo, lo he visto alguna vez por ahí pero con el enlace que pones se abre pero en vacío, sin datos y no se como llegar al original con el código que, recuerdo que he visto alguna vez
Vaya. me alegro de no ser el único que se vuelve loco con la ayuda de las apis de Google La verdad es que se podían currar un poquito mas la ayuda con mas ejemplos y un poco menos caótica en la organización de la documentación o al menos eso me parece a mi
Esto es lo que pretendo hacer. Ahora sería adaptarlo para Google Earth. A ver si damos con ello.
Un saludo
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="CHARSET" CONTENT="ISO-8859-1">
<title>Ver tracks en GOOGLE MAPS</title>
</head>
<body>
<script src="http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAArCZgeQ8ddm8YbeJQqqHN5BTYrZjdppbykE52CdH9dtH9wJ0VsBQSgm6ZbaTJsaMARyyYkz_JttmHMQ... Leer más ...
He estado haciendo pruebas pero no doy con ello
Tu ejemplo me vale pero lo que trato de hacer es que una vez cargado el fichero, se pueda ocultar y ver otra vez si el usuario quiere y volver a ocultarlo las veces que quiera. Con tu código se muestra una vez y posteriormente se oculta pero ya no se mostraría otra vez a no ser que se recargue la página
Supongo que el tema sería cargar el fichero y crear un boton o un checkbox que hiciera que la función initCallback se ejecutara de nuevo pero ahora con removeChild(networkLink) pero he probado de mil maneras pero nada, no soy capaz
En este ejemplo me dice que 'ge' es nulo o no es un objeto. Imagino que es porque la instancia ya está cargada
<html>
<head>
<script src="http://www.google.com/jsapi?key=ABQIAAAArCZgeQ8ddm8YbeJQqqHN5BTYrZjdppbykE52CdH9dtH9wJ0VsBQSgm6ZbaTJsaMARyyYkz_JttmHMQ"></script>
<script>
var path="http://code.google.com/articles/support/earthapikml.kml"
google.load('earth', '1');
var ge = null;
function init() {
google.earth.createInstance('map3d', initCallback, failureCallback... Leer más ...
Hola Polifemo
Te agradezco mucho tu ayuda. Creo que el truco va a estar en utilizar ge.getFeatures().removeChild(networkLink);
No conocía esta posibilidad. La verdad es que la API debe tener muchas posibilidades pero me cuesta entender a veces las páginas de ayuda de Google Earth. A veces es un poco rebuscada la info y poco clara por lo que opto por copiar e ir modificando hasta que mas o menos hace lo que quiero sin llegar a entender muy bien como funciona
Por cierto, ¿me pasa a mi solo o es que bastantes enlaces de esas páginas de documentación no funcionan? A veces voy a ver un ejemplo y me dice que no existe la página.
Si consigo algo, ya lo postearé por aquí para que le pueda servir a alguien.
Ah, otra preguntita ¿no sabras como evitar que cuando te acercas hacia la tierra con la barra de control automáticamente la inclinación varíe hasta ver el horizonte? Me gustaría ver siempre la vertical de la imagen. Si habilitas el uso del ratón si que lo permite con el uso de la rueda del ratón pero si utilizas la barra, automáticamente muestra el horizonte cuando estás muy cerca. Y también ¿como evitar que se vea el relieve? Son opciones que tiene el programa pero que no... Leer más ...
Tengo una página en la que se carga el visor de GE y muestra un fichero kml. Quisiera hacer dos cosas:
- ¿existe alguna forma de crear un boton o algo similar que permitiese mostrar u ocultar el fichero mostrado? Se que en la api de Google Maps si se puede hacer pero no se me ocurre como hacerlo en la api de Google Earth
- por otro lado ¿es posible cargar varios ficheros independientes en la misma instancia? Me explico, tengo varios ficheros en kml por separado. Hasta ahora, lo que he hecho cuando quiero verlos todos juntos a la vez ha sido crear otro fichero con todos esos datos juntos y mostrarlo pero me gustaría poder hacerlo por separado y de forma independiente.
En resumen, lo que me gustaría hacer es algo similar a un sistema de capas en las cuales el usuario pudiera mostrar u ocultar una serie de ficheros que funcionarían a modo de capas. No se si me explico.
¿alguna idea?
No lo sabía, lo siento. Ya digo que como usaba la plus no había visto esto pero me lo he imaginado al no tener que instalar la actualización.
Espero que, al menos, le sirva a alguien que no haya leido esa noticia o no se acuerde.
Un saludo
Hasta hace un rato era usuario de Google Earth Plus. Básicamente, la diferencia que encontraba entre el normal y el plus era que te permitía descargar directamente datos desde un Gps. Ahora se me ha terminado la suscripción y al ir a renovarla me encuentro con que ya no existe esa versión y, por contra, ahora se puede descargar los datos con la versión normal.
No se si esto estaba ya ocurriendo hace tiempo (quizá desde que salió la versión 5.0) pero como usaba la Plus no me había enterado de ello. Aunque en la documentación de GE no queda muy claro este cambio ya que siguen hablando de la plus en muchos sitios, por ejemplo en earth.google.com/ ...11337.1968 el caso es que funciona.
Me parece un gran acierto por parte de Google Earth permitir eso de forma gratuita y aunque no era cara la suscripción, unos 12 € al año, mucho mejor si es gratis
me gustaria saber si hay alguna manera de transferir una ruta
creada con google hearth a un dispositivo gps o a un programa
como por ejemplo map source.
un saludo . gracias.
rafa.
Utiliza el GPSBabel. Cojes el fichero en formato kmz o kml y lo cambias al formato de Mapsource o al que quieras. www.gpsbabel.org/download.html
Un saludo
Osea, lo mismo que yo te he dicho.
Si, la única diferencia es que mediante www.gpsvisualizer.com/gpsbabel/ lo haces online y si te descargas el programa lo puedes hacer offline ya que es un programa que se instala en tu equipo y, por lo tanto, no hace falta estar conectado a Internet para hacer conversiones. Por lo demás es el mismo perro con distinto collar
Saludos
me gustaria saber si hay alguna manera de transferir una ruta
creada con google hearth a un dispositivo gps o a un programa
como por ejemplo map source.
un saludo . gracias.
rafa.
Utiliza el GPSBabel. Cojes el fichero en formato kmz o kml y lo cambias al formato de Mapsource o al que quieras. www.gpsbabel.org/download.html
Un saludo