Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [udig-devel] Fwd: Re: where conditions while displaying postgis table

The layer; once created has a label or title you can just change (the same way a user can rename a layer).

The default layer name comes from the GeoResource.getInfo( null ).getTitle();

Jody

On 06/07/2010, at 5:36 AM, konfri@xxxxxx wrote:

> Hey Jody,
> 
> the "java.lang.ClassNotFoundException: com.vividsolutions.jts.geom.GeometryFactory" was caused by some strange dependency issues. I got this working. 
> 
> You suggested as solution for my question feature types. It works, but I was wondering if could set the visual layer name in uDig? Unfortunately, it is always "machine" ... 
> 
> DataStore dataStore = connect(new PostgisNGDataStoreFactory());
> FeatureSource<SimpleFeatureType, SimpleFeature> featureSource = dataStore.getFeatureSource("machine");
> FeatureCollection<SimpleFeatureType, SimpleFeature> featureCollection = featureSource.getFeatures();
> 
> List<Machine> ms; // list of machines from DB
> 
> int index = 0;
> for (MachineCharging m : ms) {  featureCollection.add(SimpleFeatureBuilder.build(featureSource.getSchema(),new Object[] { m },("name" + index++)));
> }
> 
> IGeoResource resource =       CatalogPlugin.getDefault().getLocalCatalog().createTemporaryResource(featureSource.getSchema());
> resource.resolve(FeatureStore.class, new NullProgressMonitor()).addFeatures(featureCollection);
> 
> ApplicationGIS.addLayersToMap(ApplicationGIS.getActiveMap(),Collections.singletonList(resource), ApplicationGIS.getActiveMap().getElements().size());
> 
> Thanks again for your help :)
> 
> Konstantin
> 
> 
>> 
>> 
>> -------- Original Message --------
>> Subject: 	Re: [udig-devel] where conditions while displaying postgis table
>> Date: 	Sun, 27 Jun 2010 10:11:54 +1000
>> From: 	Jody Garnett <jody.garnett@xxxxxxxxx>
>> Reply-To: 	User-friendly Desktop Internet GIS 
>> <udig-devel@xxxxxxxxxxxxxxxxxxxxx>
>> To: 	User-friendly Desktop Internet GIS <udig-devel@xxxxxxxxxxxxxxxxxxxxx>
>> 
>> 
>> 
>> Wow that is strange; the only thing I can think of is that OSGi is letting you have two copies of jts around? And it is having trouble casting instances made under one classloader to instances made with the other?
>> 
>> In eclipse could you check your properties>  java build path and see what is happening?
>> 
>> As you say this is really odd.
>> 
>> Jody
>> 
>> 
>> On 27/06/2010, at 5:43 AM,konfri@xxxxxx  wrote:
>> 
>>> Hey Jody,
>>> 
>>> thanks for your reply. I tried your first suggestion and created feature type. Unfortunately an exception is thrown:
>>> 
>>> net.refractions.udig.project.render.RenderException: Exception(s) occured during rendering: com.vividsolutions.jts.geom.Point cannot be cast to com.vividsolutions.jts.geom.Geometry
>>>    at net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:355)
>>>    at net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:224)
>>>    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.ClassCastException: com.vividsolutions.jts.geom.Point cannot be cast to com.vividsolutions.jts.geom.Geometry
>>>    at org.geotools.data.memory.MemoryDataStore.getBounds(MemoryDataStore.java:600)
>>>    at org.geotools.data.AbstractFeatureSource.getBounds(AbstractFeatureSource.java:308)
>>>    at org.geotools.data.AbstractFeatureSource.getBounds(AbstractFeatureSource.java:276)
>>>    at net.refractions.udig.catalog.memory.internal.MemoryGeoResourceImpl$ScratchResourceInfo.getBounds(MemoryGeoResourceImpl.java:155)
>>>    at net.refractions.udig.project.internal.impl.GeoResourceInfoInterceptor$Wrapper.getBounds(GeoResourceInfoInterceptor.java:68)
>>>    at net.refractions.udig.project.internal.impl.LayerImpl.obtainBoundsFromResources(LayerImpl.java:2014)
>>>    at net.refractions.udig.project.internal.impl.LayerImpl.getBounds(LayerImpl.java:1985)
>>>    at net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.validateBounds(BasicFeatureRenderer.java:438)
>>>    at net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:253)
>>>    ... 4 more
>>> 
>>> The part of my source code:
>>> 
>>> FeatureCollection<SimpleFeatureType, SimpleFeature>  collection = FeatureCollections
>>>        .newCollection();
>>> List<House>  mcs = Util.getHouses();
>>> 
>>> SimpleFeatureType sft = null;
>>> {
>>>    SimpleFeatureType temp = DataUtilities.createType("Houses", "name:String,position:Point");
>>>    sft = DataUtilities.createSubType(temp, null, DefaultGeographicCRS.WGS84);
>>> }
>>> 
>>> int index = 0;
>>> for (House mc : mcs) {
>>>    collection.add(SimpleFeatureBuilder.build(sft,new Object[] { mc.getName(),mc.getPos() },"House" + index++));
>>> }
>>> 
>>> IGeoResource resource = CatalogPlugin.getDefault().getLocalCatalog().createTemporaryResource(sft);
>>> resource.resolve(FeatureStore.class, new NullProgressMonitor()).addFeatures(collection);
>>> 
>>> ApplicationGIS.addLayersToMap(ApplicationGIS
>>>        .getActiveMap(), Collections
>>>        .singletonList(resource), ApplicationGIS
>>>        .getActiveMap().getElements().size());
>>> 
>>> 
>>> It's a strange exceptions, since I've used a working example being able to visualize some sample points.
>>> 
>>> collection.add(SimpleFeatureBuilder.build(sft, new Object[] { wkt.read("POINT(4 4)"), "XX2" }, "name2"));
>>> 
>>> This line would produce a working layer that could be visualized by uDig. My House object already provides the position property as a point.
>>> 
>>> 
>>> In addition, I would like to know if the is a more straightforward way in creating feature types instead of producing strings with name and type?
>>> 
>>> Best regards,
>>> 
>>> Konstantin
>>> 
>>> 
>>> On 06/22/2010 01:50 AM, Jody Garnett wrote:
>>>> I am afraid the filter standard we use for interacting with shapefiles, postgis and web feature servers is focused just on a single where statement and does not offer joins.
>>>> 
>>>> So I will have to ask you to create a view in your database for this purpose.
>>>> 
>>>> There are two developments occurring in GeoTools that should help:
>>>> - app schema work allowing you to define a feature type and provide a mapping to the various tables that form its content
>>>> - andrea is looking at allowing sql based queries which would hopefully be similar to defining your own view
>>>> 
>>>> I have also personally created a work around (a function that does a "lookup" in another table file; I ended up loading the other file into memory to make this happen and cannot really recommend it).
>>>> 
>>>> Jody
>>>> 
>>>> On 22/06/2010, at 2:19 AM,konfri@xxxxxx  wrote:
>>>> 
>>>>> Hey,
>>>>> 
>>>>> I'm having a postgis table with several columns storing the position and some meta information like the time. Now, I would like to use the meta information (can be distributed over several tables) and visualizing only certain rows.
>>>>> 
>>>>> At present, I'm using the catalog to display the entire postgis table. Is there a way of adding additional where-conditions?
>>>>> 
>>>>> Thanks,
>>>>> 
>>>>> Kon
>>>>> 
>>>>> -- 
>>>>> GMX DSL: Internet-, Telefon- und Handy-Flat ab 19,99 EUR/mtl.
>>>>> Bis zu 150 EUR Startguthaben inklusive!http://portal.gmx.net/de/go/dsl
>>>>> _______________________________________________
>>>>> User-friendly Desktop Internet GIS (uDig)
>>>>> http://udig.refractions.net
>>>>> http://lists.refractions.net/mailman/listinfo/udig-devel
>>>> 
>>>> _______________________________________________
>>>> User-friendly Desktop Internet GIS (uDig)
>>>> http://udig.refractions.net
>>>> http://lists.refractions.net/mailman/listinfo/udig-devel
>>>> 
>>> 
>>> 
>>> -- 
>>> GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
>>> Jetzt freischalten unterhttp://portal.gmx.net/de/go/maxdome01
>>> _______________________________________________
>>> User-friendly Desktop Internet GIS (uDig)
>>> http://udig.refractions.net
>>> http://lists.refractions.net/mailman/listinfo/udig-devel
>> 
>> _______________________________________________
>> User-friendly Desktop Internet GIS (uDig)
>> http://udig.refractions.net
>> http://lists.refractions.net/mailman/listinfo/udig-devel
>> 
> 
> 
> -- 
> GMX DSL: Internet-, Telefon- und Handy-Flat ab 19,99 EUR/mtl.  
> Bis zu 150 EUR Startguthaben inklusive! http://portal.gmx.net/de/go/dsl
> _______________________________________________
> User-friendly Desktop Internet GIS (uDig)
> http://udig.refractions.net
> http://lists.refractions.net/mailman/listinfo/udig-devel



Back to the top