Core library usage

The main entry point is the ImgFilesBag class. You basically instanciate it and add some IMG files in it:

    ImgFilesBag maps=new ImgFilesBag();
    File file=new File("/home/patrick/gps/maps/00000002.img");
    maps.addFile(file);
                    

Or else, you can add a whole directory in it:

    maps.addDirectory(new File("/home/patrick/gps/maps"));
                    

The directory must contain at the same level a set of IMG files and, optionally a PDB file. The presence of the PDB file will speed-up the initial reading since this file contains an index of the IMG files.

Then to read the content of the map, you have to create a listener that will receive the different objects the map is composed of:

    public static class TestListener implements MapListener
    {
        public void addPoint(int type, int subType, int longitude, int latitude,
                             Label label, boolean indexed)
        {
            ... your code here ...
        }

        public void addPoly(int type, int[] longitudes, int[] latitudes,
                            int nbPoints, Label label, boolean line)
        {
            ... your code here ...
        }

        public void startMap(ImgFileBag file)
        {
            ... your code here ...
        }

        public void startSubDivision(SubDivision subDivision)
        {
            ... your code here ...
        }

        public void finishPainting()
        {
            ... your code here ...
        }
    }
                    

Finally, you call one of the following:

    //for having the objects read as fast as possible
    map.read(minLon, maxLon, minLat, maxLat, resolution, ObjectKind.ALL, null, listener);

    //for having the objects in an order suitable for drawing
    maps.readMapForDrawing(minLon, maxLon, minLat, maxLat, resolution, ObjectKind.ALL, listener);
                    

From here, you can do whatever you want with the data. If you want to display it in a Swing application, see this page.

Thanks

Thanks goes to: