Creating a read-only map application

The following application is provided in the directory <installdir> /jviews-maps/samples/loadmap/index.html as part of the JViews Maps demonstration software. This is a simple case where the application loads a previously saved, read-only map in .ivl format, and displays it in the Map Builder main window. A map of this type can be built using the Map Builder or the JViews Maps API:

  1. Import the required packages and classes:

     

    import ilog.views.IlvManagerView;

    import ilog.views.maps.IlvCoordinateSystemProperty;

    import ilog.views.maps.beans.IlvJMouseCoordinateViewer;

    import ilog.views.maps.beans.IlvMapLegend;

    import ilog.views.maps.srs.coordsys.IlvGeographicCoordinateSystem;

    import ilog.views.swing.IlvJManagerViewControlBar;

    import ilog.views.swing.IlvJScrollManagerView;

    import java.awt.BorderLayout;

    import java.awt.Dimension;

    import java.io.File;

    import javax.swing.JFrame;

  2. Create the basic building blocks of the Map Builder: create a frame containing the map beans, set it to exit when the Close button is pressed, set up the beans, and arrange the main window layout:

     

    public class LoadMapDemo extends JFrame {

       IlvManagerView view=new IlvManagerView();

       IlvJScrollManagerView viewScroll=new IlvJScrollManagerView(view);

       IlvJManagerViewControlBar viewToolbar = new IlvJManagerViewControlBar();

       IlvJMouseCoordinateViewer locator=new IlvJMouseCoordinateViewer();

       IlvMapLegend legend=new IlvMapLegend();

    public LoadMapDemo() {

       super();

       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       viewToolbar.setView(view);

       locator.setView(view);

       legend.setView(view);

       view.setSize(new Dimension(900, 450));

       view.setKeepingAspectRatio(true);

       viewScroll.setPreferredSize(view.getSize());

       view.getManager().setNamedProperty(new

          IlvCoordinateSystemProperty(IlvGeographicCoordinateSystem.WGS84));

       getContentPane().add(viewToolbar,BorderLayout.NORTH);

       getContentPane().add(viewScroll,BorderLayout.CENTER);

       getContentPane().add(locator,BorderLayout.SOUTH);

       getContentPane().add(legend,BorderLayout.LINE_START);

       loadFile("data/county.ivl"); //$NON-NLS-1$

    }

  3. Load the file into the manager of the view:

     

    public void loadFile(String filename){

       try {

          IlvMapInputStream mapInput = new IlvMapInputStream(filename);

          mapInput.read(view.getManager());

          view.fitTransformerToContent();

          pack();

       } catch(Exception ex){

          ex.printStackTrace();

       }

    }

  4. Write the main method:

     

    static public void main(String args[]) {

      javax.swing.SwingUtilities.invokeLater(

        new Runnable() {

          public void run() {

            final JFrame frame = new LoadMapDemo();

            frame.pack();

            frame.setVisible(true);

        }

      );

    }