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();
}
我使用 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();
}