Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[udig-users] Add layers programmatically

Hi people,

 

Like I said in my last mail and my first one, I am new in developing with uDIG and RCP.

I am trying for 3 days to add layers to a project programmatically bringing them from GeoServer. What I can do was connect to Geoserver and bring all the features to the project, but I can’t bring a particular feature, the ones I really want and not all of them. I did it in two different ways:

1.       With IGeoResource, I bring and add all the features that exist at GeoServer:

 

URL url = "">new URL("http://localhost:8080/geoserver/ows?service=WFS&request=GetCapabilities");

     

            Map<String,Serializable> params = new HashMap<String,Serializable>();

            params.put( WFSDataStoreFactory.URL.key, url );

            params.put( WFSDataStoreFactory.LENIENT.key, true );

            params.put( WFSDataStoreFactory.TRY_GZIP.key, true );

            IServiceFactory serviceFactory = CatalogPlugin.getDefault().getServiceFactory();                 

            IService service = serviceFactory.createService( params ).get(0);

            try {

                  IServiceInfo info = service.getInfo( null );  // try connecting to make sure the service works                     

                  //CatalogPlugin.getDefault().getLocalCatalog().add( service );

                  List<IGeoResource> resources = (List<IGeoResource>) service.resources(new NullProgressMonitor());                    

                  ApplicationGIS.addLayersToMap(ApplicationGIS.getActiveMap(), resources, -1,ApplicationGIS.getActiveProject(), true);                  

            }

 

2.       With Geotools API, I can bring one in particular but don’t know how to add it to the map:

 

URL url = "">new URL("http://localhost:8080/geoserver/ows?service=WFS&request=GetCapabilities");

                 

            Map<String,Serializable> params = new HashMap<String,Serializable>();

            params.put( WFSDataStoreFactory.URL.key, url );

            params.put( WFSDataStoreFactory.LENIENT.key, true );

            params.put( WFSDataStoreFactory.TRY_GZIP.key, true );

            DataStore dataStore = DataStoreFinder.getDataStore(params);

                 

            //String [] features = dataStore.getTypeNames();

                 

            FeatureSource featureSource = dataStore.getFeatureSource( "CFConstrucciones" );                 

            FeatureCollection collection = featureSource.getFeatures();           

 

The name "CFConstrucciones" is the one I want to “upload” to the map.

 

Please help me with this because I am sure it might be very simple.

Thank you and sorry for my English (I am from Uruguay – South America).

 

Sebastian


Back to the top