/** * Gets the number of miles between 2 sets of lat/lon coords. * Requires the mMath library because J2ME is crippled */ public static float getDistance(double newlat, double newlon, double oldlat, double oldlon ) { System.out.println("getdistance " + newlat + ", " + newlon + ", " + oldlat + ", " + oldlon); //DebugForm_old.getInstance().debug("getdistance " + newlat + ", " + newlon + ", " + oldlat + ", " + oldlon, 1); // acos( // cos(radians($1)) * cos(radians($2)) *cos(radians($3)) * cos(radians($4)) + cos(radians($1))*sin(radians($2)) *cos(radians($3))*sin(radians($4)) + sin(radians($1))*sin(radians($3)) // ) * 3963.1 double dnewlatrads = java.lang.Math.toRadians(newlat); double dnewlonrads = java.lang.Math.toRadians(newlon); double doldlatrads = java.lang.Math.toRadians(oldlat); double doldlonrads = java.lang.Math.toRadians(oldlon); float miles = (float) mMath.acos( java.lang.Math.cos(dnewlatrads) * java.lang.Math.cos(dnewlonrads) * java.lang.Math.cos(doldlatrads) * java.lang.Math.cos(doldlonrads) + java.lang.Math.cos(dnewlatrads) * java.lang.Math.sin(dnewlonrads) * java.lang.Math.cos(doldlatrads) * java.lang.Math.sin(doldlonrads) + java.lang.Math.sin(dnewlatrads) * java.lang.Math.sin(doldlatrads) ) * 3963.1f; System.out.println("Returning " + miles + " miles."); return miles; }