copyWithMetersOffset method

Coordinates copyWithMetersOffset({
  1. required int metersLatitude,
  2. required int metersLongitude,
})

Returns a new Coordinates translated by the specified offsets in meters.

The offsets are applied in meters for latitude and longitude. The method converts the meter offsets to degrees based on the current latitude.

Parameters

  • metersLatitude: Latitude offset in meters.
  • metersLongitude: Longitude offset in meters.

Returns

  • A new Coordinates instance translated by the provided offsets.

Implementation

Coordinates copyWithMetersOffset({
  required final int metersLatitude,
  required final int metersLongitude,
}) {
  const double earthRadius = 6371000; // Earth's radius in meters
  final double latitudeInDegrees = metersLatitude / earthRadius * (180 / pi);
  final double longitudeInDegrees =
      metersLongitude / (earthRadius * cos(latitude * pi / 180)) * (180 / pi);

  return Coordinates(
    latitude: latitude + latitudeInDegrees,
    longitude: longitude + longitudeInDegrees,
    altitude: altitude,
    sceneobject: sceneobject,
  );
}