Indice de Foros
Foro Cartesia
Geomática y Topografía 
  Cartesia · Crea tu Blog · Cursos · Contacta · Publicidad   · Cartesia twitter ·
 Avanzada
 Indice  FAQFAQ  Registrarse EntrarEntrar 


[Google Maps]   
Publicar nuevo tema   Responder al tema    Indice de Foros -> SIG y Cartografía
Tema Anterior :: Tema siguiente  
Autor Mensaje
CCB



Registrado: 18 May 2010
Mensajes: 1

MensajePublicado: Tue 18 May 2010, 10:37    Asunto: [Google Maps] Responder citando

Hola,

Soy nuevo en el foro y también muy novato en en temas de SIG y cartografía, así que espero disculpéis mi torpeza al expresar mi consulta.

Se trata de representar en Google Earth una elipse en una posición determinada mediante un polígono.

Basándome en un código que he encontrado en internet que permite representar círculos generando un archivo KML que contiene n vértices del polígono, he hecho una pequeña modificación y ahora sí que represento elipses.

La cuestión es que necesito aplicar una modificación más a mi código y ahí ya fallan mis conocimientos sobre el asunto.

Tal y como está implementado, se representa correctamente la elipse pero siempre con el semieje mayor paralelo al ecuador.

Necesito poder introducir otro parámetro, el ángulo que forma el semieje mayor con el Norte o ángulo de rotación de la elipse.

Os copio el pseudo código que genera los puntos del polígono que finalmente representan la elipse por si puede ser útil.

Código:
Function GeneraPuntosElipse()

variables de entrada:
CentroElipseLat (grados)
CentroElipseLon (grados)
SemiejeMayor (metros)
SemiejeMenor(metros)

AngulodeRotacion(grados) ¿?

variable de salida:
coordinatesList (Lat y Lon en grados)


num_points = 72;
delta_pts = 360/num_points

lat = degTorad(CentroElipseLat)
lon = degTorad(CentroElipseLon)

A = SemiejeMayor
A_rad = A/6378137
B = SemiejeMenor
B_rad = B/6378137;

radial2 = degTorad(AngulodeRotacion);

For i = 0 to (num_points - 1)

 radial = degTorad(i * delta_pts)
 
 lat_rad = asin(sin(lat)*cos(B_rad) + cos(lat)*sin(B_rad)*cos(radial))

  dlon_rad = atan2(sin(radial)*sin(A_rad)*cos(lat), cos(A_rad)-sin(lat)*sin(lat_rad))
  lon_rad = fmod((lon+dlon_rad + PI), 2*PI) - PI

 coordinatesList = coordinatesList + ( radTodeg(lon_rad) , radTodeg(lat_rad) )

Next

End Function



Muchas gracias y un saludo,
Felipe Díez
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   

Temas similares
Tema Autor Foro Respuestas Ultimo Mensaje
No hay mensajes nuevos [Google Maps] como poner un mapa de A... ederz SIG y Cartografía 2 Wed 27 Oct 2010, 23:00 Ver último mensaje
nakamis
No hay mensajes nuevos [Google Maps] Cargar WMS de catastro ... mad2000 SIG y Cartografía 3 Tue 01 Feb 2011, 09:42 Ver último mensaje
raquele
No hay mensajes nuevos [Google Maps] Aplicaciones que se con... tomas.fsevilla SIG y Cartografía 2 Wed 25 Jun 2008, 00:55 Ver último mensaje
galvarezhn
No hay mensajes nuevos Google Earth4: El servicio en 3D de G... Googlenews Varios 5 Fri 12 Jan 2007, 16:11 Ver último mensaje
Googlenews
No hay mensajes nuevos [Google Maps] Diferencias en coordena... txus SIG y Cartografía 4 Fri 27 Apr 2007, 15:12 Ver último mensaje
txus
No hay mensajes nuevos [Google Maps] fvasquezm SIG y Cartografía 2 Wed 04 May 2011, 21:02 Ver último mensaje
fvasquezm
No hay mensajes nuevos [Google Maps] bananatrangenica SIG y Cartografía 0 Mon 19 Apr 2010, 20:39 Ver último mensaje
bananatrangenica
No hay mensajes nuevos [Google Maps] lr05 SIG y Cartografía 0 Thu 07 May 2009, 23:17 Ver último mensaje
lr05

Publicar nuevo tema   Responder al tema    Indice de Foros -> SIG y Cartografía Todas las horas son CET (Europa)
Página 1 de 1

 
Cambiar a:  
Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
No puede adjuntar archivos en este foro
No Puede descargar archivos de este foro


Powered by Cartesia ©