If you think the Android project Mapyst listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/*
* Copyright (C) 2013 Mapyst//www.java2s.com
*
* 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.
*/package com.mapyst.route;
import com.mapyst.campus.Building;
//calculates distances between points and buildings
publicclass DistanceCalculator {
publicstaticdouble distance(LatLngPoint p1, LatLngPoint p2) {
return Math.sqrt(Math.pow(p1.lng - p2.lng, 2) + Math.pow(p1.lat - p2.lat, 2));
}
publicstaticdouble buildingDistance(Building b1, Building b2) {
LatLngPoint p1 = b1.location;
LatLngPoint p2 = b2.location;
return distance(p1, p2);
}
//distance from one building to another building plus distance from that building to yet another building
publicstaticdouble buildingDistance(Building b1, Building b2, Building b3) {
LatLngPoint p1 = b1.location;
LatLngPoint p2 = b2.location;
LatLngPoint p3 = b3.location;
double dist1 = distance(p1, p2);
double dist2 = distance(p2, p3);
return dist1 + dist2;
}
/*public static double buildingDistance(Waypoint2D node1, Waypoint2D node2) {
double dx1, dy1;
dx1 = node1.getPoint().lngInt() - node2.getPoint().lngInt();
dy1 = node1.getPoint().latInt() - node2.getPoint().latInt();
double dist1 = Math.sqrt(Math.pow(dx1, 2.0) + Math.pow(dy1, 2.0));
return dist1;
}*//*public static double angle3Points(Waypoint2D p1, Waypoint2D p2, Waypoint2D p3) {
double a = distance(p2.getPoint(), p3.getPoint());
double b = distance(p1.getPoint(), p2.getPoint());
double c = distance(p1.getPoint(), p3.getPoint());
return Math.acos((Math.pow(a,2) + Math.pow(b,2) - Math.pow(c,2))/(2*a*b));
}*/
}