private void loadShapes(String[] files, final HashMap<Integer, GMTShape> shapes) {
        GMTParser gmtpBuildings = new GMTParser() {
            @Override
            public void processShape(GMTShape shape) {
                shapes.put(shape.getID(), shape);
            }
        };

        try {
            for (String file : files) {
                gmtpBuildings.load(file);
            }

        } catch (FileNotFoundException ex) {
            Logger.getLogger(DataLoader.class.getName()).log(Level.SEVERE, null, ex);
        } catch (UnsupportedEncodingException ex) {
            Logger.getLogger(DataLoader.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(DataLoader.class.getName()).log(Level.SEVERE, null, ex);
        }
    }