Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [udig-devel] adding a feature to the current map

So. I send you the method where just some lines of code do everything you
need (hopefully).


It is a straightforward, but it works for me.

Yes. If you do it manually - you are responsible for the creating of
IService instance (manually or using IServiceFactory)!! Then you get a list
of IGeoResource, then just use commands API.  If you wish to do more steps
manually, look into the source code of commands being used in my example.


Vitali.

P.S.  I never looked into the javadoc, sure it is quite poor to give answers
on most of the questions. The approach is always work with a source code,
spend a time to study it, but then you just rule it :-) My opinion there is
no way to create really powerful things for UDIG without working with source
code and studying it. It is not so well documented as Eclipse platform.. but
UDIG is just on the way to start up.. :)






> -----Original Message-----
> From: udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx [mailto:udig-devel-
> bounces@xxxxxxxxxxxxxxxxxxxxx] On Behalf Of Adrian Custer
> Sent: Tuesday, February 28, 2006 2:02 AM
> To: User-friendly Desktop Internet GIS
> Subject: RE: [udig-devel] adding a feature to the current map
> 
> Hey Vitali,
> 
> Thanks for the help. Unfortunately, I'm still not getting it. Sorry.
> 
> I get that *DataStore is the cannonical thing. Indeed, making a memory
> data store is trivial. In my case, I can create it by:
> 
>   MemoryDataStore myMDS = new MemoryDataStore();
>   myMDS.addFeature(myFeature);
> 
> However, I don't see what comes next. I need to create both an
> IGeoResource and an IService? How do I tie them together to this
> DataStore I have just created? I'm not figuring out how to go about
> doing this from the javadocs.
> 
> thanks,
> adrian
> 
> 
> On Mon, 2006-02-27 at 19:34 +0200, Vitali Diatchkov wrote:
> > So. I'm describing my sequence of steps.
> >
> >
> > First of all, the Layer contains IGeoResource that is coming from, let's
> > take ShpServiceImpl (and ShapefileDataStore behind service).
> >
> > I get FeatureReader from the FeatureStore of the underlying Layer. Then
> I
> > read all features one by one, extract a geometry from each feature and
> > change it as I want.  The open issue is where to store changed features.
> >
> > In my case I just writes them into the new ShapefileDataStore that I
> create
> > in the beginning of the process. Actually it means I just create new
> > shapefile. The feature type of this new ShapefileDataStore is the same
> as a
> > feature type of the ShapefileDataStore from source layer, but the type
> of
> > geometry is changes (it was a linear - became polygonal).
> >
> > So I read feature from source layer and just create new feature copying
> > necessary attributes from old feature and set new geometry (that is
> being
> > buffered by JTS stuff). new feature goes to the new ShapefileDataStore.
> > That's it. When the process is done I just create manually
> ShpServiceImpl or
> > using IServiceFactory - so I have a IService instance with IGeoResource
> > members which I can use to create new layer using any of existing
> approaches
> > (send command, whatever).
> >
> > Here  the new shapefile is created. If you want to use MemoryDataStore
> > (whatever), don't see a problem - just create a MemoryDataStore instead
> of
> > ShapefileDataStore.
> >
> >
> > The sense is that not the Layer is a recipient of features, but the
> > DataStore. Layer works with IGeoResource's which are from IService that
> is
> > in its own order  a wrapper over DataStore (at least in case of
> shapefiles).
> >
> > FeatureStore comes from DataStore and you can use it for
> > adding/modifying/removing features.
> >
> > Also FeatureStore/FeatureSource is usually cached inside of Layer and
> > accessible through Layer.getResource(FeatureStore.class,..);
> >
> > DataStore is a primary thing, not the Layer.
> >
> >
> > Regards, Vitali.
> >
> >
> > > -----Original Message-----
> > > From: udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx [mailto:udig-devel-
> > > bounces@xxxxxxxxxxxxxxxxxxxxx] On Behalf Of Adrian Custer
> > > Sent: Tuesday, February 28, 2006 1:10 AM
> > > To: User-friendly Desktop Internet GIS
> > > Subject: RE: [udig-devel] adding a feature to the current map
> > >
> > > Hello,
> > >
> > > Yes, your type of buffer is exactly what I'm trying to do.
> > >
> > > While I would love, eventually, to talk about the details/robustness
> of
> > > the design, for now I simply want to get *any* result.
> > >
> > > I grab a point layer, extract the features, use their geometries to
> > > buffer and union (JTS operations) then build a feature. Now I need to
> > > make this feature into a "layer". I gather once I have a "layer" I can
> > > create an AddLayerCommand and use IMap.sendCommand(A)Sync() to add the
> > > layer to the map.
> > >
> > > How do we go from having a Geotools Feature to having a uDig Layer?
> > >
> > > thanks,
> > > adrian
> > >
> > > On Mon, 2006-02-27 at 18:59 +0200, Vitali Diatchkov wrote:
> > > > Hello, Adrian!
> > > > What do you mean "buffer operation" ?
> > > >
> > > > I implemented the functionality (for my customers) of buffering the
> > > whole
> > > > layer with linear type of geometry (let's say - roads, represented
> > > > as features with linear type of geometry and the width as a feature
> > > > attribute). In this case the attribute value is used as a width for
> the
> > > > buffering (linear geometry goes to the polygonal geometry).
> Buffering
> > > > operation is performed using JTS stuff that is stable and good
> enough.
> > > >
> > > > Do you mean "buffering" in this sense?
> > > >
> > > > Or is the architectural problem with converting features from one
> layer
> > > > while the new features should go to another layer?
> > > >
> > > > Could you describe the problem with more details... Probably I will
> give
> > > > some hints...
> > > >
> > > > Vitali.
> > > >
> > >
> > >
> > > _______________________________________________
> > > 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
> 
> _______________________________________________
> User-friendly Desktop Internet GIS (uDig)
> http://udig.refractions.net
> http://lists.refractions.net/mailman/listinfo/udig-devel

Attachment: AdrianTest2.java
Description: Binary data


Back to the top