package org.geotoolkit.pending.demo.clients.osmtms;
import java.net.URL;
import org.geotoolkit.storage.coverage.CoverageReference;
import org.geotoolkit.storage.coverage.CoverageStore;
import org.geotoolkit.gui.swing.render2d.JMap2DFrame;
import org.geotoolkit.map.CoverageMapLayer;
import org.geotoolkit.map.MapBuilder;
import org.geotoolkit.map.MapContext;
import org.geotoolkit.osmtms.OSMTMSClientFactory;
import org.geotoolkit.parameter.Parameters;
import org.geotoolkit.pending.demo.Demos;
import org.apache.sis.referencing.CommonCRS;
import org.geotoolkit.style.DefaultDescription;
import org.geotoolkit.style.DefaultStyleFactory;
import org.geotoolkit.style.MutableStyleFactory;
import org.apache.sis.util.iso.SimpleInternationalString;
import org.geotoolkit.storage.DataStores;
import org.opengis.util.GenericName;
import org.opengis.parameter.ParameterValueGroup;
public class OSMTMSClientDemo {
public static final MutableStyleFactory SF = new DefaultStyleFactory();
public static void main(String[] args) throws Exception {
Demos.init();
final MapContext context = createOSMTMSContext();
JMap2DFrame.show(context,false,null);
}
public static MapContext createOSMTMSContext() throws Exception{
final MapContext context = MapBuilder.createContext(CommonCRS.WGS84.normalizedGeographic());
final ParameterValueGroup params = OSMTMSClientFactory.PARAMETERS.createValue();
Parameters.getOrCreate(OSMTMSClientFactory.URL, params).setValue(new URL("http://tile.openstreetmap.org"));
Parameters.getOrCreate(OSMTMSClientFactory.IMAGE_CACHE, params).setValue(true);
Parameters.getOrCreate(OSMTMSClientFactory.NIO_QUERIES, params).setValue(true);
Parameters.getOrCreate(OSMTMSClientFactory.MAX_ZOOM_LEVEL, params).setValue(18);
final CoverageStore store = (CoverageStore) DataStores.open(params);
for(GenericName n : store.getNames()){
final CoverageReference cr = store.getCoverageReference(n);
final CoverageMapLayer cml = MapBuilder.createCoverageLayer(cr);
cml.setDescription(new DefaultDescription(
new SimpleInternationalString(n.tip().toString()),
new SimpleInternationalString("")));
context.layers().add(cml);
}
//Other available OSM TMS
// http://a.tah.openstreetmap.org/Tiles/tile/ 17
// http://tile.opencyclemap.org/cycle/ 18
// http://tile.cloudmade.com/fd093e52f0965d46bb1c6c6281022199/3/256/ 18
return context;
}
}