I commited the IOUtil class contributed by Martin to the OpenJUMP SVN. The class can be found in the org.openjump.core.apitools package. I changed the name of the class from IOUtil to IOTools to match the other class names in the package.
Please let me know if there are any questions or problems. Thanks again for the contribution Martin. Landon On Dec 12, 2007 7:13 AM, Sunburned Surveyor <[EMAIL PROTECTED]> wrote: > I think org.openjump.core.apitools will work. I'll make the addition > today after work. > > Landon > > > On Dec 12, 2007 3:22 AM, Stefan Steiniger <[EMAIL PROTECTED]> wrote: > > 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 > > > ------------------------------------------------------------------------- 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://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel