Page 1 of 1
Graficar poligonos con coordenadas
Posted: Fri Nov 10, 2006 4:55 pm
by Miguel Salas
Que tal todos:
Necesito dibujar unos poligonos a partir de ciertas coordenadas, he visto la funcion polypolygon, solo que sus parámetros estan de 0 a 400, los que yo tengo son x=588458, y=2443823 , estas fueron tomadas por un GPS, o si alguien sabe la formula para calcular el area de un poligono a partir de este tipo de datos, me sería muy util.
(obviamente el ejemplo es solo un vertice para cada poligono tengo minimo 3 vertices)
Saludo a todos
desde México
Posted: Sat Nov 11, 2006 1:39 am
by Alfredo Arteaga
Las coordenadas geodesicas son muy diferentes de las coordenadas cartesianas, existe más de un método para generarlas y por lo tanto para obtener el posicionamiento global.
Hace álgún tiempo tuve oportunidad de participar en un proyecto... veré si encuentro algo. Tal vez sea bueno consultar algún GIS.
Posted: Mon Nov 13, 2006 1:14 pm
by Arturo Tamayo Daza
porque no te fijas en el Tdwg, esta toda la metodoligia para calcular areas de poligonos asi como primetros en funcion de coordenadas
saludos
arturo
Posted: Tue Nov 14, 2006 6:49 pm
by Miguel Salas
Gracias amigos, vere la tdwg, si encuentras algo Alfredo, te lo agadeceré mucho, ya que es la primera vez que me pongo a trabajar con coordenadas geodesicas y soy novato en esto.
un saludo cordial
Posted: Tue Nov 14, 2006 8:38 pm
by Alfredo Arteaga
Ya busque la rutina y no la encontré (seguramente se fue al cesto), me puse a ver por la red y la mejor referencia sobre GIS (Geographic Information System) la vi en Wikipedia.
Enviame un mensaje a mi privado y te envio un artículo del Doctor Guzman Arenas que describe un algoritmo para la determinación de áreas en superficies curvas o búscalo en la red.
Posted: Wed Nov 15, 2006 1:20 pm
by Arturo Tamayo Daza
Hola
esta es la funcion
FUNCTION CalculaPolig(nArea,nPerimetro)
local Px1:=0,Py1:=0,Pz1:=0
local Px2:={},Py2:={},Pz2:={}
local nDist1:=0,nArea1:=0,nArea2:=0
local I:=0
for i=1 to nI
/// Cargar los puntos del poligonos en un array si necesitas las de eje z es posible definirlas
AAdd(px2,px1)
AAdd(py2,py1)
AAdd(pz2,pz1)
next
if len(px2) >0
for i=1 to nI-1
nArea1+= (Px2*Py2[i+1])
nArea2+= (Px2[i+1]*Py2)
ndist1+=sqrt( (px2-px2[i+1])^2 + (py2-py2[i+1])^2)
next
endif
narea:=Abs(nArea1-nArea2)/2
nPerimetro:=ndist1
Return NIL //( {x,y,z} )
Posted: Thu Nov 16, 2006 8:13 pm
by Miguel Salas
Muchas Gracias Arturo un placer conocer gente agradable.
saludos