no problem.. I would have added the util tools myself too. I suggest to place the code into the following package: - org.openjump.core.apitools
the alternative would be: - org.openjump.io Not sure which one is better. Any other thoughts? @Sunburned: I could do the checkin as well - if you want. stefan Sunburned Surveyor schrieb: > 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 > > ------------------------------------------------------------------------- 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