// Parses .osm-file into database-input // // Usage: osm2sql filename // Output on Std-Out. // // 2008-09-27 Andreas "goblor" Hahn import java.io.*; import javax.xml.parsers.SAXParserFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import org.xml.sax.helpers.DefaultHandler; import org.xml.sax.SAXException; import org.xml.sax.Attributes; public class osm2sql { public static void main (String argv[]) { if (argv.length != 1) { System.err.println ("Usage: osm2sql filename"); System.exit (1); } System.out.println("set character set utf8;"); System.out.println("SET AUTOCOMMIT=0;"); try { SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser(); saxParser.parse( new File(argv [0]), new Handler() ); } catch (Throwable t) { t.printStackTrace (); } System.out.println("COMMIT;"); System.exit (0); } } class Handler extends DefaultHandler { String nodeid=""; String wayid=""; String relationid=""; boolean intag=false; boolean inmember=false; int sequence=1; String[] nodeelements = {"id", "lat", "lon", "visible", "user", "timestamp"}; String[] wayelements = {"id", "visible", "user", "timestamp"}; String[] relationelements = {"id", "visible", "user", "timestamp"}; public String converttimestamp(String t) { return t.replace('T',' ').substring(0, t.length()-1); } public String arrayjoin(String[] arr, String delimiter) { String s=""; for (int i=0; i