Subversion Repositories mkgmap

Rev

Rev 3408 | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

package uk.me.parabola.mkgmap.reader.osm.boundary;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.Map.Entry;

import uk.me.parabola.mkgmap.reader.osm.Tags;

public class BoundaryLister {

        /**
         * @param args
         * @throws IOException
         */

        public static void main(String[] args) throws IOException {
                String boundsdir = args[0];
                String outDirName = boundsdir;
                if (args.length >= 2)
                        outDirName = args[1];
                File outDir = new File (outDirName);
               
                if (outDir.exists() ){
                        if (outDir.isDirectory() == false){
                                System.err.println("target is not a directory, output is written to bounds.txt");
                                outDir = new File(".");
                        }
                }
               
                List<String> bndFileNames =  BoundaryUtil.getBoundaryDirContent(boundsdir);
                PrintWriter out = new PrintWriter(new File(outDir,"bounds.txt"), "UTF-8");
                // create an empty search bbox to speedup reading of the bnd file(s)
                //uk.me.parabola.imgfmt.app.Area searchBbox = new uk.me.parabola.imgfmt.app.Area (0,0,0,0);
                for (String bndFile : bndFileNames) {
                        out.println(bndFile + "****************");
                        BoundaryQuadTree bqt = BoundaryUtil.loadQuadTree(boundsdir, bndFile);
                        if (bqt == null)
                                break;
                        Map<String, Tags> map = bqt.getTagsMap();
                        for ( Entry<String, Tags>  entry: map.entrySet()) {
                                TreeMap<String,String> btree = new TreeMap<String, String>();
                                String line = bndFile+ ":" + entry.getKey();
                                Iterator<Entry<String,String>> tagIter = entry.getValue().entryIterator();
                                while (tagIter.hasNext()) {
                                        Entry<String,String> tag = tagIter.next();
                                        btree.put(tag.getKey(),tag.getValue());
                                }
                                // print sorted tags
                                for (Entry<String,String> e : btree.entrySet()){
                                        out.println(line + ";" + e);
                                }
                               
                        }
                }
                out.close();
               

        }

}