/* This program is free software: you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation, either version 3 of
the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
package org.opentripplanner.api.model;
import java.util.Calendar;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import org.onebusaway.gtfs.model.AgencyAndId;
import org.opentripplanner.util.Constants;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* A Place is where a journey starts or ends, or a transit stop along the way.
*/
public class Place {
/**
* For transit stops, the name of the stop. For points of interest, the name of the POI.
*/
public String name = null;
/**
* The ID of the stop. This is often something that users don't care about.
*/
public AgencyAndId stopId = null;
/**
* The "code" of the stop. Depending on the transit agency, this is often
* something that users care about.
*/
public String stopCode = null;
/**
* The code or name identifying the quay/platform the vehicle will arrive at or depart from
*
*/
public String platformCode = null;
/**
* The longitude of the place.
*/
public Double lon = null;
/**
* The latitude of the place.
*/
public Double lat = null;
/**
* The time the rider will arrive at the place.
*/
public Calendar arrival = null;
/**
* The time the rider will depart the place.
*/
public Calendar departure = null;
@XmlAttribute
@JsonSerialize
public String orig;
@XmlAttribute
@JsonSerialize
public String zoneId;
/**
* For transit trips, the stop index (numbered from zero from the start of the trip
*/
@XmlAttribute
@JsonSerialize
public Integer stopIndex;
/**
* Returns the geometry in GeoJSON format
* @return
*/
@XmlElement
String getGeometry() {
return Constants.GEO_JSON_POINT + lon + "," + lat + Constants.GEO_JSON_TAIL;
}
public Place() {
}
public Place(Double lon, Double lat, String name) {
this.lon = lon;
this.lat = lat;
this.name = name;
}
public Place(Double lon, Double lat, String name, Calendar arrival, Calendar departure) {
this(lon, lat, name);
this.arrival = arrival;
this.departure = departure;
}
}