package mediawiki.info.wikibase; public class WikibaseCoordinate { private Double latitude; private Double longitude; private Double altitude; private Double precision; private String globe; public WikibaseCoordinate(Double latitude2, Double longitude2, Double altitude2, Double precision2, String globe2) { latitude = latitude2; longitude = longitude2; altitude = altitude2; precision = precision2; globe = globe2; } public WikibaseCoordinate(Double lat, Double longit, int precision){ this(lat,longit,null,Math.pow(10, -1d*precision),"http://www.wikidata.org/entity/Q2"); } public Double getLatitude() { return latitude; } public Double getLongitude() { return longitude; } public Double getAltitude() { return altitude; } public Double getPrecision() { return precision; } public String getGlobe() { return globe; } public void setLatitude(Double latitude) { this.latitude = latitude; } public void setLongitude(Double longitude) { this.longitude = longitude; } public void setAltitude(Double altitude) { this.altitude = altitude; } public void setPrecision(Double precision) { this.precision = precision; } public void setGlobe(String globe) { this.globe = globe; } public static WikibaseCoordinate parse(String lat, String lon){ Double l1 = Double.parseDouble(lat); Double l2 = Double.parseDouble(lon); int precision = Math.min(lat.substring(lat.indexOf('.')+1).length(), lon.substring(lon.indexOf('.')+1).length()); return new WikibaseCoordinate(l1, l2, precision); } @Override public String toString() { return latitude+":"+longitude; } @Override public boolean equals(Object obj) { if(obj == null) return false; if(!(obj instanceof WikibaseCoordinate)) return false; WikibaseCoordinate c = (WikibaseCoordinate) obj; return this.latitude == c.latitude && this.longitude == c.longitude && this.altitude == c.altitude && this.precision == c.precision && this.globe.equals(c.globe); } }