好的,大家好,首先我会展示我所拥有的:
我有这段代码:
public static void main(String[] arg) throws IOException {
map = new DefaultMapContext();
map.setTitle("Visualizador UD - Geotools");
mapFrame = new JMapFrame(map);
mapFrame.enableToolBar(true);
mapFrame.enableStatusBar(true);//Herramientas abajo
JToolBar toolBar = new JToolBar();
eliminar = new JButton("Eliminar capas");
adicionar = new JButton("Adicionar capas");
consultar = new JButton("Consultar");
mapFrame.getToolBar().add(adicionar);
mapFrame.getToolBar().add(eliminar);
mapFrame.getToolBar().add(consultar);
listaLayers = new List();
for (int i = 0; i < files.length; i++) {
listaLayers.add(files[i].getName());
}
menu();
mapFrame.add(listaLayers, BorderLayout.WEST);
mapFrame.add(toolBar, BorderLayout.NORTH);
mapFrame.setSize(800, 600);
mapFrame.setVisible(true);
}
嗯,我的目标是这样的,同一个组织:
但是我不知道该怎么做,这对我来说有点困惑,问题是图层,我不能把它放在地图的左边......我希望你可以帮我把代码放得更好。
答案 0 :(得分:2)
我想这可能能解决你的问题。
尝试
// this will get you left pane with the layers added.
frame.enableLayerTable(true);
您也可以直接使用以下代码直接完成工作。
JMapFrame frame;
MapContent map;
frame = new JMapFrame(map);
frame.enableLayerTable(true);
frame.setSize(800, 600);
frame.enableStatusBar(true);
frame.enableToolBar(true);
JMenuBar menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);
添加栅格和形状文件使用: public void addshape(File shpFile)抛出异常{
FileDataStore dataStore = FileDataStoreFinder.getDataStore(shpFile);
SimpleFeatureSource shapefileSource = dataStore.getFeatureSource();
Style shpStyle = SLD.createPolygonStyle(Color.RED, null, 0.0f);
Layer shpLayer = new FeatureLayer(shapefileSource, shpStyle);
map.addLayer(shpLayer);
show();
}
public void addraster(File rasterFile) throws Exception {
AbstractGridFormat format = GridFormatFinder.findFormat( rasterFile );
reader = format.getReader(rasterFile);
Style rasterStyle = createGreyscaleStyle(1);
Layer rasterLayer = new GridReaderLayer(reader, rasterStyle);
map.addLayer(rasterLayer);
show();
}