package org.geotoolkit.pending.demo.clients.ignrm; import java.net.URL; import javax.swing.JOptionPane; import org.geotoolkit.gui.swing.render2d.JMap2DFrame; import org.geotoolkit.ignrm.IGNRMClient; import org.geotoolkit.ignrm.Token; import org.geotoolkit.ignrm.TokenClientSecurity; import org.geotoolkit.map.MapBuilder; import org.geotoolkit.map.MapContext; import org.geotoolkit.pending.demo.Demos; import org.apache.sis.referencing.CommonCRS; import org.geotoolkit.security.ClientSecurity; import org.geotoolkit.security.ClientSecurityStack; import org.geotoolkit.security.RefererClientSecurity; import org.geotoolkit.style.DefaultStyleFactory; import org.geotoolkit.style.MutableStyleFactory; import org.geotoolkit.wmsc.WebMapClientCached; import org.geotoolkit.wmsc.map.WMSCMapLayer; import org.opengis.util.GenericName; public class IGNClientDemo { public static final MutableStyleFactory SF = new DefaultStyleFactory(); public static void main(String[] args) throws Exception { Demos.init(); // THIS DEMO REQUIERE ADDITIONAL CRS DEFINITIONS // those have been added in the module in path : // src/main/resources/org/geotoolkit/referencing/factory/epsg/epsg.properties final String key = JOptionPane.showInputDialog("Enter your IGN contract key " + "(this demo is for a free inspire contract, code must be adapted for others) :"); if(key == null || key.isEmpty()){ return; } final MapContext context = createIGNContext(key); JMap2DFrame.show(context); } public static MapContext createIGNContext(final String key) throws Exception{ final MapContext context = MapBuilder.createContext(CommonCRS.WGS84.normalizedGeographic()); final ClientSecurity refererInfo = new RefererClientSecurity("http://localhost/"); final IGNRMClient geodrmServer = new IGNRMClient(new URL("http://jeton-api.ign.fr"),refererInfo); final Token token = geodrmServer.getToken(key); final ClientSecurity tokenInfo = new TokenClientSecurity(token); final ClientSecurity tokenAndReferer = ClientSecurityStack.wrap(refererInfo,tokenInfo); final WebMapClientCached server = new WebMapClientCached( new URL("http://wxs.ign.fr/inspire/wmsc?"), tokenAndReferer,true); for(GenericName name : server.getNames()){ if(name.tip().toString().contains("ELEVATION.SLOPES") || name.tip().toString().contains("ORTHOIMAGERY.ORTHOPHOTOS")){ final WMSCMapLayer sloplayer = new WMSCMapLayer(server, name); sloplayer.setDescription(SF.description(name.tip().toString(), "")); context.layers().add(sloplayer); } } return context; } }