perpendicularDistance static method
double
perpendicularDistance(
- LatLng point,
- LatLng lineStart,
- LatLng lineEnd
)
Implementation
static double perpendicularDistance(LatLng point, LatLng lineStart, LatLng lineEnd) {
double lat1 = lineStart.latitude;
double lon1 = lineStart.longitude;
double lat2 = lineEnd.latitude;
double lon2 = lineEnd.longitude;
double lat3 = point.latitude;
double lon3 = point.longitude;
double px = lon2 - lon1;
double py = lat2 - lat1;
double norm = px * px + py * py;
double u = ((lon3 - lon1) * px + (lat3 - lat1) * py) / norm;
double x = lon1 + u * px;
double y = lat1 + u * py;
double dx = x - lon3;
double dy = y - lat3;
return sqrt(dx * dx + dy * dy);
}