%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %><%@
page import="java.io.*" %><%@
page import="java.math.*" %><%@
page import="java.util.*" %><%@
page import="java.sql.*" %>
<%
Connection con = null;
String debug = "";
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://YOUR_CONNECTION_STRING_HERE");
} catch( Exception e ) {
e.printStackTrace();
debug += e.toString();
}
java.sql.Statement stmt = con.createStatement();
String sqlqry = "SELECT lat, lon, fixtime as mydate FROM `gpsposition` ORDER BY fixtime DESC LIMIT 1";
java.sql.ResultSet rs = stmt.executeQuery(sqlqry);
while (rs.next()){
String mlat = rs.getString("lat");
String mlon = rs.getString("lon");
double dlat = Double.parseDouble(mlat);
double dlon = Double.parseDouble(mlon);
double distance = getDistance(dlat, dlon);
String fixtime = rs.getString("mydate");
long fix = Long.parseLong(fixtime);
%>
<%=distance%> //miles from home
<%=fixtime%> //time: <%=(new java.util.Date(fix)).toString()%>
<%
}
%>
<%!
private double getDistance(double lat1, double lon1){
try {
double lat2 = USE_YOUR_LAT;
double lon2 = USE_YOUR_LON;
double distance = (180/Math.PI) * (Math.acos((Math.sin((Math.PI/180) * lat1) * Math.sin((Math.PI/180) * lat2)) + (Math.cos((Math.PI/180) * lat1) * Math.cos((Math.PI/180)* lat2)* Math.cos((Math.PI/180) * Math.abs(lon1 - lon2)))) * 69.11);
BigDecimal bd = new BigDecimal(distance);
bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
return bd.doubleValue();
} catch (Exception ex){
return 0.0;
}
}
%>