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.Size;
005    
006    /**
007     * The properties of the tile set used in a Street View panorama.
008     * <br><br>
009     * See <a href="https://developers.google.com/maps/documentation/javascript/reference#StreetViewTileData">StreetViewTileData API Doc</a>
010     */
011    public class StreetViewTileData extends JavaScriptObject {
012      
013      /**
014       * The properties of the tile set used in a Street View panorama.
015       * use newInstance();
016       */
017      protected StreetViewTileData() {} 
018    
019      /**
020       * creates The properties of the tile set used in a Street View panorama.
021       */
022      public final static StreetViewTileData newInstance() {
023        return JavaScriptObject.createObject().cast();
024      }
025    
026      /**
027       * Gets the tile image URL for the specified tile.
028       * @param pano is the panorama ID of the Street View tile.
029       * @param zoom is the zoom level of the tile.
030       * @param tileX is the x-coordinate of the tile.
031       * @param tileY is the y-coordinate of the tile. 
032       * @param handler
033       */
034      public final native String getTileUrl(String pano, int zoom, int tileX, int tileY, TileUrlHandler handler) /*-{
035        this.getTileUrl = function(pano, zoom, tileX, tileY) {
036          return @com.google.gwt.maps.client.streetview.StreetViewTileData::getTileUrlImpl(Ljava/lang/String;IIILcom/google/gwt/maps/client/streetview/TileUrlHandler;)(pano, zoom, tileX, tileY, handler);
037        };
038      }-*/;
039      
040      private final static String getTileUrlImpl(String pano, int zoom, int tileX, int tileY, TileUrlHandler handler) {
041        return handler.getTileUrl(pano, zoom, tileX, tileY);
042      }
043      
044      /**
045       * sets The heading (in degrees) at the center of the panoramic tiles.
046       * @param centerHeading
047       */
048      public final native void setCenterHeading(int centerHeading) /*-{
049        this.centerHeading = centerHeading;
050      }-*/;
051       
052      /**
053       * gets The heading (in degrees) at the center of the panoramic tiles.
054       */
055      public final native int getCenterHeading() /*-{
056        return this.centerHeading;
057      }-*/;
058      
059      /**
060       * sets The size (in pixels) at which tiles will be rendered. This may not be the native tile image size.
061       * @param tileSize
062       */
063      public final native void setTileSize(Size tileSize) /*-{
064        this.tileSize = tileSize;
065      }-*/;
066      
067      /**
068       * gets The size (in pixels) at which tiles will be rendered. This may not be the native tile image size.
069       */
070      public final native Size getTileSize() /*-{
071        return this.tileSize;
072      }-*/;
073      
074      /**
075       * sets The size (in pixels) of the whole panorama's "world".
076       * @param worldSize
077       */
078      public final native void setWorldSize(Size worldSize) /*-{
079        this.worldSize = worldSize;
080      }-*/;
081      
082      /**
083       * gets The size (in pixels) of the whole panorama's "world".
084       */
085      public final native Size getWorldSize() /*-{
086        return this.worldSize;
087      }-*/;
088      
089    }