<%@ 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; } } %>