Thanks very much for posting the code Martin. I'll have to see if I
can't get this into the SVN for OpenJUMP. Do any of the developers see
a problem with this?

The Sunburned Surveyor

On Dec 11, 2007 4:28 PM, Martin Davis <[EMAIL PROTECTED]> wrote:
> I have used the core JUMP API in numerous projects, primarily for easily
> modelling features (spatial + attributes) and having convenient IO
> (especially for shapefiles!)
>
> I had the same need for a simple interface to the JUMP IO classes.  I
> simply wrote a bunch of utility functions to do IO on the various
> formats that JUMP supports.  The code is attached in case anyone else
> finds it useful.  (Some of this might actually be in JUMP/OJ - and if it
> isn't it might be nice to add it)
>
> HTH
>
>
> Sunburned Surveyor wrote:
> > I'm working on a little tool that creates a grid in which each cell of
> > the grid is a polygon. You can create the grid with any rectangular
> > dimensions, specify the number of columns and rows, and also a
> > rotation. The tool also allows you to create attributes for each cell
> > based on the row and column number.
> >
> > I'm using JTS and OpenJUMP Features inside of the program.
> >
> > I'd like to find the easiest way to export the features and geometries
> > as an ESRI Shapefile. I was hoping there would a single method that I
> > could simply pass a FeatureCollection and String representing the path
> > and file name. I think that would be the write method of the
> > ShapefileWriter class.
> >
> > Is this correct? Is there a newer class/method that I should be using?
> >
> > I'm really looking for the easiest way to get from a FeatureCollection
> > to a Shapefile. I want to make sure I'm using the appropriate code.
> >
> > Thanks for any help.
> >
> > The Sunburned Surveyor
> >
> > P.S. - I was just "scratching my own itch" with this tool, but when I
> > get the tool finished, I'll release it under the GPL. It will be
> > pluggable, so you can add your own attribute factories or support for
> > output formats besides Shapefiles.
> >
> > Does anyone else know of third-party apps that are using OpenJUMP code
> > as a library? Just curious...
> >
> > -------------------------------------------------------------------------
> > SF.Net email is sponsored by:
> > Check out the new SourceForge.net Marketplace.
> > It's the best place to buy or sell services for
> > just about anything Open Source.
> > http://sourceforge.net/services/buy/index.php
> > _______________________________________________
> > Jump-pilot-devel mailing list
> > Jump-pilot-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> >
> >
>
> --
> Martin Davis
> Senior Technical Architect
> Refractions Research, Inc.
> (250) 383-3022
>
>
> package debug;
>
> import java.util.Iterator;
> import java.util.List;
>
> import com.vividsolutions.jump.feature.Feature;
> import com.vividsolutions.jump.feature.FeatureCollection;
> import com.vividsolutions.jump.io.*;
>
> public class IOUtil {
>
>   private static String getExtension(String filename)
>   {
>     int len = filename.length();
>     String extension = filename.substring(len - 3, len);
>     return extension;
>   }
>
>   public static FeatureCollection load(String filename)
>       throws Exception
>   {
>     String extension = getExtension(filename);
>     if (extension.equalsIgnoreCase("SHP"))
>       return loadShapefile(filename);
>     if (extension.equalsIgnoreCase("JML"))
>       return loadJMLFile(filename);
>     if (extension.equalsIgnoreCase("WKT"))
>       return loadWKT(filename);
>     throw new Exception("Unknown file type: " + extension);
>   }
>
>   public static FeatureCollection load(String filename, String zipFileName)
>       throws Exception
>   {
>     String extension = getExtension(filename);
>     if (extension.equalsIgnoreCase("SHP"))
>       return loadShapefile(filename, zipFileName);
>     throw new Exception("Unknown file type: " + extension);
>   }
>
>   public static FeatureCollection loadJMLFile(String filename)
>       throws Exception
>   {
>     JMLReader rdr = new JMLReader();
>     DriverProperties dp = new DriverProperties();
>     dp.set("File", filename);
>     return rdr.read(dp);
>   }
>
>   public static FeatureCollection loadShapefile(String filename)
>       throws Exception
>   {
>     ShapefileReader rdr = new ShapefileReader();
>     DriverProperties dp = new DriverProperties();
>     dp.set("File", filename);
>     return rdr.read(dp);
>   }
>
>   public static FeatureCollection loadShapefile(String filename, String 
> zipFileName)
>       throws Exception
>   {
>     ShapefileReader rdr = new ShapefileReader();
>     DriverProperties dp = new DriverProperties();
>     dp.set(ShapefileReader.FILE_PROPERTY_KEY, filename);
>     if (zipFileName != null)
>       dp.set(ShapefileReader.COMPRESSED_FILE_PROPERTY_KEY, zipFileName);
>     return rdr.read(dp);
>   }
>
>   public static FeatureCollection loadFMEGML(String filename)
>       throws Exception
>   {
>     FMEGMLReader rdr = new FMEGMLReader();
>     DriverProperties dp = new DriverProperties();
>     dp.set("File", filename);
>     return rdr.read(dp);
>   }
>
>   public static FeatureCollection loadWKT(String filename)
>       throws Exception
>   {
>     WKTReader rdr = new WKTReader();
>     DriverProperties dp = new DriverProperties();
>     dp.set("File", filename);
>     FeatureCollection fc = rdr.read(dp);
>     return fc;
>   }
>
>   public static void save(FeatureCollection fc, String filename)
>       throws Exception
>   {
>     String extension = getExtension(filename);
>     if (extension.equalsIgnoreCase("SHP")) {
>       saveShapefile(fc, filename);
>       return;
>     }
>     else if (extension.equalsIgnoreCase("JML")) {
>       saveJMLFile(fc, filename);
>       return;
>     }
>     throw new Exception("Unknown file type: " + extension);
>   }
>
>   public static void saveShapefile(FeatureCollection fc, String filename)
>       throws Exception
>   {
>     ShapefileWriter writer = new ShapefileWriter();
>     DriverProperties dp = new DriverProperties();
>     dp.set("File", filename);
>     writer.write(fc, dp);
>   }
>   public static void saveJMLFile(FeatureCollection fc, String filename)
>       throws Exception
>   {
>     JMLWriter writer = new JMLWriter();
>     DriverProperties dp = new DriverProperties();
>     dp.set("File", filename);
>     writer.write(fc, dp);
>   }
>   public static void print(FeatureCollection fc)
>   {
>     List featList = fc.getFeatures();
>     for (Iterator i = featList.iterator(); i.hasNext(); ) {
>       Feature f = (Feature) i.next();
>       System.out.println(f.getGeometry());
>     }
>   }
>
> }
> -------------------------------------------------------------------------
> SF.Net email is sponsored by:
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>
>

-------------------------------------------------------------------------
SF.Net email is sponsored by: 
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to