A classe Geolocator contém ferramentas importantes, uma parte dela também contém recursos que nos viabilizam esse cálculo sem dores, veja um exemplo do código de cálculo entre dois pontos (Origem e Destino podem facilmente ser entre eu e outra pessoa, meu smartphone e outro melhor dizendo):
final List<String> startCoords =
_startCoordinatesTextController.text.split(',');
final List<String> endCoords =
_endCoordinatesTextController.text.split(',');
final double startLatitude = double.parse(startCoords[0]);
final double startLongitude = double.parse(startCoords[1]);
final double endLatitude = double.parse(endCoords[0]);
final double endLongitude = double.parse(endCoords[1]);
final double distance = await Geolocator().distanceBetween(
startLatitude, startLongitude, endLatitude, endLongitude);
Scaffold.of(context).showSnackBar(SnackBar(
backgroundColor: Theme.of(context).primaryColorDark,
content: Text('The distance is: $distance'),
));
}