[Gvsig_desarrolladores] [Gvsig_usuarios] Dibujar un círculo con la librería geom

Joaquin Jose del Cerro Murciano jjdelcerro en gvsig.org
Sab Jul 27 12:22:00 CEST 2019


El vie., 26 jul. 2019 a las 13:39, Montes Cámara, Victor (<
victor.montes en alicante-ayto.es>) escribió:

> Gracias por la respuesta Joaquín. Por cierto la contesto en la lista de
> desarrolladores, ya que me equivoqué y la envié a la de usuarios.
>
> El problema ahora es dibujar el círculo en una capa. Para ello hago lo
> siguiente después de la última instrucción
>
> schema = createSchema()
> schema.append("GEOMETRY", "GEOMETRY")
> schema.get('GEOMETRY').setGeometryType(CIRCLE,D2M)
>
> shape = createShape(schema ,CRS='EPSG:25830')
>
> shape.edit()
> shape.append(GEOMETRY=circulo)
> shape.commit()
>
> currentView().addLayer(shape)
>
>
> Me da el siguiente error de ejecución:
>
>
> Error java.lang.RuntimeException: java.lang.RuntimeException: Error
> getting geometry type with type = 11, subtype = 2 in <script> at line
> number 36 utils 231:0
>
>
>
> Te contesto sin prestarle mucha atencion al error...

Los shapes no soportan geometrias de tipo "Circulo".
Los tipos soportado por el shape, son solo POINT, LINE, POLYGON,
MULTIPOINT, MULTILINE y MULTIPOLYGON.
Si pones:

schema.get('GEOMETRY').setGeometryType(CIRCLE,D2M)

Lo normal es que falle.

Si quieres guardar geomtrias "circulo", deberas usar otro formato, que yo
recuerde, ahora mismo solo te serviría el DXF.
Ahora bien, lo que si que puedes hacer es declarar el shape como POLYGON y
luego insertar el circulo. De forma automatica se convertira el circulo a
un poligono. Perderas precision, pero en general deberia servirte. Es lo
que suele hacerse de normal. ya que si luego quieres guardar ese circulo en
una BBDD lo normal es que tampoco pueds y en ese momento acabe
convirtiendose a poligono.

Un saludo
Joaquin




> Un saludo,
>
> Víctor Montes.
>
> ------------------------------
> *De: *"Joaquin Jose del Cerro Murciano" <jjdelcerro en gvsig.org>
> *Para: *"Lista de Usuarios de gvSIG" <gvsig_usuarios en listserv.gva.es>
> *Enviados: *Martes, 23 de Julio 2019 20:10:34
> *Asunto: *Re: [Gvsig_usuarios]        Dibujar un círculo con la librería
> geom
>
>
>
> El mar., 23 jul. 2019 a las 14:24, Montes Cámara, Victor (<
> victor.montes en alicante-ayto.es>) escribió:
>
>> Me gustaría saber cómo se dibuja un círculo en una vista. En la
>> documentación (
>> http://downloads.gvsig.org/download/web/es/build/html/scripting_devel_guide/2.3/modulo_geom.html)
>> utiliza la librería "geom" para dibujar puntos, líneas, polígonos,
>> multipolígonos, pero no explica cómo dibujar un elemento de tipo círculo,
>> por ejemplo a partir de un centro y un radio, o con tres puntos.
>>
>>
> Sin pensarlo demasiado, tirando directamente de la libreria de geometrias
> java de gvSIG....
>
> # encoding: utf-8
>
> import gvsig
>
> from org.gvsig.fmap.geom import Geometry
> from org.gvsig.fmap.geom import GeometryLocator
>
> def main(*args):
>   geometryManager = GeometryLocator.getGeometryManager()
>   #
> http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.4.0/docs/javadocs/html/index.html?org/gvsig/fmap/geom/GeometryManager.html
>   #
> http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.4.0/docs/javadocs/html/org/gvsig/fmap/geom/Geometry.TYPES.html
>   #
> http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.4.0/docs/javadocs/html/org/gvsig/fmap/geom/Geometry.SUBTYPES.html
>
>   center = geometryManager.createPoint(1,1,Geometry.SUBTYPES.GEOM2D)
>   circulo = geometryManager.create(
>     Geometry.TYPES.CIRCLE, # Geometry.TYPES.CIRCUMFERENCE
>     Geometry.SUBTYPES.GEOM2D
>   )
>   #
> http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.4.0/docs/javadocs/html/org/gvsig/fmap/geom/primitive/Circle.html
>   circulo.setPoints(center,10.0)
>
>   print circulo, circulo.getCenter(), circulo.getRadious()
>
> Usando el metodo create el GeometryManager se crean todos los tipos de
> geometrias soportados por gvSIG.
>
> Un saludo
> Joaquin
>
>
>
>
>> Un saludo,
>> Víctor Montes.
>> _______________________________________________
>> gvSIG_usuarios mailing list
>> gvSIG_usuarios 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_usuarios
>>
>
>
> --
> --------------------------------------
> Joaquin Jose del Cerro Murciano
> Development and software arquitecture manager at gvSIG Team
> jjdelcerro en gvsig.com
> gvSIG Association
> www.gvsig.com
>
> _______________________________________________
> gvSIG_usuarios mailing list
> gvSIG_usuarios 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_usuarios
>
>

-- 
--------------------------------------
Joaquin Jose del Cerro Murciano
Development and software arquitecture manager at gvSIG Team
jjdelcerro en gvsig.com
gvSIG Association
www.gvsig.com
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20190727/43da619f/attachment.html>


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