content: package aima.core.environment.map;
  
  import java.util.List;
  
  import aima.core.util.math.geom.shapes.Point2D;
  
  /**
   * Provides a general interface for maps.
   * 
   * @author Ruediger Lunde
   */
  public interface Map {
  
  	/** Returns a list of all locations. */
  	public List<String> getLocations();
  
  	/**
  	 * Answers to the question: Where can I get, following one of the
  	 * connections starting at the specified location?
  	 */
  	public List<String> getPossibleNextLocations(String location);
  
  	/**
  	 * Answers to the question: From where can I reach a specified location,
  	 * following one of the map connections?
  	 */
  	public List<String> getPossiblePrevLocations(String location);
  
  	/**
  	 * Returns the travel distance between the two specified locations if they
  	 * are linked by a connection and null otherwise.
  	 */
  	public Double getDistance(String fromLocation, String toLocation);
  
  	/**
  	 * Returns the position of the specified location. The position is
  	 * represented by two coordinates, e.g. latitude and longitude values.
  	 */
  	public Point2D getPosition(String loc);
  
  	/**
  	 * Returns a location which is selected by random.
  	 */
  	public String randomlyGenerateDestination();
  }
  