package edu.ucdavis.cstars.client.layers;
import com.google.gwt.core.client.JavaScriptObject;
import edu.ucdavis.cstars.client.Util;
/**
* Allows you to use basemaps from OpenStreetMap . Set the tileservers property to change which OpenStreetMap tiles you want to use.
*
* Requires Package: esri.layers.osm
*
* @author Justin Merz
*/
public class OpenStreetMapLayer extends TiledMapServiceLayer {
protected OpenStreetMapLayer() {}
/**
* Creates a new OpenStreetMapLayer object.
*
* @return OpenStreetMapLayer
*/
public static OpenStreetMapLayer create() {
if( assertLoaded() ) return _create();
return JavaScriptObject.createObject().cast();
};
private static native OpenStreetMapLayer _create() /*-{
return new $wnd.esri.layers.OpenStreetMapLayer();
}-*/;
/**
* Creates a new OpenStreetMapLayer object.
*
* @param options - Optional parameters
* @return OpenStreetMapsObject
*/
public static OpenStreetMapLayer create(Options options) {
if( assertLoaded() ) return _create(options);
return JavaScriptObject.createObject().cast();
};
private static native OpenStreetMapLayer _create(Options options) /*-{
return new $wnd.esri.layers.OpenStreetMapLayer(options);
}-*/;
/**
* Check that the esri.layers.osm package has been loaded
*
* @return boolean
*/
public static native boolean assertLoaded() /*-{
if( $wnd.esri.layers.OpenStreetMapLayer ) return true;
$wnd.alert("The ESRI_LAYERS_OSM package has not been loaded");
return false;
}-*/;
public static class Options extends JavaScriptObject {
protected Options() {}
public static Options create() {
return JavaScriptObject.createObject().cast();
}
/**
*
* @param levels - An array of levels at which to draw.
*/
public final void setDisplayLevels(int[] levels){
_setDisplayLevels(Util.intArrayToJSO(levels));
}
private final native void _setDisplayLevels(JavaScriptObject levels) /*-{
this["displayLevels"] = levels;
}-*/;
/**
*
* @param id - Id to assign to the layer. If not assigned, esri.Map assigns value.
*/
public final native void setId(String id) /*-{
this["id"] = id;
}-*/;
/**
*
* @param opacity - Initial opacity or transparency of layer. Values range from
* 0.0 to 1.0, where 0.0 is 100% transparent and 1.0 has no transparency. The default value is 1.0.
*/
public final native void setOpacity(double opacity) /*-{
this["opacity"] = opacity;
}-*/;
/**
*
* @param tileServers - An array of tile servers
*/
public final void setTileServers(String[] tileServers){
_setTileServers(Util.stringArrayToJSO(tileServers));
}
private final native void _setTileServers(JavaScriptObject servers) /*-{
this["tileServers"] = servers;
}-*/;
/**
*
* @param visible - Initial visibility of the layer. Default is true.
*/
public final native void setVisible(boolean visible) /*-{
this["visible"] = visible;
}-*/;
}
}