package com.google.gwt.maps.testing.client.maps;
/*
* #%L
* GWT Maps API V3 - Showcase
* %%
* 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.core.client.GWT;
import com.google.gwt.maps.client.base.LatLng;
import com.google.gwt.maps.client.base.Size;
import com.google.gwt.maps.client.streetview.StreetViewLocation;
import com.google.gwt.maps.client.streetview.StreetViewPanoramaData;
import com.google.gwt.maps.client.streetview.StreetViewPanoramaOptions;
import com.google.gwt.maps.client.streetview.StreetViewPanoramaProvider;
import com.google.gwt.maps.client.streetview.StreetViewPanoramaWidget;
import com.google.gwt.maps.client.streetview.StreetViewPov;
import com.google.gwt.maps.client.streetview.StreetViewTileData;
import com.google.gwt.maps.client.streetview.TileUrlHandler;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.VerticalPanel;
/**
*
* <br>
* <br>
* See <a href=
* "https://developers.google.com/maps/documentation/javascript/streetview.html}
*/
public class StreetViewCustomMapWidget extends Composite {
private final VerticalPanel pWidget;
public StreetViewCustomMapWidget() {
pWidget = new VerticalPanel();
initWidget(pWidget);
draw();
}
private void draw() {
pWidget.clear();
pWidget.add(new HTML("<br>Custom Street View - (For a better demo, I need to re-cut out tiles... later)"
+ " <a href=\"http://gonevertical-hr.appspot.com/#pano_view~id:110010\" "
+ "target=\"_blank\">I used tiles from my site here</a>"));
drawStreeView();
}
private void drawStreeView() {
final LatLng position = LatLng.newInstance(21.259758694819777, -157.811758518219);
StreetViewPov pov = StreetViewPov.newInstance();
pov.setHeading(0);
pov.setZoom(0);
pov.setPitch(0);
StreetViewPanoramaOptions options = StreetViewPanoramaOptions.newInstance();
options.setPosition(position);
options.setStreeViewPov(pov);
options.setVisible(true);
options.setPanoProvider(new StreetViewPanoramaProvider() {
@Override
public StreetViewPanoramaData getPanoData(String pano, int zoom, int tileX, int tileY) {
StreetViewLocation location = StreetViewLocation.newInstance();
location.setDescription("Diamond Head Lookout");
location.setLatLng(position);
location.setPano("diamondheadhike");
Size tileSize = Size.newInstance(300d, 300d);
Size worldSize = Size.newInstance(1708d, 400d);
StreetViewTileData tiles = StreetViewTileData.newInstance();
tiles.setCenterHeading(0);
tiles.setTileSize(tileSize);
tiles.setWorldSize(worldSize);
tiles.getTileUrl(pano, zoom, tileX, tileY, new TileUrlHandler() {
@Override
public String getTileUrl(String pano, int zoom, int tileX, int tileY) {
zoom = 0; // TODO make a better tiled pano for testing
String url = "http://gonevertical-hr.appspot.com/serve?pano=99330&z=" + zoom + "&y=" + tileY + "&x="
+ tileX;
GWT.log("Got StreetView Tile from URL: " + url);
return url;
}
});
StreetViewPanoramaData data = StreetViewPanoramaData.newInstance();
data.setCopyright("Brandon Donnelson");
data.setLocation(location);
data.setTileData(tiles);
return data;
}
});
StreetViewPanoramaWidget wStreet = new StreetViewPanoramaWidget(options);
pWidget.add(wStreet);
wStreet.setSize("750px", "500px");
wStreet.setPano("diamondheadhike");
}
}