[Gvsig_desarrolladores] duda con shapefactory

Francisco José Peñarrubia fpenarru en gmail.com
Lun Jun 15 09:35:57 CEST 2009


Hola Gorka.

El truco está en separar modelo-vista.
El modelo es tu punto, y eso no cambia. Con ShapeFactory lo creas en 
coordenadas de mundo real.
Lo que necesitas es cambiar cómo se pinta (grosor en pixels). Eso lo 
puedes hacer con FSymbol (si trabajas con la 1.9 todavía vale, pero ahí 
supongo que ya está deprecado. En la 2.0 seguro que cambia).
FSymbol theSymbol = new FSymbol(FConstant.SYMBOL_TYPE_POINT);
theSymbol.setSizeInPixels(true);
theSymbol.setSize(12); //pixels

y luego lo añades al graphic list

int idSymbol = lyr.addSymbol(theSymbol);
            IGeometry geom = ShapeFactory.createPoint2D(500000, 4499980);
            FGraphic theGraphic = new FGraphic(geom, idSymbol);
            lyr.addGraphic(theGraphic);

Espero que te sirva.
Saludos.
Fran Peñarrubia.
www.scolab.es

Gorka Sanz escribió:
> La duda es la siguiente.
>
> Resulta que nos gustaría dibujar en la vista, un punto en unas 
> coordenadas determinadas,
> esto lo sabemos hacer y lo hacemos sobre la graphicLayer, pero 
> queremos dibujar un punto
> con un parámetro de grosor y que sea en coordenadas píxel y no en 
> coordenadas metros.
>
> Es decir que al hacer Zoom más el tamaño de la geometría no aumente.
>
> La geometría de punto propia del gvSIG nos permite dibujar el punto en 
> coordenadas píxel
> (ShapeFactory.createPoint(coordx,coordy)),pero nos gustaría que el 
> diámetro de ese punto
> fuera mayor algo parecido a un createPoint(Point2D point,Float 
> diametro, Boolean Pixel).
>
> Gracias por adelantado.
>
> Un cordial saludo.
> ------------------------------------------------------------------------
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>   



More information about the gvSIG_desarrolladores mailing list