package org.geotoolkit.pending.demo.rendering.customsymbolizer; import org.apache.sis.storage.DataStoreException; import org.geotoolkit.factory.FactoryFinder; import org.geotoolkit.factory.Hints; import org.geotoolkit.gui.swing.render2d.JMap2D; import org.geotoolkit.gui.swing.render2d.control.JNavigationBar; import org.geotoolkit.gui.swing.render2d.decoration.JClassicNavigationDecoration; import org.geotoolkit.image.io.plugin.WorldFileImageReader; import org.geotoolkit.map.CoverageMapLayer; import org.geotoolkit.map.MapBuilder; import org.geotoolkit.map.MapContext; import org.geotoolkit.pending.demo.Demos; import org.geotoolkit.style.MutableStyle; import org.geotoolkit.style.MutableStyleFactory; import javax.swing.*; import java.awt.*; import java.io.File; import java.net.URISyntaxException; public class CustomSymbolizerDemo { private static final MutableStyleFactory SF = (MutableStyleFactory) FactoryFinder.getStyleFactory( new Hints(Hints.STYLE_FACTORY, MutableStyleFactory.class)); public static void main(String[] args) throws Exception { Demos.init(); final MapContext context = createContext(); final JMap2D jmap = new JMap2D(); final JNavigationBar navBar = new JNavigationBar(jmap); jmap.getContainer().setContext(context); jmap.addDecoration(new JClassicNavigationDecoration(JClassicNavigationDecoration.THEME.CLASSIC)); jmap.getCanvas().setVisibleArea(context.getBounds()); //display map. final JFrame frm = new JFrame(); final JPanel panel = new JPanel(new BorderLayout()); panel.add(BorderLayout.CENTER,jmap); panel.add(BorderLayout.NORTH,navBar); frm.setContentPane(panel); frm.setSize(800, 600); frm.setLocationRelativeTo(null); frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm.setVisible(true); } private static MapContext createContext() throws DataStoreException, URISyntaxException { WorldFileImageReader.Spi.registerDefaults(null); //create a map context final MapContext context = MapBuilder.createContext(); //create a coverage layer File cloudFile = new File(CustomSymbolizerDemo.class.getResource("/data/coverage/clouds.jpg").toURI()); final MutableStyle coverageStyle = SF.style(new CrystallizeSymbolizer(2)); final CoverageMapLayer coverageLayer = MapBuilder.createCoverageLayer(cloudFile); coverageLayer.setStyle(coverageStyle); //add all layers in the context context.layers().add(coverageLayer); return context; } }