[Gvsig_desarrolladores] mostrar distancias de un poligono

Elder Robert Zavaleta Veneros erobert_zv en hotmail.com
Vie Mayo 7 02:05:51 CEST 2010


Hola  Juan :

Lo intente pero falle, talvez estoy asiendo algo mal

No hay otra manera de hacerlo:

por ejemplo encontar los puntos(coordenadas) del contorno un poligono y luego aplicar

la fomula de distancia entre dos puntos. 

Saludos 

Robert Zavaleta
 


Subject: RE: [Gvsig_desarrolladores] mostrar distancias de un poligono
Date: Fri, 5 Mar 2010 14:34:48 +0100
From: jldominguez en prodevelop.es
To: erobert_zv en hotmail.com; gvsig_desarrolladores en listserv.gva.es





Hola, Robert.
El código que te propuesto es compartido por gvSIG y gvSIG Mobile. SOlo cambia a veces la ubicación de las clases.
 
Esto es un ejemplo:
 
En tu workspace tienes un archivo llamado FLyrVect.java (proyecto libFMap). En esa clase hay un metodo que se llama draw ó _draw en el que tienes una instrucción como esta:
 
...
geom = feat.getGeometry();
....
 
o muy similar a esta, donde geom es una variable de tipo IGeometry. Puedes simplemente añadir dos líneas de código para que quede así:
 
...
geom = feat.getGeometry();
double area_geom = getPathIteratorArea(geom.getPathIterator(null));
System.out.println("AREA = " + area);
...
 
y después añades en la clase FLyrVect el método getPathIteratorArea(PathIterator piter); que te he indicado antes. Ese método usa clases que no se usaban en FLyrVect, pero puedes añadir facilmente esos 'import' (Eclipse lo puede hacer inmediatamente).
 
Con ese cambio, si ejecutas gvSIG y añades una capa de polígonos, podrás ver en la consola de Eclipse el área de cada polígono que se dibuja sobre el mapa.
 
De la misma manera, cuando hayas accedido a un polígono o multilinea, puedes obtener su PathIterator y calcular las distancias.
 
Saludos,
 

Juan Lucas Domínguez Rubio
---
Prodevelop SL, Valencia (España)

Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
http://www.prodevelop.es
---



De: Elder Robert Zavaleta Veneros [mailto:erobert_zv en hotmail.com]
Enviado el: jue 04/03/2010 21:44
Para: gvsig_desarrolladores en listserv.gva.es; Juan Lucas Dominguez Rubio
Asunto: RE: [Gvsig_desarrolladores] mostrar distancias de un poligono


Hola Juan Dominguez, la verdad es que no estoy muy familiarizado con la version Mobil de GvSig,
Si fuera posible me dieras alcanses para la version de gvSig Desktop 1.1 por ejemplo:
-como recorrer un poligono,
-capturar sus vertices y coordenadas
 
sabiendo esos datos ya podria aplicar la formula de pitagoras que me mencionas.
 
o en tal caso, de donde optengo los jars necesarios para compliar la clase que me das de referencia 
http://subversion.gvsig.org/gvSIG-mobile/pilots/branches/pilot2/libraries/libFMap/src/es/prodevelop/gvsig/mobile/fmap/util/graph2d/Graph2DUtilities.java
y poder hacer mis pruebas
 
las gracias de antemano:
Atte.
Robert Zavaleta

 


Date: Sat, 27 Feb 2010 14:42:24 +0100
From: jldominguez en prodevelop.es
To: gvsig_desarrolladores en listserv.gva.es; gvsig_desarrolladores en runas.cap.gva.es
Subject: Re: [Gvsig_desarrolladores] mostrar distancias de un poligono

Hola. Si lo preguntas en esta lista, entiendo que estás escribiendo y compilando código Java.

En esta clase hay varios ejemplos de cómo se accede a los vértices de las geometrías:

http://subversion.gvsig.org/gvSIG-mobile/pilots/branches/pilot2/libraries/libFMap/src/es/prodevelop/gvsig/mobile/fmap/util/graph2d/Graph2DUtilities.java

Este método de esa clase calcula el área de un polígono averiguando sus vértices y usando los algoritmos de JTS:

public static double getPathIteratorArea(PathIterator piter) { ... }

Puedes hacer algo similar, y cuando tengas la lista de vértices, en lugar de calcular el área, puedes calcular las distancias que los separan con la fórmula de Pitágoras, suponiendo que estás usando una proyección como UTM o Lambert y aceptas el error que se comete.

Si las coordenadas están en grados (longitud y latitud) debes usar otras fórmulas más sofisticadas:

http://es.wikipedia.org/wiki/F%C3%B3rmulas_de_Vincenty

Para obtener el PathIterator de una geometría de gvSIG, puedes ver este método (ya que las geometrías cumplen la interface Shape):

private static PathIterator getPathIterator(Shape shp) { ... }

Es esto lo que buscabas?

Saludos,

Juan Lucas Domínguez Rubio
---
Prodevelop SL, Valencia (España)
Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
http://www.prodevelop.es
---



-----Original Message-----
From: gvsig_desarrolladores-bounces en listserv.gva.es on behalf of Elder Robert Zavaleta Veneros
Sent: Sat 27/02/2010 2:13
To: gvsig_ desarrolladores
Subject: Re: [Gvsig_desarrolladores] mostrar distancias de un poligono


Hola a todos:
Como les comente, hay alguna manera de mostrar las distancias entre los puntos

de un polígono


el agradecimiento de antemano:
Robert Zavaleta




From: erobert_zv en hotmail.com
To: gvsig_desarrolladores en listserv.gva.es; gvsig_desarrolladores en runas.cap.gva.es
Subject: mostrar distancias de un poligono
Date: Tue, 23 Feb 2010 21:05:36 -0500



Hola a todos:
estoy desarrollado extensiones en gvsig 1.2, pero ahora me encuentro con un problema
y les consulto, hay alguna manera de mostrar las distancias entre puntos de un polígono

el agradecimiento de antemano:
Robert Zavaleta




Your E-mail and More On-the-Go. Get Windows Live Hotmail Free. Sign up now.                                      
_________________________________________________________________
Hotmail: Powerful Free email with security by Microsoft.
https://signup.live.com/signup.aspx?id=60969





Hotmail: Trusted email with Microsoft’s powerful SPAM protection. Sign up now.  		 	   		  
_________________________________________________________________
Hotmail: Trusted email with Microsoft’s powerful SPAM protection.
https://signup.live.com/signup.aspx?id=60969
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20100506/4ca75358/attachment.htm 


Más información sobre la lista de distribución gvSIG_desarrolladores