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://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