[Gvsig_desarrolladores] No hay acceso a un método desde DefaultGeometryManager

César Martínez cmartinez en scolab.es
Mar Dic 20 13:56:01 CET 2016


Hola Iago, la librería de geometrías está implementada usando JTS,
pero lo recomendable es que siempre gestiones las geometrías a través
de la API, con lo cual las geometrías las crearías de la siguiente
forma:

GeometryManager manager = GeometryLocator.getGeometryManager()
Point point = manager.createPoint(1.23, 3.45, Geometry.SUBTYPES.GEOM2D);

Line line = manager.createLine(Geometry.SUBTYPES.GEOM2D);
poly.addVertex(11.0, 11.0);
poly.addVertex(22.0, 11.0);

Polygon poly = manager.createPolygon(Geometry.SUBTYPES.GEOM2D);
poly.addVertex(1.11, 2.22);
poly.addVertex(2.11, 2.22);
poly.addVertex(1.11, 3.22);
poly.addVertex(1.11, 2.22);

Espero que te ayude,

César


El día 20 de diciembre de 2016, 11:31, Iago Alonso Alonso
<ialonso en enxenio.es> escribió:
> Hola, me gustaría saber si se usa algún manager para la clase Converter, ya
> que en una clase tengo:
>
> import org.gvsig.fmap.geom.util.Converter; *Marcado como deprecated*
>
> y en una línea se usa:
>
> <variable> = Converter.jtsToGeometry(geoJTS); *Marcado como deprecated*
>
> Así que buscando por el código he encontrado una clase "Converter.java"
> ubicada en "org.gvsig.desktop.compat.cdc" ->
> "org.gvsig.fmap.geom.generalpath.util" marcada como deprecated y otra clase
> en el mismo directorio llamada "UtilFunctions.java" marcada como deprecated
> también. He seguido buscando y he encontrado un DefaultGeometryManager
> (import org.gvsig.fmap.geom.impl.DefaultGeometryManager;) que implementa a
> GeometryManager, por lo que en el código es el que utilizo:
>
> Geometry igeo = null;
> if (elemento != null) {
>    com.vividsolutions.jts.geom.Geometry geoJTS =
> elemento.getElementoInfraestructura().getGeometria();
>    try {
>        DefaultGeometryManager geomManager = new DefaultGeometryManager() <-
> añadida (GeometryManager no tiene ese método)
>        igeo = geomManager.createFrom(geoJTS); <- Da error de "The method
> createFrom(String) in the type DefaultGeometryManager is not applicable for
> the arguments (Geometry)"
>
>        igeo = Converter.jtsToGeometry(geoJTS); **Deprecated** (la que quiero
> eliminar)
>    } catch (CreateGeometryException e) {
>        e.printStackTrace();
>    }
>
>     .....................
>
> }
>
> Pero si voy a la clase "DefaultGeometryManager" (package
> org.gvsig.fmap.geom.generalpath) veo que hay un método "createFrom" que
> recibe un "Geometry":
>
> public Geometry createFrom(com.vividsolutions.jts.geom.Geometry geom) throws
> GeometryException {
>     return Converter.jtsToGeometry(geom);
> }
>
> Pero cuando hago geomManager.<buscar métodoDefault> me salen todos los
> createForm menos ese (sólo me aparecen los de createFrom(String wkt, String
> srs), createFrom(String wkt) y createFrom(byte[] wkb)) y no tengo acceso a
> ese. ¿Qué estoy haciendo mal? ¿O es que no se tiene acceso a ese método,
> aunque está como público?
>
> Un saludo y gracias.
>
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse
> de baja en esta lista, acuda a la siguiente dirección:
> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>



-- 
SCOLAB
http://scolab.es


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