Package com.google.gwt.maps.sample.hellomaps.client

Source Code of com.google.gwt.maps.sample.hellomaps.client.RoutedDirectionsDemo

/*
* Copyright 2008 Google Inc.
*
* 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.
*/
package com.google.gwt.maps.sample.hellomaps.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.maps.client.MapWidget;
import com.google.gwt.maps.client.geocode.DirectionQueryOptions;
import com.google.gwt.maps.client.geocode.DirectionResults;
import com.google.gwt.maps.client.geocode.Directions;
import com.google.gwt.maps.client.geocode.DirectionsCallback;
import com.google.gwt.maps.client.geocode.DirectionsPanel;
import com.google.gwt.maps.client.geocode.Placemark;
import com.google.gwt.maps.client.geocode.Route;
import com.google.gwt.maps.client.geocode.StatusCodes;
import com.google.gwt.maps.client.geocode.Waypoint;
import com.google.gwt.maps.client.geom.LatLng;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;

import java.util.List;

/**
* This demo extends the simple demo, by adding waypoints to the requested
* directions.
*
* For full documentation of the various objects, methods and events in the
* Directions API package, consult the API Reference at {@link
* "http://code.google.com/apis/maps"}
*/
public class RoutedDirectionsDemo extends MapsDemo {
  private static final LatLng ATLANTA = LatLng.newInstance(33.7814790,
      -84.3880580);
  // Points of interest along the map.
  private static final LatLng STONE_MOUNTAIN_PARK = LatLng.newInstance(
      33.80653802509606, -84.15252685546875);
  // Cyclorama
  private static final LatLng CYCLORAMA = LatLng.newInstance(
      33.741185330333956, -84.35834884643555);
  // Georgia Aquarium
  private static final LatLng GEORGIA_AQUARIUM = LatLng.newInstance(
      33.761443931868925, -84.39432263374329);
  // Underground Atlanta
  private static final LatLng UNDERGROUND_ATLANTA = LatLng.newInstance(
      33.75134645137294, -84.39026713371277);
  // The Dwarf House Restaurant in Hapeville
  private static final String DWARF_HOUSE = "461 N Central Ave Hapeville, GA";
  private static HTML descHTML = null;
  private static final String descString = "<p>Displays a map centered on"
      + " Atlanta, GA USA</p>"
      + " <p>Queries the Google Directions service and displays a polyline,"
      + " markers on the map, and textual directions on the right.  The"
      + " directions are for a leisurely route from Midtown Atlanta to the"
      + " Atlanta Airport through various waypoints.</p>\n";

  private static Waypoint waypoints[] = {
      new Waypoint("10 10th St NE, Atlanta, GA 30309"), // Midtown Atlanta
      new Waypoint(GEORGIA_AQUARIUM), //
      new Waypoint(UNDERGROUND_ATLANTA), //
      new Waypoint(CYCLORAMA), //
      new Waypoint(STONE_MOUNTAIN_PARK), //
      new Waypoint(DWARF_HOUSE), //
      new Waypoint("N Terminal Pkwy, Atlanta, GA 30320") // The Airport
  };

  public static MapsDemoInfo init() {
    return new MapsDemoInfo() {
      @Override
      public MapsDemo createInstance() {
        return new RoutedDirectionsDemo();
      }

      @Override
      public HTML getDescriptionHTML() {
        if (descHTML == null) {
          descHTML = new HTML(descString);
        }
        return descHTML;
      }

      @Override
      public String getName() {
        return "Routed Directions";
      }
    };
  }

  private MapWidget map;

  public RoutedDirectionsDemo() {
    HorizontalPanel hp = new HorizontalPanel();
    map = new MapWidget(ATLANTA, 15);
    map.setSize("400px", "480px");
    map.setUIToDefault();
    map.getElement().getStyle().setPropertyPx("margin", 15);
    hp.add(map);
    DirectionsPanel directionsPanel = new DirectionsPanel();
    hp.add(directionsPanel);
    directionsPanel.setSize("100%", "100%");

    initWidget(hp);

    DirectionQueryOptions opts = new DirectionQueryOptions(map,
        directionsPanel);

    // Create directions from Midtown Atlanta to the Airport with a *few*
    // stops along the way.
    Directions.loadFromWaypoints(waypoints, opts, new DirectionsCallback() {

      public void onFailure(int statusCode) {
        Window.alert("Failed to load directions: Status "
            + StatusCodes.getName(statusCode) + " " + statusCode);
      }

      public void onSuccess(DirectionResults result) {
        GWT.log("Successfully loaded directions.", null);

        // A little exercise of the route API
        List<Route> routes = result.getRoutes();
        for (Route r : routes) {
          Placemark start = r.getStartGeocode();
          GWT.log("start of route: " + start.getAddress(), null);
          Placemark end = r.getEndGeocode();
          GWT.log("end of route: " + end.getAddress(), null);
        }
      }
    });
  }
}
TOP

Related Classes of com.google.gwt.maps.sample.hellomaps.client.RoutedDirectionsDemo

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.