001 package com.google.gwt.maps.client.services;
002
003 import com.google.gwt.core.client.JavaScriptObject;
004 import com.google.gwt.maps.client.base.LatLng;
005
006 /**
007 * A service for obtaining the highest zoom level at which satellite imagery is available for a given location.
008 * <br><br>
009 * See <a href="https://developers.google.com/maps/documentation/javascript/reference#MaxZoomService">MaxZoomService API Doc</a>
010 */
011 public class MaxZoomService extends JavaScriptObject {
012
013 /**
014 * use newInstance();
015 */
016 protected MaxZoomService() {}
017
018 /**
019 * A service for obtaining the highest zoom level at which satellite imagery is available for a given location.
020 */
021 public static final MaxZoomService newInstance() {
022 return createJso().cast();
023 }
024
025 private static final native JavaScriptObject createJso() /*-{
026 return new $wnd.google.maps.MaxZoomService();
027 }-*/;
028
029 /**
030 * Returns the maximum zoom level available at a particular LatLng for the Satellite map type. As this request is asynchronous, you must pass a callback function which will be executed upon completion of the request, being passed a MaxZoomResult.
031 * @param latlng
032 * @param handler
033 */
034 public final native void getMaxZoomAtLatLng(LatLng latlng, MaxZoomServiceHandler handler) /*-{
035 var callback = function(result) {
036 @com.google.gwt.maps.client.services.MaxZoomService::getMaxZoomAtLatLngImpl(Lcom/google/gwt/maps/client/services/MaxZoomResult;Lcom/google/gwt/maps/client/services/MaxZoomServiceHandler;)(result, handler);
037 };
038 this.getMaxZoomAtLatLng(latlng, callback);
039 }-*/;
040
041 private static final void getMaxZoomAtLatLngImpl(MaxZoomResult result, MaxZoomServiceHandler handler) {
042 handler.onCallback(result);
043 }
044
045 }