001 package com.google.gwt.maps.client.streetview; 002 003 import com.google.gwt.core.client.JavaScriptObject; 004 import com.google.gwt.maps.client.base.LatLng; 005 006 /** 007 * A StreetViewService object performs searches for Street View data. 008 * <br><br> 009 * See <a href="https://developers.google.com/maps/documentation/javascript/reference#StreetViewService">StreetViewService API Doc</a> 010 */ 011 public class StreetViewService extends JavaScriptObject { 012 013 /** 014 * use newInstance(); 015 */ 016 protected StreetViewService() {} 017 018 /** 019 * A StreetViewService object performs searches for Street View data. 020 */ 021 public static final StreetViewService newInstnace() { 022 return createJso().cast(); 023 } 024 025 private static final native JavaScriptObject createJso() /*-{ 026 return new $wnd.google.maps.StreetViewService(); 027 }-*/; 028 029 /** 030 * Retrieves the data for the given pano id and passes it to the provided callback as a StreetViewPanoramaData object. Pano ids are unique per panorama and stable for the lifetime of a session, but are liable to change between sessions. 031 * @param pano 032 * @param handler 033 */ 034 public final native void getPanoramaById(String pano, PanoramaIdHandler handler) /*-{ // 035 var callback = function(data, status) { 036 @com.google.gwt.maps.client.streetview.StreetViewService::getPanoramaByIdImpl(Lcom/google/gwt/maps/client/streetview/StreetViewPanoramaData;Ljava/lang/String;Lcom/google/gwt/maps/client/streetview/PanoramaIdHandler;)(data, status, handler); 037 }; 038 this.getPanoramaById(pano, callback); 039 }-*/; 040 041 private static final void getPanoramaByIdImpl(StreetViewPanoramaData data, String status, PanoramaIdHandler handler) { 042 handler.onCallback(data, StreetViewStatus.fromValue(status)); 043 } 044 045 /** 046 * Retrieves the StreetViewPanoramaData for a panorama within a given radius of the given LatLng. The StreetViewPanoramaData is passed to the provided callback. If the radius is less than 50 meters, the nearest panorama will be returned. 047 * @param latlng 048 * @param radius 049 * @param handler 050 */ 051 public final native void getPanoramaByLocation(LatLng latlng, double radius, PanoramaByLocationHandler handler) /*-{ 052 var callback = function(data, status) { 053 @com.google.gwt.maps.client.streetview.StreetViewService::getPanoramaByLocationImpl(Lcom/google/gwt/maps/client/streetview/StreetViewPanoramaData;Ljava/lang/String;Lcom/google/gwt/maps/client/streetview/PanoramaByLocationHandler;)(data, status, handler); 054 }; 055 this.getPanoramaByLocation(latlng, radius, callback); 056 }-*/; 057 058 private static final void getPanoramaByLocationImpl(StreetViewPanoramaData data, String status, PanoramaByLocationHandler handler) { 059 handler.onCallback(data, StreetViewStatus.fromValue(status)); 060 } 061 062 }