All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.gwt.maps.client.MapOptions Maven / Gradle / Ivy

There is a newer version: 3.10.0-alpha-7
Show newest version
package com.google.gwt.maps.client;

/*
 * #%L
 * GWT Maps API V3 - Core API
 * %%
 * Copyright (C) 2011 - 2012 GWT Maps API V3
 * %%
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #L%
 */

import com.google.gwt.ajaxloader.client.ArrayHelper;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.maps.client.base.LatLng;
import com.google.gwt.maps.client.controls.MapTypeControlOptions;
import com.google.gwt.maps.client.controls.MapTypeStyle;
import com.google.gwt.maps.client.controls.OverviewMapControlOptions;
import com.google.gwt.maps.client.controls.PanControlOptions;
import com.google.gwt.maps.client.controls.RotateControlOptions;
import com.google.gwt.maps.client.controls.ScaleControlOptions;
import com.google.gwt.maps.client.controls.StreetViewControlOptions;
import com.google.gwt.maps.client.controls.ZoomControlOptions;

/**
 * Map rendering options
* Note: Defaults to LatLng(26.4,-9)
*
* See MapOptions API * Doc */ public class MapOptions extends JavaScriptObject { /** * This will tell the map how to render and with with what features
* Use newInstance(); */ protected MapOptions() { } public static final double DEFAULT_LATLNG_LAT = 26.4d; public static final double DEFAULT_LATLNG_LNG = -9d; /** * Create a new Instance of the MapOptions This will also create a defaults center, mapTypeId and Zoom * * @return MapOptions */ public final static MapOptions newInstance() { MapOptions options = newInstanceDefault(); setDefaults(options); return options; } /** * Create a new Instance of the MapOptions * * @param withdefaults - [true]= setup required defaults, center, mapTypeId and Zoom. [false]= will not use defaults * @return MapOptions */ public final static MapOptions newInstance(boolean withdefaults) { MapOptions options = newInstanceDefault(); if (withdefaults == true) { setDefaults(options); } return options; } /** * Set the Required defaults, this should help prevent setup errors
* NOTE: These are the defaults as would be applied to a map if no options were used. They are set here so that NPE's * are not thrown if you access an unset field. * * @param options */ private static void setDefaults(MapOptions options) { options.setCenter(LatLng.newInstance(DEFAULT_LATLNG_LAT, DEFAULT_LATLNG_LNG)); options.setMapTypeId(MapTypeId.ROADMAP); options.setZoom(0); options.setDisableDefaultUi(false); options.setDisableDoubleClickZoom(false); options.setDraggable(true); options.setDraggableCursor(null); options.setDraggingCursor(null); options.setHeading(0); options.setKeyboardShortcuts(true); options.setMapTypeControl(true); options.setScrollWheel(true); options.setNoClear(false); options.setRotateControl(false); options.setTilt(0); options.setScaleControl(false); options.setStreetViewControl(true); options.setStreetViewControlOptions(null); options.setOverviewMapControl(false); options.setPanControl(true); options.setZoomControl(true); options.setMapMaker(false); // Max/Min zoom not set with default here because it depends on the map type in use // We don't want to risk overriding that } /** * setup a javascript object to store the values in * * @return MapOptions */ private final static MapOptions newInstanceDefault() { JavaScriptObject jso = JavaScriptObject.createObject(); // WorkAroundUtils.removeGwtObjectId(jso); TODO Still needed? return jso.cast(); } /** * set Color used for the background of the Map div. This color will be visible when tiles have not yet loaded as the * user pans. This option can only be set when the map is initialized. * * @param backgroundColor */ public final native void setBackgroundColor(String backgroundColor) /*-{ this.backgroundColor = backgroundColor; }-*/; /** * get Color used for the background of the Map div. */ public final native String getBackgroundColor() /*-{ return this.backgroundColor; }-*/; /** * set The initial Map center. Required. * * @param center {@link LatLng} */ public final native void setCenter(LatLng center) /*-{ this.center = center; }-*/; /** * get {@link LatLng} * * @return {@link LatLng} */ public final native LatLng getCenter() /*-{ return this.center; }-*/; /** * set Enables/disables all default UI. May be overridden individually. * * @param disableDefaultUI */ public final native void setDisableDefaultUi(boolean disableDefaultUI) /*-{ this.disableDefaultUI = disableDefaultUI; }-*/; /** * get Enables/disables all default UI. May be overridden individually. * * @return boolean */ public final native boolean getDisableDefaultUi() /*-{ return this.disableDefaultUI; }-*/; /** * set Enables/disables zoom and center on double click. Enabled by default. * * @param disableDoubleClickZoom */ public final native void setDisableDoubleClickZoom(boolean disableDoubleClickZoom) /*-{ this.disableDoubleClickZoom = disableDoubleClickZoom; }-*/; /** * get enables/disables zoom and center on double click. Enabled by default. * * @return boolean */ public final native boolean getDisableDoubleClickZoom() /*-{ return this.disableDoubleClickZoom; }-*/; /** * set If false, prevents the map from being dragged. Dragging is enabled by default. * * @param draggable */ public final native void setDraggable(boolean draggable) /*-{ this.draggable = draggable; }-*/; /** * get If false, prevents the map from being dragged. Dragging is enabled by default. * * @return boolean */ public final native boolean getDraggable() /*-{ return this.draggable; }-*/; /** * set The name or url of the cursor to display on a draggable object. * * @param draggableCursor */ public final native void setDraggableCursor(String draggableCursor) /*-{ this.draggableCursor = draggableCursor; }-*/; /** * get The name or url of the cursor to display on a draggable object. */ public final native String getDraggableCursor() /*-{ return this.draggableCursor; }-*/; /** * set The name or url of the cursor to display when an object is dragging. * * @param draggingCursor */ public final native void setDraggingCursor(String draggingCursor) /*-{ this.draggingCursor = draggingCursor; }-*/; /** * get The name or url of the cursor to display when an object is dragging. */ public final native String getDraggingCursor() /*-{ return this.draggingCursor; }-*/; /** * set The heading for aerial imagery in degrees measured clockwise from cardinal direction North. Headings are * snapped to the nearest available angle for which imagery is available. * * @param heading */ public final native void setHeading(int heading) /*-{ this.heading = heading; }-*/; /** * get The heading for aerial imagery in degrees measured clockwise from cardinal direction North. Headings are * snapped to the nearest available angle for which imagery is available. * * @return int */ public final native int getHeading() /*-{ return this.heading; }-*/; /** * set If false, prevents the map from being controlled by the keyboard. Keyboard shortcuts are enabled by default. * * @param keyboardShortcuts */ public final native void setKeyboardShortcuts(boolean keyboardShortcuts) /*-{ this.keyboardShortcuts = keyboardShortcuts; }-*/; /** * get If false, prevents the map from being controlled by the keyboard. Keyboard shortcuts are enabled by default. * * @return boolean */ public final native boolean getKeyboardShortcuts() /*-{ return this.keyboardShortcuts; }-*/; /** * set The initial enabled/disabled state of the Map type control. * * @param mapTypeControl */ public final native void setMapTypeControl(boolean mapTypeControl) /*-{ this.mapTypeControl = mapTypeControl; }-*/; /** * get The initial enabled/disabled state of the Map type control. */ public final native boolean getMapTypeControl() /*-{ return this.mapTypeControl; }-*/; /** * set The initial display options for the Map type control. * * @param mapTypeControlOptions */ public final native void setMapTypeControlOptions(MapTypeControlOptions mapTypeControlOptions) /*-{ this.mapTypeControlOptions = mapTypeControlOptions; }-*/; /** * get The initial display options for the Map type control. * * @return {@link MapTypeControlOptions} */ public final native MapTypeControlOptions getMapTypeControlOptions() /*-{ return this.mapTypeControlOptions; }-*/; /** * The initial Map {@link MapTypeId}. Required. * * @param mapTypeId {@link MapTypeId} */ public final void setMapTypeId(MapTypeId mapTypeId) { setMapTypeIdJs(mapTypeId.value()); } /** * The initial Map {@link MapTypeId}. Required. * * @param mapTypeId String */ public final void setMapTypeId(String mapTypeId) { setMapTypeIdStringJs(mapTypeId); } /** * Native Use. Use setMapTypeId(MapTypeId mapTypeId). The initial Map {@link MapTypeId}. Required. */ private final native void setMapTypeIdJs(String type) /*-{ this.mapTypeId = $wnd.google.maps.MapTypeId[type]; }-*/; /** * Native Use. Apply a given user defined map type string. Required. */ private final native void setMapTypeIdStringJs(String type) /*-{ this.mapTypeId = type; }-*/; /** * Get {@link MapTypeId} */ public final MapTypeId getMapTypeId() { String type = getMapTypeIdJs(); return MapTypeId.fromValue(type); } /** * Get mapTypeId string */ public final String getMapTypeIdString() { return getMapTypeIdJs(); } /** * native use. get {@link MapTypeId} * * @return String */ private final native String getMapTypeIdJs() /*-{ return this.mapTypeId; }-*/; /** * set The maximum zoom level which will be displayed on the map. If omitted, or set to null, the maximum zoom from * the current map type is used instead. * * @param maxZoom */ public final native void setMaxZoom(int maxZoom) /*-{ this.maxZoom = maxZoom; }-*/; /** * get maxZoom * * @return int */ public final native int getMaxZoom() /*-{ return this.maxZoom; }-*/; /** * set The minimum zoom level which will be displayed on the map. If omitted, or set to null, the minimum zoom from * the current map type is used instead. * * @param minZoom */ public final native void setMinZoom(int minZoom) /*-{ this.minZoom = minZoom; }-*/; /** * get The minimum zoom level which will be displayed on the map. If omitted, or set to null, the minimum zoom from * the current map type is used instead. */ public final native int getMinZoom() /*-{ return this.minZoom; }-*/; /** * set If true, do not clear the contents of the Map div. * * @param noClear */ public final native void setNoClear(boolean noClear) /*-{ this.noClear = noClear; }-*/; /** * get If true, do not clear the contents of the Map div. */ public final native boolean getNoClear() /*-{ return this.noClear; }-*/; /** * set The enabled/disabled state of the Overview Map control. * * @param overviewMapControl */ public final native void setOverviewMapControl(boolean overviewMapControl) /*-{ this.overviewMapControl = overviewMapControl; }-*/; /** * get The enabled/disabled state of the Overview Map control. */ public final native boolean getOverviewMapControl() /*-{ return this.overviewMapControl; }-*/; /** * set The display options for the Overview Map control. {@link OverviewMapControlOptions} * * @param overviewMapControlOptions */ public final native void setOverviewMapControlOptions(OverviewMapControlOptions overviewMapControlOptions) /*-{ this.overviewMapControlOptions = overviewMapControlOptions; }-*/; /** * get The display options for the Overview Map control. * * @return {@link OverviewMapControlOptions} */ public final native OverviewMapControlOptions getOverviewMapControlOptions() /*-{ return this.overviewMapControlOptions; }-*/; /** * The enabled/disabled state of the Pan control. * * @param panControl */ public final native void setPanControl(boolean panControl) /*-{ this.panControl = panControl; }-*/; /** * get The enabled/disabled state of the Pan control. * * @return boolean */ public final native boolean getPanControl() /*-{ return this.panControl; }-*/; /** * sets The display options for the Pan control. * * @param panControlOptions {@link PanControlOptions} */ public final native void setPanControlOptions(PanControlOptions panControlOptions) /*-{ this.panControlOptions = panControlOptions; }-*/; /** * gets The display options for the Pan control. * * @return {@link PanControlOptions} */ public final native PanControlOptions getPanControlOptions() /*-{ return this.panControlOptions; }-*/; /** * set The enabled/disabled state of the Rotate control. * * @param rotateControl */ public final native void setRotateControl(boolean rotateControl) /*-{ this.rotateControl = rotateControl; }-*/; /** * get The enabled/disabled state of the Rotate control. */ public final native boolean getRotateControl() /*-{ return this.rotateControl; }-*/; /** * set The display options for the Rotate control. * * @param rotateControlOptions {@link RotateControlOptions} */ public final native void setRotateControlOptions(RotateControlOptions rotateControlOptions) /*-{ this.rotateControlOptions = rotateControlOptions; }-*/; /** * get set The display options for the Rotate control. * * @return {@link RotateControlOptions} */ public final native RotateControlOptions getRotateControlOptions() /*-{ return this.rotateControlOptions; }-*/; /** * set The initial enabled/disabled state of the Scale control. * * @param scaleControl */ public final native void setScaleControl(boolean scaleControl) /*-{ this.scaleControl = scaleControl; }-*/; /** * get The initial enabled/disabled state of the Scale control. * * @return boolean */ public final native boolean getScaleControl() /*-{ return this.scaleControl; }-*/; /** * set The initial display options for the Scale control. * * @param scaleControlOptions {@link ScaleControlOptions} */ public final native void setScaleControlOptions(ScaleControlOptions scaleControlOptions) /*-{ this.scaleControlOptions = scaleControlOptions; }-*/; /** * get The initial display options for the Scale control. * * @return {@link ScaleControlOptions} */ public final native ScaleControlOptions getScaleControlOptions() /*-{ return this.scaleOptions; }-*/; /** * set If false, disables scrollwheel zooming on the map. The scrollwheel is enabled by default. * * @param scrollWheel */ public final native void setScrollWheel(boolean scrollWheel) /*-{ this.scrollwheel = scrollWheel; }-*/; /** * get If false, disables scrollwheel zooming on the map. The scrollwheel is enabled by default. */ public final native boolean getScrollWheel() /*-{ return this.scrollwheel; }-*/; /** * set A StreetViewPanorama to display when the Street View Pegman is dropped on the map. If no panorama is specified, * a default StreetViewPanorama will be displayed in the map's div when the pegman is dropped. * * @param streetViewControl */ public final native void setStreetViewControl(boolean streetViewControl) /*-{ this.streetViewControl = streetViewControl; }-*/; /** * get set A StreetViewPanorama to display when the Street View pegman is dropped on the map. If no panorama is * specified, a default StreetViewPanorama will be displayed in the map's div when the pegman is dropped. */ public final native boolean getStreetViewControl() /*-{ return this.streetViewControl; }-*/; /** * The initial enabled/disabled state of the Street View Pegman control. This control is part of the default UI, and * should be set to false when displaying a map type on which the Street View road overlay should not appear (e.g. a * non-Earth map type). * * @param streetViewControlOptions {@link StreetViewControlOptions} */ public final native void setStreetViewControlOptions(StreetViewControlOptions streetViewControlOptions) /*-{ this.streetViewControlOptions = streetViewControlOptions; }-*/; /** * get The initial enabled/disabled state of the Street View Pegman control. This control is part of the default UI, * and should be set to false when displaying a map type on which the Street View road overlay should not appear (e.g. * a non-Earth map type). * * @return {@link StreetViewControlOptions} */ public final native StreetViewControlOptions getStreetViewControlOptions() /*-{ return this.streetViewControlOptions; }-*/; public final void setMapTypeStyles(MapTypeStyle[] styles) { JsArray arr = ArrayHelper.toJsArray(styles); setMapTypeStyles(arr); } /** * set Styles to apply to each of the default map types. Note that styles will apply only to the labels and geometry * in Satellite/Hybrid and Terrain modes. */ private final native void setMapTypeStyles(JsArray styles) /*-{ this.styles = styles; }-*/; /** * get set Styles to apply to each of the default map types. Note that styles will apply only to the labels and * geometry in Satellite/Hybrid and Terrain modes. */ public final MapTypeStyle[] getMapTypeStyles() { JsArray arr = getMapTypeStylesJs(); MapTypeStyle[] r = new MapTypeStyle[arr.length()]; for (int i = 0; i < arr.length(); i++) { r[i] = arr.get(i); } return r; } /** * get set Styles to apply to each of the default map types. Note that styles will apply only to the labels and * geometry in Satellite/Hybrid and Terrain modes. */ private final native JsArray getMapTypeStylesJs() /*-{ return this.styles; }-*/; /** * sets The angle of incidence of the map as measured in degrees from the viewport plane to the map plane. The only * currently supported values are 0, indicating no angle of incidence (no tilt), and 45, indicating a tilt of 45°. * 45° imagery is only available for SATELLITE and HYBRID map types, within some locations, and at some zoom * levels. */ public final native void setTilt(int tilt) /*-{ this.tilt = tilt; }-*/; /** * gets The angle of incidence of the map as measured in degrees from the viewport plane to the map plane. The only * currently supported values are 0, indicating no angle of incidence (no tilt), and 45, indicating a tilt of 45°. * 45° imagery is only available for SATELLITE and HYBRID map types, within some locations, and at some zoom * levels. */ public final native int getTilt() /*-{ return this.tilt; }-*/; /** * The initial Map zoom level. Required. * * @param zoom */ public final native void setZoom(int zoom) /*-{ this.zoom = zoom; }-*/; /** * get Map zoom level * * @return int */ public final native int getZoom() /*-{ return this.zoom; }-*/; /** * sets The enabled/disabled state of the Zoom control. * * @param zoomControl */ public final native void setZoomControl(boolean zoomControl) /*-{ this.zoomControl = zoomControl; }-*/; /** * gets The enabled/disabled state of the Zoom control. */ public final native boolean getZoomControl() /*-{ return this.zoomControl; }-*/; /** * Sets Map Maker usage. * * @param mapMaker True if Map Maker tiles should be used instead of regular tiles. */ public final native void setMapMaker(boolean mapMaker) /*-{ this.mapMaker = mapMaker; }-*/; /** * Gets Map Maker usage. * * @return True if Map Maker tiles are used instead of regular tiles. */ public final native boolean getMapMaker() /*-{ return this.mapMaker; }-*/; /** * sets The display options for the Zoom control. * * @param zoomControlOptions */ public final native void setZoomControlOptions(ZoomControlOptions zoomControlOptions) /*-{ this.zoomControlOptions = zoomControlOptions; }-*/; /** * gets The display options for the Zoom control. */ public final native ZoomControlOptions getZoomControlOptions() /*-{ return this.zoomControlOptions; }-*/; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy