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