package se.kodapan.geojson;
import java.io.IOException;
import java.io.Writer;
/**
* Point coordinates are in x, y order (easting, northing for projected coordinates, longitude, latitude for geographic coordinates):
* <pre>
* {
* "type": "Point",
* "coordinates": [100.0, 0.0]
* }
* </pre>
*
* @author kalle
* @since 2014-09-21 12:52
*/
public class Point extends GeoJSONGeometry {
private double latitude;
private double longitude;
public Point() {
}
public Point(double longitude, double latitude) {
this.longitude = longitude;
this.latitude = latitude;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Point point = (Point) o;
if (Double.compare(point.latitude, latitude) != 0) return false;
if (Double.compare(point.longitude, longitude) != 0) return false;
return true;
}
@Override
public int hashCode() {
int result;
long temp;
temp = Double.doubleToLongBits(latitude);
result = (int) (temp ^ (temp >>> 32));
temp = Double.doubleToLongBits(longitude);
result = 31 * result + (int) (temp ^ (temp >>> 32));
return result;
}
@Override
public void writeJSON(Writer writer) throws IOException {
writer.write("{");
writer.write("\"type\":\"Point\",\"coordinates\":");
writeCoordinatePart(writer);
writer.write("}");
}
public void writeCoordinatePart(Writer writer) throws IOException {
writer.write("[");
writer.write(String.valueOf(getLongitude()));
writer.write(",");
writer.write(String.valueOf(getLatitude()));
writer.write("]");
}
public double getLatitude() {
return latitude;
}
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
}