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
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.
Ahí le has dado.
Morta Escribió:
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?
Por supuesto que puedo: las "formulas de Haversine" calculan elementos de triángulos sobre esferas. Pero en realidad la figura geométrica (matemáticamente descriptible) que mas se aproxima a la verdadera forma de la tierra es un elipsoide (o una esfera achatada por los polos).
Para muchas aplicaciones (como la tuya) basta con aproximar la forma real de la tierra a una esfera. En cambio existen otro tipo de trabajos, de carácter mas preciso para los que no puedes suponer esa aproximación (como ciertas obras de ingeniería, que exigen que el oleoducto encaje al centímetro; cosa... Leer más ...
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?
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 :-)
bastante, pero me da la impresión que esto ocurre por que muchas funciones traen la herencia de gmaps, (la cual por utilizar la proyección plana de Mercator funciona "visualmente" bien con trigonometría plana)
Morta Escribió:
Por cierto que en esa página hay un enlace superinteresante donde desarrollan la fórmula para 9 lenguajeswww.codecodex.com/wiki...on_a_Globe Seguro que a mas de uno le resulta útil.
Y tanto. Lástima que parta del supuesto de una tierra esférica.
Cada aportación tuya enriquece este foro, y siempre, después de hablar contigo aprendo algo. Así que muchas gracias a tí.
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.
Enhorabuena Morta: la verdad es que aún no había tenido tiempo de ponerme con tu código.
¿Te has fijado que tienes la función dibujar_circulo() dentro de createMultiGeometry()?, ademas al estar return ring; fuera de la primera no se si te dará algún tipo de problema (creo que si pues ring está declarada como variable local y por lo tanto no debería llegar a la segunda función).
Que sepas (a modo de curiosidad) que para el calculo de las distancias aplica trigonometría esférica. Y probablemente la razón por la que en los primeros ejemplos los cículos parecían elipses sería que utilizaban trigonometría plana (o del espacio Euclídeo).
Una cosilla mas para que la tengas presente en un futuro. Las distancias que calculas van a ser bastante aproximadas, pero mantienen un error en tanto que aquí:
Code::
//convertimos el radio segun el elipsoide de referencia WGS 84 en.wikipedia.org/wiki/..._the_Earth
var d_radio = radio/6378137;
para calcular la distancia angular tomas el radio ecuatorial (el ideal sería el correspondiente a la latitud de tu trabajo).
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 ...
...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?
Aqui copio el código de mi ejemplo donde dibujo una serie de circulos partiendo desde las coordenadas 0,0 hacia el norte y hacia el sur. Si salvas la pagina como .html y la abres con el navegador podrás ver el resultado.
A ver si alguien puede ayudarme con esto.
Muchas gracias y un saludo