io.jenetics.jpx.Point Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jpx Show documentation
Show all versions of jpx Show documentation
JPX - Java GPX (GPS) Library
/*
* Java GPX Library (jpx-1.1.2).
* Copyright (c) 2017-2017 Franz Wilhelmstötter
*
* 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.
*
* Author:
* Franz Wilhelmstötter ([email protected])
*/
package io.jenetics.jpx;
import java.time.ZonedDateTime;
import java.util.Optional;
import io.jenetics.jpx.geom.Geoid;
/**
* A geographic point with optional elevation and time.
*
* @author Franz Wilhelmstötter
* @version 1.0
* @since 1.0
*/
public interface Point {
/**
* The latitude of the point, WGS84 datum.
*
* @return the latitude of the point
*/
public Latitude getLatitude();
/**
* The longitude of the point, WGS84 datum.
*
* @return the longitude of the point
*/
public Longitude getLongitude();
/**
* The elevation (in meters) of the point.
*
* @return the elevation (in meters) of the point
*/
public default Optional getElevation() {
return Optional.empty();
}
/**
* Creation/modification timestamp for the point.
*
* @return creation/modification timestamp for the point
*/
public default Optional getTime() {
return Optional.empty();
}
/**
* Calculate the distance between points on the default ellipsoidal earth
* model
*
* WGS-84.
*
* @see DIRECT AND
* INVERSE SOLUTIONS OF GEODESICS 0 THE ELLIPSOID
* WITH APPLICATION OF NESTED EQUATIONS
* @see
* Vincenty solutions of geodesics on the ellipsoid
*
* @param end the end point
* @return the distance between {@code this} and {@code end} in meters
* @throws NullPointerException if the {@code end} point is {@code null}
*/
public default Length distance(final Point end) {
return Geoid.DEFAULT.distance(this, end);
}
}