Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [udig-devel] Unable to find function geometryType

Hello,

I solved the problem by adding the WFS layers individually one by one:

		for (ILayer layer: layers){
			map.sendCommandASync(new AddLayerCommand((Layer)layer));
		}

instead of all at the same time:

map.sendCommandASync(new AddLayersCommand(layers));

Cheers,
________________________________________
De: udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx [udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx] En nombre de Joaquín Rodriguez-Guerra Urcelay [jrguerra@xxxxxxx]
Enviado el: martes, 17 de mayo de 2011 16:57
Para: udig-devel@xxxxxxxxxxxxxxxxxxxxx
Asunto: [udig-devel]  Unable to find function geometryType

Hello,

I wonder if this error sounds familiar to you.. I have been getting it often when  rendering WFS layers in uDig, and I cannot find anything on google. Sometimes It happens, and sometimes not, it is intermitent, but when it happens,  at least one of the wfs layers is not rendered and I have to click the refresh button to get it rendered. As a workaround I can programatically refresh all the layers once the last one is loaded (I check this with the layerInterceptor), but It would be good to know why is really happening.

I have started my application from the RCP sample, so in the mapviewer class I add 10 WFS layers as follows. (If I just add one layer it does not happen usually, I guess the error comes because I am adding serveral layers, is there any better way to do this?):

MapView.java

.........
        // create a new empty map
        // if you are going to add layers do so now
        // prior to adding to the mapviewer
        //
        map = (Map) ProjectFactory.eINSTANCE.createMap();
        LayersUtil.AddLayersToMap(map);
        mapviewer.setMap(map);
.........

LayersUtil.java:
        public static void AddLayersToMap(final Map map) {
                List<ILayer> layers = createMapLayers();
                map.sendCommandASync(new AddLayersCommand(layers));
         }

       public static void createMapLayers(){
                List<ILayer> layers = new ArrayList<ILayer>();
                URL url = new URL(MAPSERVER_GETCAPABILITIES_WFS);
                IServer handle = catalog.acquire(url, null);
                if (handle != null) {
                        List<IGeoResource> resources = (List<IGeoResource>) handle.resources(new NullProgressMonitor());
                        for (IGeoResource resource : resources) {
                                String layerId=resource.getIdentifier().toString();
                                if (layerId.equals(MAPSERVER_GETCAPABILITIES_WFS + "#"+GEORESOURCE_POSITION_REAL) ) {
                                        Layer layer=layerFactory.createLayer(resource);
                                        layers.add(layer);
                                }
                               else if (layerId.equals(.....
                               ....
                        }
                 }
         }

This is what I get:

17-may-2011 17:18:34 org.geotools.renderer.lite.StreamingRenderer fireErrorEvent
GRAVE: Unable to find function geometryType
java.lang.RuntimeException: Unable to find function geometryType
        at org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:103)
        at org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:69)
        at org.geotools.filter.FilterFactoryImpl.function(FilterFactoryImpl.java:469)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:309)
        at org.geotools.filter.FunctionExpressionImpl.accept(FunctionExpressionImpl.java:147)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:114)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:155)
        at org.geotools.filter.IsEqualsToImpl.accept(IsEqualsToImpl.java:151)
        at org.geotools.styling.visitor.DuplicatingStyleVisitor.copy(DuplicatingStyleVisitor.java:359)
        at org.geotools.styling.visitor.DuplicatingStyleVisitor.visit(DuplicatingStyleVisitor.java:270)
        at org.geotools.renderer.lite.StreamingRenderer.rescaleFeatureTypeStyle(StreamingRenderer.java:1969)
        at org.geotools.renderer.lite.StreamingRenderer.applyUnitRescale(StreamingRenderer.java:1947)
        at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1897)
        at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:764)
        at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:572)
        at net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:359)
        at net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:222)
        at net.refractions.udig.project.internal.render.impl.RenderJob.startRendering(RenderJob.java:108)
        at net.refractions.udig.project.internal.render.impl.RenderJob.run(RenderJob.java:213)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
java.lang.RuntimeException: Unable to find function geometryType
        at org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:103)
        at org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:69)
        at org.geotools.filter.FilterFactoryImpl.function(FilterFactoryImpl.java:469)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:309)
        at org.geotools.filter.FunctionExpressionImpl.accept(FunctionExpressionImpl.java:147)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:114)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:155)
        at org.geotools.filter.IsEqualsToImpl.accept(IsEqualsToImpl.java:151)
        at org.geotools.styling.visitor.DuplicatingStyleVisitor.copy(DuplicatingStyleVisitor.java:359)
        at org.geotools.styling.visitor.DuplicatingStyleVisitor.visit(DuplicatingStyleVisitor.java:270)
        at org.geotools.renderer.lite.StreamingRenderer.rescaleFeatureTypeStyle(StreamingRenderer.java:1969)
        at org.geotools.renderer.lite.StreamingRenderer.applyUnitRescale(StreamingRenderer.java:1947)
        at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1897)
        at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:764)
        at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:572)
        at net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:359)
        at net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:222)
        at net.refractions.udig.project.internal.render.impl.RenderJob.startRendering(RenderJob.java:108)
        at net.refractions.udig.project.internal.render.impl.RenderJob.run(RenderJob.java:213)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
net.refractions.udig.project.render.RenderException: Problemas renderizando:Unable to find function geometryType
        at net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:388)
        at net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:222)
        at net.refractions.udig.project.internal.render.impl.RenderJob.startRendering(RenderJob.java:108)
        at net.refractions.udig.project.internal.render.impl.RenderJob.run(RenderJob.java:213)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: java.lang.RuntimeException: Unable to find function geometryType
        at org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:103)
        at org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:69)
        at org.geotools.filter.FilterFactoryImpl.function(FilterFactoryImpl.java:469)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:309)
        at org.geotools.filter.FunctionExpressionImpl.accept(FunctionExpressionImpl.java:147)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:114)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:155)
        at org.geotools.filter.IsEqualsToImpl.accept(IsEqualsToImpl.java:151)
        at org.geotools.styling.visitor.DuplicatingStyleVisitor.copy(DuplicatingStyleVisitor.java:359)
        at org.geotools.styling.visitor.DuplicatingStyleVisitor.visit(DuplicatingStyleVisitor.java:270)
        at org.geotools.renderer.lite.StreamingRenderer.rescaleFeatureTypeStyle(StreamingRenderer.java:1969)
        at org.geotools.renderer.lite.StreamingRenderer.applyUnitRescale(StreamingRenderer.java:1947)
        at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1897)
        at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:764)
        at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:572)
        at net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:359)
        ... 4 more

Thank you!!

Joaquín
______________________
This message including any attachments may contain confidential
information, according to our Information Security Management System,
 and intended solely for a specific individual to whom they are addressed.
 Any unauthorised copy, disclosure or distribution of this message
 is strictly forbidden. If you have received this transmission in error,
 please notify the sender immediately and delete it.

______________________
Este mensaje, y en su caso, cualquier fichero anexo al mismo,
 puede contener informacion clasificada por su emisor como confidencial
 en el marco de su Sistema de Gestion de Seguridad de la
Informacion siendo para uso exclusivo del destinatario, quedando
prohibida su divulgacion copia o distribucion a terceros sin la
autorizacion expresa del remitente. Si Vd. ha recibido este mensaje
 erroneamente, se ruega lo notifique al remitente y proceda a su borrado.
Gracias por su colaboracion.

______________________

_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel

______________________
This message including any attachments may contain confidential 
information, according to our Information Security Management System,
 and intended solely for a specific individual to whom they are addressed.
 Any unauthorised copy, disclosure or distribution of this message
 is strictly forbidden. If you have received this transmission in error,
 please notify the sender immediately and delete it.

______________________
Este mensaje, y en su caso, cualquier fichero anexo al mismo,
 puede contener informacion clasificada por su emisor como confidencial
 en el marco de su Sistema de Gestion de Seguridad de la 
Informacion siendo para uso exclusivo del destinatario, quedando 
prohibida su divulgacion copia o distribucion a terceros sin la 
autorizacion expresa del remitente. Si Vd. ha recibido este mensaje 
 erroneamente, se ruega lo notifique al remitente y proceda a su borrado. 
Gracias por su colaboracion.

______________________



Back to the top