Question
In this problem we are going to use ArrayLists and classes to design a road trip. You have three classes: GeoLocation.java which represents a geo
In this problem we are going to use ArrayLists and classes to design a road trip.
You have three classes: GeoLocation.java which represents a geo location. A RoadTrip.java class which represents a road trip (or an ordered list of places), and a RoadTripTester.java class which brings them all together.
In GeoLocation.java:
Add a private instance variable called name which is a String. This represents the name of the location.
Modify the Geolocation class constructor so that it is now of the format
public GeoLocation(String name, double theLatitude, double theLongitude)
Add a getter method for name called getName().
Update the toString so that it returns a String of the format
San Francisco (37.7833, -122.4167)
Now, youll also need to create a RoadTrip class. The RoadTrip stores an ordered list of locations, so youll need to have an ArrayList. Youll also need to support these methods.
// Create a GeoLocation and add it to the road trip public void addStop(String name, double latitude, double longitude) // Get the total number of stops in the trip public int getNumberOfStops() // Get the total miles of the trip public double getTripLength() // Return a formatted toString of the trip public String toString()
Weve given you a tester program to help get you started.
The output from that program would be:
1. San Francisco (37.7833, -122.4167) 2. Los Angeles (34.052235, -118.243683) 3. Las Vegas (36.114647, -115.172813) Stops: 3 Total Miles: 572.9708850442705
Coding below given to be edited
import java.util.ArrayList; public class RoadTrip { // Create a GeoLocation and add it to the road trip public void addStop(String name, double latitude, double longitude) // Get the total number of stops in the trip public int getNumberOfStops() // Get the total miles of the trip public double getTripLength() // Return a formatted toString of the trip public String toString() }
public class RoadTripTester { public static void main(String[] args) { RoadTrip rt = new RoadTrip(); rt.addStop("San Francisco", 37.7833, -122.4167); rt.addStop("Los Angeles", 34.052235, -118.243683); rt.addStop("Las Vegas", 36.114647, -115.172813); System.out.println(rt); System.out.println("Stops: " + rt.getNumberOfStops()); System.out.println("Total Miles: " + rt.getTripLength()); } }
/* * This class stores information about a location on Earth. Locations are * specified using latitude and longitude. The class includes a method for * computing the distance between two locations. * * This implementation is based off of the example from Stuart Reges at * the University of Washington. */ public class GeoLocation { // Earth radius in miles public static final double RADIUS = 3963.1676; private double latitude; private double longitude; /** * Constructs a geo location object with given latitude and longitude */ public GeoLocation(double theLatitude, double theLongitude) { latitude = theLatitude; longitude = theLongitude; } /** * Returns the latitude of this geo location */ public double getLatitude() { return latitude; } /** * returns the longitude of this geo location */ public double getLongitude() { return longitude; } // returns a string representation of this geo location public String toString() { return "latitude: " + latitude + ", longitude: " + longitude; } // returns the distance in miles between this geo location and the given // other geo location public double distanceFrom(GeoLocation other) { double lat1 = Math.toRadians(latitude); double long1 = Math.toRadians(longitude); double lat2 = Math.toRadians(other.latitude); double long2 = Math.toRadians(other.longitude); // apply the spherical law of cosines with a triangle composed of the // two locations and the north pole double theCos = Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos(long1 - long2); double arcLength = Math.acos(theCos); return arcLength * RADIUS; } }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started