Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [udig-devel] WARNING: Bounds crs not defined; assuming bounds from schema

I think you found a bug; the layer puts a feature listener against the datastore; in order to know when to refresh.
I bet by add/remove the georesource you missed the step of hooking up the listener?

-- 
Jody Garnett

On Tuesday, 10 May 2011 at 11:08 PM, Joaquín Rodriguez-Guerra Urcelay wrote:

You are right, when I create only one layer with a temporary resource, I can modify the features in its georesource, and the layer is refreshed without even invoking layer.refresh() method.
However, I dont know why, but If I add 2 temporary layers (invoking the funcion for the first layer twice), then it is like the layers dont notice the changes until I add/remove the modified georesource from them... and then I refresh them. Probably I am missing something, but at leat it is working now :)
________________________________________
De: udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx [udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx] En nombre de Jody Garnett [jody.garnett@xxxxxxxxx]
Enviado el: martes, 10 de mayo de 2011 14:24
Para: User-friendly Desktop Internet GIS
Asunto: Re: [udig-devel] WARNING: Bounds crs not defined; assuming bounds from schema

There is a layer.refresh method? why remove/add georesource again?

--
Jody Garnett


On Tuesday, 10 May 2011 at 9:44 PM, Joaquín Rodriguez-Guerra Urcelay wrote:

I have seen that removing/adding georesource from layer is not the cause of the warning.
I think I finally understood that the warning comes from modifying the features in a new temporary resource, and setting this resource in the layer, instead of modifying the features directlr in the layers current georesource.
Then I can safely remove/add georesource in layer to force the refresh. :)
Cheers,
Joaquín
________________________________________
De: udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx<mailto:udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx> [udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx<mailto:udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx>] En nombre de Joaquín Rodriguez-Guerra Urcelay [jrguerra@xxxxxxx<mailto:jrguerra@xxxxxxx>]
Enviado el: martes, 10 de mayo de 2011 12:52
Para: User-friendly Desktop Internet GIS
Asunto: Re: [udig-devel] WARNING: Bounds crs not defined; assuming bounds from schema

Thanks Jody,

I noticed that If I add an empty temporaryResource to the map, I dont get any warning

IGeoResource tempResource = catalog.createTemporaryResource(pathFeatureType);
Layer layer= layerFactory.createLayer(tempResource);
layer.setBounds(new ReferencedEnvelope(new Envelope (-180, 180, -90, 90), DefaultGeographicCRS.WGS84));
layer.setCRS(DefaultGeographicCRS.WGS84);
System.out.println(layer.getBounds(null, DefaultGeographicCRS.WGS84));
System.out.println(layer.getGeoResource().getInfo(null).getBounds());

ReferencedEnvelope[-180.0 : 180.0, -90.0 : 90.0]
ReferencedEnvelope[0.0 : -1.0, 0.0 : -1.0]

and If I modify the feature in the temporary resource, then I dont get the warning neither.

// Add new feature to a new igeoresource
IGeoResource newGeoresource =D layer.getGeoResource();
FFeatureStore fs =newGeoresource.resolve(FeatureStore.class, null);
FFeatureCollection features = FeatureCollections.newCollection();
features.add(feature);
fs.addFFeatures(features);

The problem was ocurring If I created a new temporary resource with new values, and then replace layer's georesource with the new one.

IGeoResource newGeoresource =D catalog.createTemporaryResource(pathFeatureType);
System.out.println("CR " +newGeoresource.getInfo(null).getBounds().toString());
FeatureStore fs =newGeoresource.resolve(FeatureStore.class, null);
FFeatureCollection features = FeatureCollections.newCollection();
features.add(feature);
fs.addFFeatures(features);
System.out.println(""CD " +newGeoresource.getInfo(null).getBounds().toString());
// Delete old georesources from layer and add the new one, then refresh
List<IGeoResource> georesources=Dlayer.getGeoResources();
while(georesources.size()>0){
georesources.remove(georesources.size()-1);
}
layer.getGeoResources().add(newGeoresource);

CR ReferencedEnvelope[0.0 : -1.0, 0.0 : -1.0]
CD ReferencedEnvelope[-6.0 : 14.0, -10.0 : 20.0]

Although bounds were being updated correctly from [0.0 : -1.0, 0.0 : -1.0] to [-6.0 : 14.0, -10.0 : 20.0] :) , I think the remove/add georesouce thing from layer is not the best way to go. I had to do it this way because I needed to force the renderer to redraw the layer with the modifications, but right now it is working and refreshing just updating the features in the georesouce, so problem solved by now :)

Cheers


________________________________________
De: udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx<mailto:udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx> [udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx<mailto:udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx>] En nombre de Jody Garnett [jody.garnett@xxxxxxxxx<mailto:jody.garnett@xxxxxxxxx>]
Enviado el: martes, 10 de mayo de 2011 10:57
Para: User-friendly Desktop Internet GIS
Asunto: Re: [udig-devel] WARNING: Bounds crs not defined; assuming bounds from schema

Interesting; here is what the warning means.

- we keep a bounding box for the data as part of the IGeoResoruceInfo (so if you hit zoom to layer this is the bounds that it uses)
- if it cannot find a value there; it looks at the CRS for the layer and makes a "guess" - that is what this warning is about.

So perhaps our temporary resource code needs the ability to set the IGeoResourceInfo bounds?

--
Jody Garnett


On Tuesday, 10 May 2011 at 4:13 PM, Joaquín Rodriguez-Guerra Urcelay wrote:

Hello,

I was wondering if this warning is familiar to any of you...
I have created a layer containing a TemporaryResource (code below) , and it works correctly, but everytime it needs to be rendered, I get the following warning:

09-may-2011 12:55:35 org.geotools.map.FeatureLayer getBounds
WARNING: Bounds crs not defined; assuming bounds from schema are correct for AbstractDataStore.AbstractFeatureLocking(PathType (4))

Is there any way to set the CRS so I dont get the warning all the time?? I have tried setting CRS in the layer, and also in the featureBuilder :S

IGeoResource newGeoresource =D catalog.createTemporaryResource(pathFeatureType);
FeatureStore fs =newGeoresource.resolve(FeatureStore.class, null);
FFeatureCollection features = FeatureCollections.newCollection();
features.add(feature);
fs.addFeatures(features);

// Delete old georesources from layer and the new one
List<IGeoResource> georesources=pathLayer.getGeoResources();
while(georesources.size()>0){{
georesources.remove(georesources.size()-1);
}}
pathLayer.getGeoResources().add(newGeoresource);

pathLayer.setBounds(new ReferencedEnvelope(new Envelope (-180, 180,, -90, 90), DefaultGeographicCRS.WGS84));
pathLayer.setCRS(DefaultGeographicCRS.WGS84);
pathLayer.refresh(pathLayer.getBounds(null,DefaultGeographicCRRS.WGS84 ));

Thanks,

Joaquín
________________________________________
De: udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx<mailto:udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx> [udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx<mailto:udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx>] En nombre de Joaquín Rodriguez-Guerra Urcelay [jrguerra@xxxxxxx<mailto:jrguerra@xxxxxxx>]
Enviado el: viernes, 06 de mayo de 2011 11:04
Para: User-friendly Desktop Internet GIS
Asunto: Re: [udig-devel] Dynamic Features Layer Refresh

I found a way around the problem, instead of using layer.setGeoresource(..) for changing the georesource in the layer, I now remove the old georesource and add the new one with the following code, and it seems to work correctly :)

layer.getGeoResources().remove(0);
layer.getGeoResources().add(newGeoresource);

cheers,

Joaquín
________________________________________
De: udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx<mailto:udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx> [udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx<mailto:udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx>] En nombre de Joaquín Rodriguez-Guerra Urcelay [jrguerra@xxxxxxx<mailto:jrguerra@xxxxxxx>]
Enviado el: jueves, 05 de mayo de 2011 18:42
Para: udig-devel@xxxxxxxxxxxxxxxxxxxxx<mailto:udig-devel@xxxxxxxxxxxxxxxxxxxxx>
Asunto: [udig-devel] Dynamic Features Layer Refresh

Hello,

I am having some troube with a vector layer I created which I would like to modify programatically, and I have wiritten some code that works sometimes, and some times not. I would appreciate if you could tell me if I am I following the right approach for doing this..

I have a table of points that changes over the time, and I want to have a layer representing a line following all the points. For this, I created a Temporary Resource, and I added it as a layer:

// Create path layer
List<ILayer&ggt; layers = new ArrayList<ILayer>();
IGeoResource tempResource = catalog.createTemporaryResource(pathFeatureType);
Layer layer= layerFactory.createLayer(tempResource);
layer.setName(GEORESOURCE_PATH_REAL);
layers.add(layer);
map.sendCommandASync(new AddLayersCommand(layers));

TThen, every time some one inserts a point in the table, I would like to recalculate the feature (the line) in the temporary resource and redraw it.


Coordinate[] coords= new Coordinate[positionsCoords.size()];
....... calculate new line.........
LineString line =D geometryFactory.createLineString(coords);

// Create Feature containing the line string
// add the attributes in order
featureBuilder.add(line);
featureBuilder.add(1);
featureBuilder.add(""Path");
// build the feature
SimpleFFeature feature = featureBuilder.buildFeature("Path");

// Remove all features from igeoresource and add thee new one
IGeoResource georesource = pathLayer.getGeoResource();
FeatureStore fs = null;
fs = georesource.resolve(FeatureStore.class, null);
fs.removeFeatures(Filter.INCLUDE);
FeatureCollection features = FeatureCollections.newCollection();
features.add(feature);
fs.addFFeatures(features);
pathLayer.setGeoResource(georesource);
}}

This piece of code works sometimes, and I can see the new line drawn whenever I execute this (in a command or action), but most time the line is not redrawn. I have tried using layer.refresh(bounds), but It does not fix it. Is there any other way to force the redraw of the layer? I can debug and see that the feature was correcly updated in the georesource...

Is this the right approach for doing this?? or maybe there are some other ways to do it?

Thanks!

______________________
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.

______________________

_______________________________________________
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.

______________________

_______________________________________________
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.

______________________

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


Back to the top