MapPane 地理工具

MapPane geotools

我使用 Geotools,我有一个主要的 Jframe,我使用 JMapPan 来显示地图。但我对工具栏有疑问,如何添加光标按钮和按钮来识别 features.I 刚刚添加了缩放按钮。 源代码:

    final MapContent map = new MapContent();
    map.setTitle("The Map");

    Layer rasterLayer = new GridReaderLayer(reader, rasterStyle);
    map.addLayer(rasterLayer);

    Layer shpLayer = new FeatureLayer(shapefileSource, shpStyle);
    map.addLayer(shpLayer);

    JMapPane mapPane = new JMapPane(map);

    JFrame frame = new JFrame("The Map");

    frame.setLayout(new BorderLayout());
    frame.add(mapPane, BorderLayout.CENTER);  


    JPanel buttons = new JPanel();
    JButton zoomInButton = new JButton(new ZoomInAction(mapPane));
    buttons.add(zoomInButton);

    JButton zoomOutButton = new JButton(new ZoomOutAction(mapPane));   
    buttons.add(zoomOutButton);

    JButton pamButton = new JButton(new PanAction(mapPane));       
    buttons.add(pamButton);

    //how to add cursor button and identify features button.

    frame.add(buttons, BorderLayout.NORTH);
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.setSize(600, 400);
    frame.setVisible(true);

最简单的方法是使用 JMapFrame 附带的 JToolbar。

JMapFrame frame = = new JMapFrame(mapContent);
frame.enableToolBar(true);
JToolBar toolBar = frame.getToolBar();

但是,如果您真的必须自己构建,那么快速浏览一下 JMapFrame code 可以得到:

if (toolSet.contains(Tool.PAN)) {
  btn = new JButton(new PanAction(mapPane));
  btn.setName(TOOLBAR_PAN_BUTTON_NAME);
  toolBar.add(btn);
  cursorToolGrp.add(btn);
  toolBar.addSeparator();
}
if (toolSet.contains(Tool.INFO)) {
   btn = new JButton(new InfoAction(mapPaneif(toolSet.contains(Tool.PAN))     {
        btn = new JButton(new PanAction(mapPane));
        btn.setName(TOOLBAR_PAN_BUTTON_NAME);
        toolBar.add(btn);
        cursorToolGrp.add(btn);
        toolBar.addSeparator();
    }
    if (toolSet.contains(Tool.INFO)) {
        btn = new JButton(new InfoAction(mapPane));
        btn.setName(TOOLBAR_INFO_BUTTON_NAME);
        toolBar.add(btn);
        toolBar.addSeparator();
    }));
    btn.setName(TOOLBAR_INFO_BUTTON_NAME);
    toolBar.add(btn);
    toolBar.addSeparator();
}